Make complicationConfigExtras non-nullable and use it in the editor
Bug: 182272825
Bug: 177809002
Test: Manual testing & presubmit
Relnote: Complication.complicationConfigExtras is now non-nullable and defaults to Bundle.EMPTY.
Change-Id: Iad04f911e5e612373bda6ab10f2c7874800e92d4
diff --git a/wear/wear-watchface-client/api/current.txt b/wear/wear-watchface-client/api/current.txt
index 2136444..0c88581 100644
--- a/wear/wear-watchface-client/api/current.txt
+++ b/wear/wear-watchface-client/api/current.txt
@@ -2,9 +2,10 @@
package androidx.wear.watchface.client {
public final class ComplicationState {
- ctor public ComplicationState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.data.ComplicationType defaultProviderType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.complications.data.ComplicationType currentType, boolean fixedComplicationProvider);
+ ctor public ComplicationState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.data.ComplicationType defaultProviderType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.complications.data.ComplicationType currentType, boolean fixedComplicationProvider, android.os.Bundle complicationConfigExtras);
method public android.graphics.Rect getBounds();
method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
method public androidx.wear.complications.data.ComplicationType getCurrentType();
method public androidx.wear.complications.DefaultComplicationProviderPolicy getDefaultProviderPolicy();
method public androidx.wear.complications.data.ComplicationType getDefaultProviderType();
@@ -14,6 +15,7 @@
method public boolean isInitiallyEnabled();
property public final android.graphics.Rect bounds;
property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
property public final androidx.wear.complications.data.ComplicationType currentType;
property public final androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy;
property public final androidx.wear.complications.data.ComplicationType defaultProviderType;
diff --git a/wear/wear-watchface-client/api/public_plus_experimental_current.txt b/wear/wear-watchface-client/api/public_plus_experimental_current.txt
index 220f446..f4ad91e 100644
--- a/wear/wear-watchface-client/api/public_plus_experimental_current.txt
+++ b/wear/wear-watchface-client/api/public_plus_experimental_current.txt
@@ -2,9 +2,10 @@
package androidx.wear.watchface.client {
public final class ComplicationState {
- ctor public ComplicationState(android.graphics.Rect bounds, @androidx.wear.watchface.data.ComplicationBoundsType int boundsType, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.data.ComplicationType defaultProviderType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.complications.data.ComplicationType currentType, boolean fixedComplicationProvider);
+ ctor public ComplicationState(android.graphics.Rect bounds, @androidx.wear.watchface.data.ComplicationBoundsType int boundsType, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.data.ComplicationType defaultProviderType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.complications.data.ComplicationType currentType, boolean fixedComplicationProvider, android.os.Bundle complicationConfigExtras);
method public android.graphics.Rect getBounds();
method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
method public androidx.wear.complications.data.ComplicationType getCurrentType();
method public androidx.wear.complications.DefaultComplicationProviderPolicy getDefaultProviderPolicy();
method public androidx.wear.complications.data.ComplicationType getDefaultProviderType();
@@ -14,6 +15,7 @@
method public boolean isInitiallyEnabled();
property public final android.graphics.Rect bounds;
property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
property public final androidx.wear.complications.data.ComplicationType currentType;
property public final androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy;
property public final androidx.wear.complications.data.ComplicationType defaultProviderType;
diff --git a/wear/wear-watchface-client/api/restricted_current.txt b/wear/wear-watchface-client/api/restricted_current.txt
index 88ceba9..64c52c8 100644
--- a/wear/wear-watchface-client/api/restricted_current.txt
+++ b/wear/wear-watchface-client/api/restricted_current.txt
@@ -2,10 +2,11 @@
package androidx.wear.watchface.client {
public final class ComplicationState {
- ctor public ComplicationState(android.graphics.Rect bounds, @androidx.wear.watchface.data.ComplicationBoundsType int boundsType, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.data.ComplicationType defaultProviderType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.complications.data.ComplicationType currentType, boolean fixedComplicationProvider);
+ ctor public ComplicationState(android.graphics.Rect bounds, @androidx.wear.watchface.data.ComplicationBoundsType int boundsType, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.data.ComplicationType defaultProviderType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.complications.data.ComplicationType currentType, boolean fixedComplicationProvider, android.os.Bundle complicationConfigExtras);
ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public ComplicationState(androidx.wear.watchface.data.ComplicationStateWireFormat complicationStateWireFormat);
method public android.graphics.Rect getBounds();
method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
method public androidx.wear.complications.data.ComplicationType getCurrentType();
method public androidx.wear.complications.DefaultComplicationProviderPolicy getDefaultProviderPolicy();
method public androidx.wear.complications.data.ComplicationType getDefaultProviderType();
@@ -15,6 +16,7 @@
method public boolean isInitiallyEnabled();
property public final android.graphics.Rect bounds;
property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
property public final androidx.wear.complications.data.ComplicationType currentType;
property public final androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy;
property public final androidx.wear.complications.data.ComplicationType defaultProviderType;
diff --git a/wear/wear-watchface-client/src/main/java/androidx/wear/watchface/client/ComplicationState.kt b/wear/wear-watchface-client/src/main/java/androidx/wear/watchface/client/ComplicationState.kt
index 8048908..4023d7c 100644
--- a/wear/wear-watchface-client/src/main/java/androidx/wear/watchface/client/ComplicationState.kt
+++ b/wear/wear-watchface-client/src/main/java/androidx/wear/watchface/client/ComplicationState.kt
@@ -17,6 +17,7 @@
package androidx.wear.watchface.client
import android.graphics.Rect
+import android.os.Bundle
import androidx.annotation.RestrictTo
import androidx.wear.complications.DefaultComplicationProviderPolicy
import androidx.wear.complications.data.ComplicationData
@@ -60,7 +61,10 @@
/** Whether or not the complication provider is fixed (i.e the user can't configure it). */
@get:JvmName("isFixedComplicationProvider")
- public val fixedComplicationProvider: Boolean
+ public val fixedComplicationProvider: Boolean,
+
+ /** Extras to be merged into the Intent sent when invoking the provider chooser activity. */
+ public val complicationConfigExtras: Bundle
) {
/** @hide */
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
@@ -78,6 +82,7 @@
complicationStateWireFormat.isEnabled,
complicationStateWireFormat.isInitiallyEnabled,
ComplicationType.fromWireType(complicationStateWireFormat.currentType),
- complicationStateWireFormat.isFixedComplicationProvider
+ complicationStateWireFormat.isFixedComplicationProvider,
+ complicationStateWireFormat.complicationConfigExtras
)
}
\ No newline at end of file
diff --git a/wear/wear-watchface-data/api/restricted_current.txt b/wear/wear-watchface-data/api/restricted_current.txt
index 8796d6c..3415e93 100644
--- a/wear/wear-watchface-data/api/restricted_current.txt
+++ b/wear/wear-watchface-data/api/restricted_current.txt
@@ -189,10 +189,11 @@
}
@RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public final class ComplicationStateWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
- ctor public ComplicationStateWireFormat(android.graphics.Rect, @androidx.wear.watchface.data.ComplicationBoundsType int, @android.support.wearable.complications.ComplicationData.ComplicationType int[], java.util.List<android.content.ComponentName!>?, int, @android.support.wearable.complications.ComplicationData.ComplicationType int, boolean, boolean, @android.support.wearable.complications.ComplicationData.ComplicationType int, boolean);
+ ctor public ComplicationStateWireFormat(android.graphics.Rect, @androidx.wear.watchface.data.ComplicationBoundsType int, @android.support.wearable.complications.ComplicationData.ComplicationType int[], java.util.List<android.content.ComponentName!>?, int, @android.support.wearable.complications.ComplicationData.ComplicationType int, boolean, boolean, @android.support.wearable.complications.ComplicationData.ComplicationType int, boolean, android.os.Bundle);
method public int describeContents();
method public android.graphics.Rect getBounds();
method @androidx.wear.watchface.data.ComplicationBoundsType public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
method @android.support.wearable.complications.ComplicationData.ComplicationType public int getCurrentType();
method @android.support.wearable.complications.ComplicationData.ComplicationType public int getDefaultProviderType();
method public java.util.List<android.content.ComponentName!>? getDefaultProvidersToTry();
diff --git a/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/data/ComplicationStateWireFormat.java b/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/data/ComplicationStateWireFormat.java
index 530ea84..d089609 100644
--- a/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/data/ComplicationStateWireFormat.java
+++ b/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/data/ComplicationStateWireFormat.java
@@ -19,6 +19,7 @@
import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.graphics.Rect;
+import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.wearable.complications.ComplicationData;
@@ -79,6 +80,10 @@
@ParcelField(10)
boolean mFixedComplicationProvider;
+ @ParcelField(11)
+ @NonNull
+ Bundle mComplicationConfigExtras;
+
/** Used by VersionedParcelable. */
ComplicationStateWireFormat() {
}
@@ -93,7 +98,8 @@
boolean isEnabled,
boolean isInitiallyEnabled,
@ComplicationData.ComplicationType int currentType,
- boolean fixedComplicationProvider) {
+ boolean fixedComplicationProvider,
+ @NonNull Bundle complicationConfigExtras) {
mBounds = bounds;
mBoundsType = boundsType;
mSupportedTypes = supportedTypes;
@@ -104,6 +110,7 @@
mIsInitiallyEnabled = isInitiallyEnabled;
mCurrentType = currentType;
mFixedComplicationProvider = fixedComplicationProvider;
+ mComplicationConfigExtras = complicationConfigExtras;
}
@NonNull
@@ -162,6 +169,11 @@
return mCurrentType;
}
+ @NonNull
+ public Bundle getComplicationConfigExtras() {
+ return mComplicationConfigExtras;
+ }
+
/** Serializes this ComplicationDetails to the specified {@link Parcel}. */
@Override
public void writeToParcel(@NonNull Parcel parcel, int flags) {
diff --git a/wear/wear-watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt b/wear/wear-watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt
index cf2afa0..2aeab67 100644
--- a/wear/wear-watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt
+++ b/wear/wear-watchface-editor/src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt
@@ -89,6 +89,9 @@
private const val TIMEOUT_MILLIS = 500L
+private const val PROVIDER_CHOOSER_EXTRA_KEY = "PROVIDER_CHOOSER_EXTRA_KEY"
+private const val PROVIDER_CHOOSER_EXTRA_VALUE = "PROVIDER_CHOOSER_EXTRA_VALUE"
+
/** Trivial "editor" which exposes the EditorSession for testing. */
public open class OnWatchFaceEditingTestActivity : ComponentActivity() {
public lateinit var editorSession: EditorSession
@@ -312,6 +315,11 @@
DefaultComplicationProviderPolicy(SystemProviders.DAY_OF_WEEK),
ComplicationBounds(RectF(0.6f, 0.4f, 0.8f, 0.6f))
).setDefaultProviderType(ComplicationType.SHORT_TEXT)
+ .setConfigExtras(
+ Bundle().apply {
+ putString(PROVIDER_CHOOSER_EXTRA_KEY, PROVIDER_CHOOSER_EXTRA_VALUE)
+ }
+ )
.build()
private val mockBackgroundCanvasComplication = Mockito.mock(CanvasComplication::class.java)
@@ -738,11 +746,7 @@
* Invoke [TestComplicationHelperActivity] which will change the provider (and hence
* the preview data) for [LEFT_COMPLICATION_ID].
*/
- assertTrue(
- editorSession.launchComplicationProviderChooser(
- LEFT_COMPLICATION_ID
- )
- )
+ assertTrue(editorSession.launchComplicationProviderChooser(LEFT_COMPLICATION_ID))
// This should update the preview data to point to the updated provider3 data.
val previewComplication =
@@ -765,6 +769,31 @@
}
@Test
+ public fun launchComplicationProviderChooser_ComplicationConfigExtras() {
+ ComplicationProviderChooserContract.useTestComplicationHelperActivity = true
+
+ val scenario = createOnWatchFaceEditingTestActivity(
+ emptyList(),
+ listOf(leftComplication, rightComplication)
+ )
+
+ lateinit var editorSession: EditorSession
+ scenario.onActivity { activity ->
+ editorSession = activity.editorSession
+ }
+
+ runBlocking {
+ assertTrue(editorSession.launchComplicationProviderChooser(RIGHT_COMPLICATION_ID))
+
+ assertThat(
+ TestComplicationHelperActivity.lastIntent?.extras?.getString(
+ PROVIDER_CHOOSER_EXTRA_KEY
+ )
+ ).isEqualTo(PROVIDER_CHOOSER_EXTRA_VALUE)
+ }
+ }
+
+ @Test
public fun getComplicationIdAt() {
val scenario = createOnWatchFaceEditingTestActivity(
emptyList(),
diff --git a/wear/wear-watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt b/wear/wear-watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt
index bd3a8c1..776d621 100644
--- a/wear/wear-watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt
+++ b/wear/wear-watchface-editor/src/main/java/androidx/wear/watchface/editor/EditorSession.kt
@@ -21,6 +21,7 @@
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
+import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.support.wearable.complications.ComplicationProviderInfo
@@ -490,7 +491,8 @@
it.value.initiallyEnabled,
it.value.renderer.getIdAndData()?.complicationData?.type
?: ComplicationType.NO_DATA,
- it.value.fixedComplicationProvider
+ it.value.fixedComplicationProvider,
+ it.value.configExtras
)
}
@@ -620,6 +622,10 @@
input.editorSession.complicationState[input.complicationId]!!.supportedTypes,
input.instanceId
)
+ val complicationState = input.editorSession.complicationState[input.complicationId]!!
+ intent.replaceExtras(
+ Bundle(complicationState.complicationConfigExtras).apply { putAll(intent.extras!!) }
+ )
if (useTestComplicationHelperActivity) {
intent.component = ComponentName(
"androidx.wear.watchface.editor.test",
diff --git a/wear/wear-watchface/api/current.txt b/wear/wear-watchface/api/current.txt
index e3174e1..cbeaa9a 100644
--- a/wear/wear-watchface/api/current.txt
+++ b/wear/wear-watchface/api/current.txt
@@ -31,11 +31,11 @@
public final class Complication {
method public android.graphics.Rect computeBounds(android.graphics.Rect screen);
method public static androidx.wear.watchface.Complication.Builder createBackgroundComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy);
- method public static androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds complicationBounds);
+ method public static androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds bounds);
method public int getBoundsType();
method @UiThread public androidx.wear.complications.ComplicationBounds getComplicationBounds();
- method public android.os.Bundle? getComplicationConfigExtras();
method public androidx.wear.watchface.ObservableWatchData<androidx.wear.complications.data.ComplicationData> getComplicationData();
+ method public android.os.Bundle getConfigExtras();
method @UiThread public androidx.wear.complications.DefaultComplicationProviderPolicy getDefaultProviderPolicy();
method @UiThread public androidx.wear.complications.data.ComplicationType getDefaultProviderType();
method public androidx.wear.watchface.CanvasComplication getRenderer();
@@ -48,8 +48,8 @@
method @UiThread public void render(android.graphics.Canvas canvas, android.icu.util.Calendar calendar, androidx.wear.watchface.RenderParameters renderParameters);
property public final int boundsType;
property @UiThread public final androidx.wear.complications.ComplicationBounds complicationBounds;
- property public final android.os.Bundle? complicationConfigExtras;
property public final androidx.wear.watchface.ObservableWatchData<androidx.wear.complications.data.ComplicationData> complicationData;
+ property public final android.os.Bundle configExtras;
property @UiThread public final androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy;
property @UiThread public final androidx.wear.complications.data.ComplicationType defaultProviderType;
property @UiThread public final boolean enabled;
@@ -62,7 +62,7 @@
public static final class Complication.Builder {
method public androidx.wear.watchface.Complication build();
- method public androidx.wear.watchface.Complication.Builder setComplicationConfigExtras(android.os.Bundle? extras);
+ method public androidx.wear.watchface.Complication.Builder setConfigExtras(android.os.Bundle extras);
method public androidx.wear.watchface.Complication.Builder setDefaultProviderType(androidx.wear.complications.data.ComplicationType defaultProviderType);
method public androidx.wear.watchface.Complication.Builder setEnabled(boolean enabled);
method public androidx.wear.watchface.Complication.Builder setFixedComplicationProvider(boolean fixedComplicationProvider);
@@ -70,7 +70,7 @@
public static final class Complication.Companion {
method public androidx.wear.watchface.Complication.Builder createBackgroundComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy);
- method public androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds complicationBounds);
+ method public androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds bounds);
}
public final class ComplicationOutlineRenderer {
diff --git a/wear/wear-watchface/api/public_plus_experimental_current.txt b/wear/wear-watchface/api/public_plus_experimental_current.txt
index e3174e1..cbeaa9a 100644
--- a/wear/wear-watchface/api/public_plus_experimental_current.txt
+++ b/wear/wear-watchface/api/public_plus_experimental_current.txt
@@ -31,11 +31,11 @@
public final class Complication {
method public android.graphics.Rect computeBounds(android.graphics.Rect screen);
method public static androidx.wear.watchface.Complication.Builder createBackgroundComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy);
- method public static androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds complicationBounds);
+ method public static androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds bounds);
method public int getBoundsType();
method @UiThread public androidx.wear.complications.ComplicationBounds getComplicationBounds();
- method public android.os.Bundle? getComplicationConfigExtras();
method public androidx.wear.watchface.ObservableWatchData<androidx.wear.complications.data.ComplicationData> getComplicationData();
+ method public android.os.Bundle getConfigExtras();
method @UiThread public androidx.wear.complications.DefaultComplicationProviderPolicy getDefaultProviderPolicy();
method @UiThread public androidx.wear.complications.data.ComplicationType getDefaultProviderType();
method public androidx.wear.watchface.CanvasComplication getRenderer();
@@ -48,8 +48,8 @@
method @UiThread public void render(android.graphics.Canvas canvas, android.icu.util.Calendar calendar, androidx.wear.watchface.RenderParameters renderParameters);
property public final int boundsType;
property @UiThread public final androidx.wear.complications.ComplicationBounds complicationBounds;
- property public final android.os.Bundle? complicationConfigExtras;
property public final androidx.wear.watchface.ObservableWatchData<androidx.wear.complications.data.ComplicationData> complicationData;
+ property public final android.os.Bundle configExtras;
property @UiThread public final androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy;
property @UiThread public final androidx.wear.complications.data.ComplicationType defaultProviderType;
property @UiThread public final boolean enabled;
@@ -62,7 +62,7 @@
public static final class Complication.Builder {
method public androidx.wear.watchface.Complication build();
- method public androidx.wear.watchface.Complication.Builder setComplicationConfigExtras(android.os.Bundle? extras);
+ method public androidx.wear.watchface.Complication.Builder setConfigExtras(android.os.Bundle extras);
method public androidx.wear.watchface.Complication.Builder setDefaultProviderType(androidx.wear.complications.data.ComplicationType defaultProviderType);
method public androidx.wear.watchface.Complication.Builder setEnabled(boolean enabled);
method public androidx.wear.watchface.Complication.Builder setFixedComplicationProvider(boolean fixedComplicationProvider);
@@ -70,7 +70,7 @@
public static final class Complication.Companion {
method public androidx.wear.watchface.Complication.Builder createBackgroundComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy);
- method public androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds complicationBounds);
+ method public androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds bounds);
}
public final class ComplicationOutlineRenderer {
diff --git a/wear/wear-watchface/api/restricted_current.txt b/wear/wear-watchface/api/restricted_current.txt
index 0325a71..a3b1a9a 100644
--- a/wear/wear-watchface/api/restricted_current.txt
+++ b/wear/wear-watchface/api/restricted_current.txt
@@ -31,11 +31,11 @@
public final class Complication {
method public android.graphics.Rect computeBounds(android.graphics.Rect screen);
method public static androidx.wear.watchface.Complication.Builder createBackgroundComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy);
- method public static androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds complicationBounds);
+ method public static androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds bounds);
method public int getBoundsType();
method @UiThread public androidx.wear.complications.ComplicationBounds getComplicationBounds();
- method public android.os.Bundle? getComplicationConfigExtras();
method public androidx.wear.watchface.ObservableWatchData<androidx.wear.complications.data.ComplicationData> getComplicationData();
+ method public android.os.Bundle getConfigExtras();
method @UiThread public androidx.wear.complications.DefaultComplicationProviderPolicy getDefaultProviderPolicy();
method @UiThread public androidx.wear.complications.data.ComplicationType getDefaultProviderType();
method public androidx.wear.watchface.CanvasComplication getRenderer();
@@ -48,8 +48,8 @@
method @UiThread public void render(android.graphics.Canvas canvas, android.icu.util.Calendar calendar, androidx.wear.watchface.RenderParameters renderParameters);
property public final int boundsType;
property @UiThread public final androidx.wear.complications.ComplicationBounds complicationBounds;
- property public final android.os.Bundle? complicationConfigExtras;
property public final androidx.wear.watchface.ObservableWatchData<androidx.wear.complications.data.ComplicationData> complicationData;
+ property public final android.os.Bundle configExtras;
property @UiThread public final androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy;
property @UiThread public final androidx.wear.complications.data.ComplicationType defaultProviderType;
property @UiThread public final boolean enabled;
@@ -62,7 +62,7 @@
public static final class Complication.Builder {
method public androidx.wear.watchface.Complication build();
- method public androidx.wear.watchface.Complication.Builder setComplicationConfigExtras(android.os.Bundle? extras);
+ method public androidx.wear.watchface.Complication.Builder setConfigExtras(android.os.Bundle extras);
method public androidx.wear.watchface.Complication.Builder setDefaultProviderType(androidx.wear.complications.data.ComplicationType defaultProviderType);
method public androidx.wear.watchface.Complication.Builder setEnabled(boolean enabled);
method public androidx.wear.watchface.Complication.Builder setFixedComplicationProvider(boolean fixedComplicationProvider);
@@ -70,7 +70,7 @@
public static final class Complication.Companion {
method public androidx.wear.watchface.Complication.Builder createBackgroundComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy);
- method public androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds complicationBounds);
+ method public androidx.wear.watchface.Complication.Builder createRoundRectComplicationBuilder(int id, androidx.wear.watchface.CanvasComplication renderer, java.util.List<? extends androidx.wear.complications.data.ComplicationType> supportedTypes, androidx.wear.complications.DefaultComplicationProviderPolicy defaultProviderPolicy, androidx.wear.complications.ComplicationBounds bounds);
}
public final class ComplicationOutlineRenderer {
diff --git a/wear/wear-watchface/src/main/java/androidx/wear/watchface/Complication.kt b/wear/wear-watchface/src/main/java/androidx/wear/watchface/Complication.kt
index 4b9d903..6730f94 100644
--- a/wear/wear-watchface/src/main/java/androidx/wear/watchface/Complication.kt
+++ b/wear/wear-watchface/src/main/java/androidx/wear/watchface/Complication.kt
@@ -244,7 +244,7 @@
public class Complication internal constructor(
internal val id: Int,
@ComplicationBoundsType public val boundsType: Int,
- complicationBounds: ComplicationBounds,
+ bounds: ComplicationBounds,
/** The [CanvasComplication] used to render the complication. */
public val renderer: CanvasComplication,
supportedTypes: List<ComplicationType>,
@@ -261,7 +261,7 @@
public val initiallyEnabled: Boolean,
/** Extras to be merged into the Intent sent when invoking the provider chooser activity. */
- public val complicationConfigExtras: Bundle?,
+ public val configExtras: Bundle,
/** Whether or not the complication provider is fixed. */
@get:JvmName("isFixedComplicationProvider")
@@ -304,14 +304,14 @@
defaultProviderPolicy: DefaultComplicationProviderPolicy,
/** The initial [ComplicationBounds]. */
- complicationBounds: ComplicationBounds
+ bounds: ComplicationBounds
): Builder = Builder(
id,
renderer,
supportedTypes,
defaultProviderPolicy,
ComplicationBoundsType.ROUND_RECT,
- complicationBounds
+ bounds
)
/**
@@ -364,11 +364,11 @@
private val supportedTypes: List<ComplicationType>,
private val defaultProviderPolicy: DefaultComplicationProviderPolicy,
@ComplicationBoundsType private val boundsType: Int,
- private val complicationBounds: ComplicationBounds
+ private val bounds: ComplicationBounds
) {
private var defaultProviderType = ComplicationType.NOT_CONFIGURED
private var initiallyEnabled = true
- private var complicationConfigExtras: Bundle? = null
+ private var configExtras: Bundle = Bundle.EMPTY
private var fixedComplicationProvider = false
/**
@@ -396,8 +396,8 @@
* Sets optional extras to be merged into the Intent sent when invoking the provider chooser
* activity.
*/
- public fun setComplicationConfigExtras(extras: Bundle?): Builder {
- this.complicationConfigExtras = extras
+ public fun setConfigExtras(extras: Bundle): Builder {
+ this.configExtras = extras
return this
}
@@ -413,13 +413,13 @@
public fun build(): Complication = Complication(
id,
boundsType,
- complicationBounds,
+ bounds,
renderer,
supportedTypes,
defaultProviderPolicy,
defaultProviderType,
initiallyEnabled,
- complicationConfigExtras,
+ configExtras,
fixedComplicationProvider
)
}
@@ -445,7 +445,7 @@
* Note it's not allowed to change the bounds of a background complication because
* they are assumed to always cover the entire screen.
*/
- public var complicationBounds: ComplicationBounds = complicationBounds
+ public var complicationBounds: ComplicationBounds = bounds
@UiThread
get
@UiThread
@@ -654,9 +654,9 @@
writer.println("enabled=$enabled")
writer.println("renderer.isHighlighted=${renderer.isHighlighted}")
writer.println("boundsType=$boundsType")
- writer.println("complicationConfigExtras=$complicationConfigExtras")
+ writer.println("configExtras=$configExtras")
writer.println("supportedTypes=${supportedTypes.joinToString { it.toString() }}")
- writer.println("complicationConfigExtras=$complicationConfigExtras")
+ writer.println("initiallyEnabled=$initiallyEnabled")
writer.println(
"defaultProviderPolicy.primaryProvider=${defaultProviderPolicy.primaryProvider}"
)
diff --git a/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt b/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
index 8c984f0..094efd7 100644
--- a/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
+++ b/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
@@ -547,7 +547,8 @@
it.value.renderer.getIdAndData()?.complicationData?.type
?.asWireComplicationType()
?: ComplicationType.NO_DATA.asWireComplicationType(),
- it.value.fixedComplicationProvider
+ it.value.fixedComplicationProvider,
+ it.value.configExtras
)
)
}