Quadrante Wear
Nota : il Watch Face Format è obbligatorio per l'installazione dei quadranti sui dispositivi con Wear OS 5 o versioni successive preinstallate e per tutti i nuovi quadranti pubblicati su Google Play.
A partire da gennaio 2026, il Watch Face Format sarà obbligatorio per l'installazione dei quadranti su tutti i dispositivi Wear OS.
Scopri di più sulle modifiche visibili agli utenti in questo articolo del Centro assistenza.
| Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| 17 dicembre 2025 | 1.2.1 | - | 1.3.0-beta01 | - |
Dichiara le dipendenze
Per aggiungere una dipendenza da Wear, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per
la tua app o il tuo modulo:
Groovy
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Kotlin
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Per saperne di più sulle dipendenze, consulta Aggiungi dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.3
Versione 1.3.0-beta01
17 dicembre 2025
androidx.wear.watchface:watchface-*:1.3.0-beta01 è stato rilasciato. La versione 1.3.0-beta01 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il supporto per i dati di anteprima delle complicazioni statiche, in cui un fornitore di complicazioni può specificare dati di anteprima statici nel manifest. Per maggiori dettagli, consulta
androidx.wear.watchface.complications.data.parser.StaticPreviewDataParser. - È stata aggiunta la classe di utilità
ComplicationTextFormattingcon il supporto per la formattazione di data e ora nel modo più conciso possibile, utile per le complicazioni in cui lo spazio è molto limitato.
Modifiche alle API
- La proprietà precedentemente sperimentale
Renderer.watchfaceColorsè ora privata. Esistono ancora accessor pubblici per questa proprietà. (Ifdf60, b/409363281)
Correzioni di bug
- I progetti rilasciati con Kotlin 2.0 richiedono KGP 2.0.0 o versioni successive. (I48968, b/407632515)
Versione 1.3.0-alpha07
23 aprile 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha07 è stato rilasciato. La versione 1.3.0-alpha07 contiene questi commit.
Nuove funzionalità
- È possibile definire lo schema UserStyle di un quadrante da un po' di tempo ed è possibile definire
ColorUserStyleSettingin XML.
Modifiche alle API
- I progetti rilasciati con Kotlin 2.0 richiedono KGP 2.0.0 o versioni successive. (Idb6b5)
- È stata aggiunta l'API Watch Face Push, che consente a un'app Wear OS di installare un quadrante su uno smartwatch in modo programmatico.
Correzioni di bug
- I fornitori di complicazioni che utilizzano la versione 1.3.0-alpha06 sono invitati a eseguire l'upgrade perché è stato corretto un bug di arresto anomalo con
ComplicationDataSourceUpdateRequesternella prossima versione di WearOS.
Versione 1.3.0-alpha06
26 marzo 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha06 è stato rilasciato. La versione 1.3.0-alpha06 contiene questi commit.
Nuove funzionalità
- Le API per i quadranti di Wear (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava e watchface-style) sono state ritirate a favore del formato per i quadranti di Wear e verranno rimosse da AndroidX. Le API per le complicazioni non sono deprecate e rimarranno. (Ice960)
- Le API per le complicazioni ora sono in grado di comunicare direttamente con
WearSDK, il che è più efficiente grazie a un minor numero di hop IPC.
Versione 1.3.0-alpha05
15 gennaio 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05 è stato rilasciato. La versione 1.3.0-alpha05 contiene questi commit.
Nuove funzionalità
I quadranti in genere consentono all'utente di selezionare i colori utilizzando un ListUserStyle. Sebbene questo metodo funzioni, comporta l'invio delle icone tramite Bluetooth all'editor companion, il che è inefficiente. Per questo motivo, abbiamo introdotto ColorUserStyleSetting, in cui il payload è un elenco di uno o più colori per stile, con un formato di trasmissione molto più compatto.
Abbiamo aggiunto una funzionalità rivolta agli OEM che consente ai fornitori di complicazioni OEM di aggiungere extra a ComplicationData per l'utilizzo da parte dei quadranti OEM.
Modifiche alle API
- Le classi
UserStyleSettingeUserStyleOptionora hanno dei builder, che sono il modo consigliato per costruirle. (Iacd03) - Supporto per il passaggio di extra in
ComplicationData. È destinato all'uso da parte degli OEM che controllano sia il fornitore di complicazioni sia il quadrante dell'orologio ricevente. L'impostazione di un extra richiede l'autorizzazione privilegiatacom.google.android.wearable.permission.COMPLICATION_EXTRAS. (I4e3b2) - I quadranti in genere consentono all'utente di selezionare i colori utilizzando un
ListUserStyle, con un'icona per ogniListOption. Poiché gli schemiUserStylevengono inviati tramite Bluetooth, è importante ridurre le dimensioni dello schema, il che può essere un problema se vengono fornite molte decine di opzioni di colore a causa di tutte queste icone. Per facilitare questa operazione, abbiamo aggiuntoColorUserStyleSetting, dove l'opzione contiene un elenco di colori anziché un'icona, il che è molto più compatto. (Ib542e) ColorUserStyleSettingeColorOptionrichiedono l'API 34 per l'utilizzo. (I8771d)
Correzioni di bug
- Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per imporre l'utilizzo corretto:
-Xjspecify-annotations=strict(questo è il valore predefinito a partire dalla versione 2.1.0 del compilatore Kotlin). (Ifd363, b/326456246)
Versione 1.3.0-alpha04
18 settembre 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha04 è stato rilasciato. La versione 1.3.0-alpha04 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il supporto per il caricamento differito delle icone in
UserStyleSettingseUserStyleOptions, il che migliora le prestazioni di caricamento dei quadranti. (Iaf43d) - È stata aggiunta un'opzione per acquisire uno screenshot aggiornato ogni volta che la configurazione del sistema cambia (ad es. se le impostazioni internazionali sono cambiate) tramite il nuovo
Watchface.setUpdateScreenshotOnConfigurationChange. Per impostazione predefinita, questa impostazione è disattivata. (I765a1)
Correzioni di bug
- È stata rimossa la definizione manuale dell'accesso alle nuove API della piattaforma, poiché avviene automaticamente tramite la modellazione delle API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I client che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (Ia60e0, b/345472586)
Versione 1.3.0-alpha03
17 aprile 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha03 è stato rilasciato. La versione 1.3.0-alpha03 contiene questi commit.
Modifiche alle API
- Abbiamo aggiunto
EditorSession#setOverrideComplications, che imposta temporaneamenteComplicationDatadell'istanza del quadrante sottostante durante la modifica. Se le complicazioni cambiano di rado, questo metodo è più efficiente rispetto al passaggio degli override tramiteEditorSession#renderWatchFaceToBitmap. (I19384)
Correzioni di bug
- In precedenza,
selectComplicationDataForInstantchiamavatoApiComplicationDataper qualsiasi sequenza temporale, il che significa che il successivo test di uguaglianza dei riferimenti === non riusciva mai. Ciò significava che le complicazioni venivano ricaricate ogni frame, causando un consumo della batteria. (717406)
Versione 1.3.0-alpha02
3 aprile 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02 è stato rilasciato. La versione 1.3.0-alpha02 contiene questi commit.
Nuove funzionalità
- Ora utilizziamo l'uguaglianza di riferimento per confrontare best e
selectedDataperché l'operatore di uguaglianza è costoso. (446b00)
Modifiche alle API
- Abbiamo aggiunto un'API dinamica senza fallback per
GoalProgressComplicationData. (c33264)
Versione 1.3.0-alpha01
7 febbraio 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01 è stato rilasciato. La versione 1.3.0-alpha01 contiene questi commit.
Nuove funzionalità
WatchFaceServicespossono essere inizializzati contemporaneamente e, pertanto, devono essere stateless. Per supportare questa funzionalità, abbiamo aggiuntoStatefulWatchFaceService, in cui un extra definito dall'utente creato dacreateExtra()viene passato a tutti gli override chiamati durante l'inizializzazione.GlesRenderer2ora ha un overload del costruttore che consente di specificare un elenco di attributi da provare a turno coneglChooseConfig.
Modifiche alle API
StatefulWatchFaceServiceora supporta l'override digetComplicationSlotInflationFactoryin cui viene passato l'extra definito dall'utente creato dacreateExtra(). (I82d9f)- Alcune watch face devono condividere i dati ausiliari creati durante
createUserStyleSchemacon gli altri metodi di inizializzazione. Poiché non esisteva un'alternativa migliore, gli sviluppatori in genere rendevano stateful il proprioWatchFaceServices. Ciò è pericoloso perché è possibile creare più istanze contemporaneamente, il che può causare bug. Per risolvere questo problema, abbiamo introdottoStatefulWatchFaceServiceeStatefulWatchFaceRuntimeService, in cui un tipo definito dall'utente viene creato dacreateExtra()e viene passato ai vari metodi di creazione come parametro. (If8a99) - Abbiamo aggiunto
getUserStyleFlavorsaInteractiveWatchFaceClient, che è di interesse principalmente per gli OEM. (I0f5d8) GlesRenderer2ora ha un overload del costruttore che consente di specificare un elenco di attributi da provare a turno coneglChooseConfig. Ad esempio, ti consente di provare prima una configurazione con anti-aliasing e di ripristinarne una senza, se necessario. (I1ba74)- A partire da Android U, il supporto di
SystemDataSources.DATA_SOURCE_HEART_RATEverrà aggiunto a WearOS. È garantito che questa complicazione supporti solo le complicazioniSHORT_TEXT, ma è consigliabile cheComplicationSlotaccetti ancheSMALL_IMAGE, perché gli OEM potrebbero scegliere di mostrare una scorciatoia alla propria app per la salute anziché il valore in tempo reale. (I34223) - Abbiamo aggiunto
METADATA_KEY_CONFIG_RESTORE_SUPPORTEDche, a partire da Android U, controlla cosa succede quando il sistema viene ripristinato da un backup per l'origine dati della complicazione conMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION. Per impostazione predefinita, il sistema presuppone che il servizio di origine dati della complicazione supporti il backup di tutti i dati di configurazione, ma in caso contrario può aggiungere l'impostazione dei metadatiMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONsu false, il che contrassegnerà lo spazio della complicazione come non configurato. (I6c505)
Versione 1.2
Versione 1.2.1
24 gennaio 2024
androidx.wear.watchface:watchface-*:1.2.1 è stato rilasciato. La versione 1.2.1 contiene questi commit.
Correzioni di bug
- È stato risolto un arresto anomalo su Samsung Galaxy Watch 4, 5 e 6. (43f0b0)
Versione 1.2.0
29 novembre 2023
androidx.wear.watchface:watchface-*:1.2.0 è stato rilasciato. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
- Abbiamo aggiunto il supporto di alcuni nuovi tipi di complicazioni che sono disponibili per l'uso da Android T:
GoalProgressComplicationData, simile aRangedValueComplicationData, tranne per il fatto che si riferisce all'avanzamento verso un obiettivo in cui il valore minimo è implicitamente zero e il valore può essere maggiore ditargetValue.WeightedElementsComplicationData, che consiste in un array di elementi (coppie di peso e colore) insieme a testo/titolo/immagine facoltativi. Questi potrebbero essere visualizzati come un grafico a torta in cui i colori devono essere significativi in base al contesto, poiché in genere non c'è spazio in una complicazione per visualizzare le etichette.
- È stato aggiunto il supporto per
ColorRangesfacoltativo aRangedValueComplicationData. Normalmente le complicazioni vengono visualizzate nei colori scelti dal quadrante, ma a volte è meglio che siaComplicationDataSourcea impostare i colori, ad esempio quando hanno un significato semantico particolare. Ad esempio, dal rosso al blu per la temperatura. - Quasi tutti i tipi di
ComplicationDataora supportanoSmallImages. - Abbiamo aggiunto
ComplicationDisplayPolicy, doveDO_NOT_SHOW_WHEN_DEVICE_LOCKEDindica a un quadrante compatibile di non visualizzare la complicazione quando il dispositivo è bloccato. - A partire da Android T, gli OEM potranno determinare se una richiesta di complicazione proviene da un quadrante nell'elenco definito dai metadati
android.support.wearable.complications.SAFE_WATCH_FACESnel manifest del provider tramiteComplicationRequest#isForSafeWatchFace. Il fornitore avrà bisogno dell'autorizzazionecom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEper ricevere qualsiasi valore diverso da TargetWatchFaceSafety.UNKNOWN. UserStyleFlavorsè diventata una funzionalità non sperimentale.
Versione 1.2.0-rc01
18 ottobre 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01 è stato rilasciato. La versione 1.2.0-rc01 contiene questi commit.
Versione 1.2.0-beta02
6 settembre 2023
androidx.wear.watchface:watchface-*:1.2.0-beta02 è stato rilasciato. La versione 1.2.0-beta02 contiene questi commit.
Nuove funzionalità
SuspendingComplicationDataSourceService#onDestroyè ora aperto. Tieni presente che il supporto per una complicazione meteo predefinita del sistema è stato rimosso.
Modifiche alle API
- Ripristina "Esporre una nuova origine dati per le complicazioni meteo". (I6f335)
Versione 1.2.0-beta01
23 agosto 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01 è stato rilasciato. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- A partire da Android T, WearOS supporterà una complicazione di sistema meteo predefinita.
Modifiche alle API
- Aggiungi il fallback predefinito del sistema meteo per le complicazioni. (Ia0994)
- Questa patch aggiunge
WatchFaceRuntimeServiceeWatchFaceControlClient.createWatchFaceRuntimeControlClientinsieme ai wrapper Guava. Questi aggiungono il supporto per i runtime dei quadranti, che sono un tipo speciale di quadrante che carica la propria definizione da un altro pacchetto. Al momento WearOS supporta solo il runtime per il formato del quadrante per Android. (I2799f) - Questa patch è un follow-up di aosp/2636578, in cui rinominiamo le definizioni int in modo che qualsiasi codice che dipende da
WatchFaceType,CanvasType,TapTypeoComplicationsSlotBoundsTypenon debba essere modificato. (I4098b) - File API aggiornati per annotare la soppressione della compatibilità. (I8e87a, b/287516207)
- Questa patch espone le costanti
WatchFaceTypeinWatchFaceTypes, le costantiCanvasTypeinCanvasTypes, le costantiTapTypeinTapTypese le costantiComplicationsSlotBoundsTypeinComplicationsSlotBoundsType. (I3b85a, b/288750666) WatchFace.OverlayStyleha un utilizzo molto basso e non è ben supportato dagli OEM, pertanto lo stiamo ritirando con l'intenzione di rimuoverlo in un secondo momento. (I7344a)
Versione 1.2.0-alpha09
21 giu 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09 è stato rilasciato. La versione 1.2.0-alpha09 contiene questi commit.
Nuove funzionalità
RangedValueComplicationData.Builderora accettaDynamicFloated è disponibile una nuovaDynamicComplicationTextcome sottoclasse diComplicationText, entrambe in grado di utilizzare espressioni dinamiche e binding della piattaforma che vengono aggiornati a 1 Hz sui dispositivi Wear 4 supportati.
Modifiche alle API
- Sono stati aggiunti tipi dinamici per distanza giornaliera, calorie giornaliere e piani giornalieri. Le chiavi per le fonti di integrità della piattaforma ora si trovano in
PlatformHealthSources.Keys(Ib7637) - Implementa
PlatformDataProviderper fornire il battito cardiaco e i passi giornalieri. L'interfacciaSensorGatewayviene rimossa dall'API pubblica. (I55b84) - Rinomina
StateEntryValueinDynamicDataValuee aggiorna le API di stato in modo che utilizzinoDynamicDataKey. (If1c01) - Aggiungi
AppDataKeyper accedere allo stato push dell'app; aggiungiPlatformDataKeyper accedere ai dati della piattaforma; aggiungi il supporto dello spazio dei nomi inStateStore. (I7985e) - I metodi
enable/disablePlatformSourcesono stati rimossi daDynamicTypeEvaluator. La persona che chiama deve occuparsi degli aggiornamenti. (I78c6d) - Consente di limitare le dimensioni dei tipi di dati associati. (Ie2966)
Versione 1.2.0-alpha08
19 aprile 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08 è stato rilasciato. La versione 1.2.0-alpha08 contiene questi commit.
Nuove funzionalità
- A partire da Android T, i fornitori di complicazioni con il privilegio
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEpossono registrare metadatiandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESche sostituisconoandroid.support.wearable.complications.SUPPORTED_TYPESper i quadranti sicuri. Ciò significa che un fornitore di complicazioni può scegliere di pubblicare tipi diversi per i quadranti attendibili e non attendibili.
Modifiche alle API
- Propagazione della classe
@Deprecatedalla proprietà (I882d1, b/271441831) - Nome del parametro del valore per
Enum.valueOfmodificato (Ia9b89) - Altre eccezioni generate da enum valueOf (I818fe)
- Abbiamo rimosso
renderWatchFaceToSurfacea favore dicreateRemoteWatchFaceView, che si basa su SurfaceControlViewHost e consente al chiamante di incorporare una visualizzazione dal quadrante, che viene visualizzata quando il client chiamaRemoteWatchFaceViewHost#renderWatchFace. (Ib311d) - Abbiamo aggiunto
renderWatchFaceToSurfaceaInteractiveWatchFaceClient,HeadlessWatchFaceClienteEditorSession. In genere, questa operazione è più efficiente del rendering in una bitmap. (Ieacad) ObservableStateStoreè stato rinominato inStateStore. (Ieb0e2)- È stato aggiunto
DynamicTypeEvaluator.Builderanziché gli argomenti del costruttore per consentire più argomenti facoltativi, tra cuiObservableStateStore, che ora è impostato per impostazione predefinita su un archivio vuoto. (I6f832) - È stato eseguito il refactoring dell'ordine dei parametri in
DynamicTypeEvaluator. (Ic1ba4) - L'esecutore è stato aggiunto ai metodi
DynamicTypeEvaluator.bind. (I346ab) - Abbiamo aggiunto il metodo
startEvaluationaBoundDynamicTypeper attivare la valutazione dopo l'associazione del tipo dinamico. (I19908) - I fornitori di complicazioni con il privilegio
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEpossono registrare i metadatiandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESche sostituisconoandroid.support.wearable.complications.SUPPORTED_TYPESper i quadranti sicuri. (Id1c73) - Abbiamo rinominato
CustomValueUserStyleSettings2inLargeCustomValueUserStyleSettings. (Ic17ac)
Correzioni di bug
DynamicTypeValueReceiver#onPreUpdateè stato rimosso. (I2dc35)
Versione 1.2.0-alpha07
22 febbraio 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07 è stato rilasciato. La versione 1.2.0-alpha07 contiene questi commit.
Nuove funzionalità
A partire da Android T, gli OEM potranno determinare se una richiesta di complicazione proviene da un quadrante nell'elenco definito dai metadati
android.support.wearable.complications.SAFE_WATCH_FACESnel manifest del provider tramiteComplicationRequest#isForSafeWatchFace. Il fornitore avrà bisogno dell'autorizzazionecom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEper ricevere qualsiasi altro elemento diverso daTargetWatchFaceSafety.UNKNOWN.A partire da Android T
CustomValueUserStyleSetting2è disponibile anche un'area di archiviazione che può contenere fino a 12,5 KB. Il limite precedente perCustomValueUserStyleSettingera di 1 kB. Nonostante i limiti di dimensioni maggiori, gli sviluppatori di quadranti sono invitati a mantenere i dati di dimensioni ridotte perché le impostazioni vengono inviate tramite Bluetooth durante la modifica e la larghezza di banda Bluetooth è limitata.
Modifiche alle API
- Abbiamo aggiunto un parametro facoltativo
eglContextAttribListaGlesRenderereGlesRenderer2che ti consente di impostare il valoreEGL14.EGL_CONTEXT_CLIENT_VERSIONpassato aEGL14.eglCreateContext. (I2a83e) - Abbiamo eseguito la migrazione delle librerie dei quadranti a
androidx.core.util.Consumeranziché ajava.util.function.Consumer. (I273f5) - Altre eccezioni generate dagli accessor di proprietà KT (Iff9d9)
- Abbiamo aggiunto
InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedin modo che il client possa determinare se deve emulare o meno il supporto per conto dei vecchi quadranti. (I24c89) - Abbiamo deciso che
isForSafeWatchFacedovrebbe essere unIntDeftri-state. (Ief2f7) - Per Android T abbiamo introdotto
ComplicationRequest.isForSafeWatchFace, che è destinato all'uso OEM e richiedecom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE. Per le origini dati nell'immagine di sistema, questo valore restituirà true se il quadrante dell'orologio richiedente si trova nell'elenco dei quadranti sicuri specificati dall'origine dati nel relativo manifest. (I0cbb6) - Per Android T abbiamo aggiunto
CustomValueUserStyleSetting2, che può contenere fino a 12,5 KB. Il limite precedente perCustomValueUserStyleSettingera di 1 kB. (I0b100)
Versione 1.2.0-alpha06
25 gennaio 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06 è stato rilasciato. La versione 1.2.0-alpha06 contiene questi commit.
Nuove funzionalità
- Stiamo lavorando per aggiungere il supporto per i binding della piattaforma di complicazioni. Questa funzionalità non è ancora pronta per l'uso, ma continua a seguirci per aggiornamenti.
- Abbiamo aggiunto il supporto XML
ComplicationSlotper i nuovi tipi di complicazione, GOAL_PROGRESS e WEIGHTED_ELEMENTS.
Correzioni di bug
- Corregge una perdita in cui l'editor del quadrante non veniva rilasciato correttamente sui dispositivi Samsung. (3b5987)
- Corregge un bug per cui a volte le complicazioni non venivano visualizzate correttamente quando si passava da un quadrante con più preferiti. (b38ece)
- Corregge un bug di serializzazione con perOptionScreenReaderNames che causa l'arresto anomalo del quadrante. (e9f466)
Versione 1.2.0-alpha05
7 dicembre 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05 è stato rilasciato. La versione 1.2.0-alpha05 contiene questi commit.
Nuove funzionalità
Qualche tempo fa abbiamo aggiunto il supporto per le
UserStyleSettingsgerarchiche e da Android T è ora possibile avere più di unaComplicationSlotsUserStyleSettingin una gerarchia. Solo unComplicationSlotsUserStyleSettingsarà attivo, in base alle selezioni di stile dell'utente.Stiamo migliorando il supporto dello screen reader per
ListOptioneComplicationSlotsOptionaggiungendo un camposcreenReaderName. Prima di Android T, questo campo verrà ignorato dagli editor complementari.
Modifiche alle API
- Abbiamo aggiunto un nuovo campo
screenReaderNamefacoltativo aListOptioneComplicationSlotsOptionper l'utilizzo da parte degli editor. Verrà ignorato dagli editor complementari sui dispositivi precedenti ad Android T. (I75326) - A partire da Android T, sono supportati più
ComplicationSlotsUserStyleSettingsin una gerarchia di stili, a condizione che al massimo uno solo di questi possa essere attivo in un determinato momento. Abbiamo aggiunto una funzione di utilitàfindComplicationSlotsOptionForUserStyleaUserStyleSchemaper aiutarti a trovare l'ComplicationSlotsOptionattivo, se presente. (Ic2b06) RangedValuesTypessono stati inseriti nell'oggetto secondario diRangedValueComplicationDatae rinominati inTYPE_UNDEFINED,TYPE_RATINGed è stato aggiunto un nuovoTYPE_PERCENTAGE. (I55d02)- Abbiamo rinominato l'esperimento
DynamicFloatinFloatExpressione l'abbiamo contrassegnato come@hide. (Idf4f1) - Aggiunta dell'annotazione
@JvmDefaultWithCompatibility(I8f206)
Versione 1.2.0-alpha04
9 novembre 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04 è stato rilasciato. La versione 1.2.0-alpha04 contiene questi commit.
Nuove funzionalità
- Per Android T abbiamo aggiunto il supporto per due nuovi tipi di complicazioni,
GoalProgressComplicationDataeWeightedElementsComplicationData. GoalProgressComplicationDataè simile aRangedValueComplicationData, ma il suo valore può superare il target (perRangedValueComplicationDatail valore è bloccato nell'intervallo [min .. max]), il che ha implicazioni per il design visivo che potrebbero non essere adatte a tutti i quadranti.GoalProgressComplicationDataaggiunge il supporto per i grafici a torta e suddivisioni simili di dati semplici.- Abbiamo aggiunto il supporto facoltativo per
ColorRampsaRangedValueComplicationData. - Per Android T, abbiamo aggiunto
ComplicationPersistencePolicyesetCachePolicyaComplicationData, che attualmente consente a un fornitore di controllare se una complicazione viene mantenuta o meno (ovvero se viene memorizzata nella cache dopo il riavvio). La maggior parte delle complicazioni non richiede l'impostazione del controllo della cache, ma questa operazione può risolvere casi limite con dati obsoleti per alcune complicazioni che vengono aggiornate di frequente (ad es. le complicazioni dei dati sanitari). Abbiamo anche aggiuntoComplicationDisplayPolicy, doveDO_NOT_SHOW_WHEN_DEVICE_LOCKEDindica a un quadrante compatibile di non visualizzare la complicazione quando il dispositivo è bloccato. (Ic9574)
Modifiche alle API
GoalProgressComplicationData,WeightedElementsComplicationDataeColorRampnon sono più sperimentali. (Ica9e2)ComplicationPersistencePolicyeComplicationDisplayPolicysono ora contrassegnati correttamente come API T. (I31d88)- Il costruttore
ComplicationSlotOverlayritirato ora haDeprecationLevel.WARNING, il che consente di chiamarlo di nuovo da Java. (Ib308c) - Abbiamo risolto alcuni problemi di compatibilità Java con
ComplicationRequestListener,CanvasComplication,ComplicationTapFiltereInteractiveWatchFaceClientannotandoli con@JvmDefaultWithCompatibility(Id94fc) - Abbiamo rimosso
ProtoLayoutComplicationDataeListComplicationDatasperimentali. La storia dello sviluppatore per questi era poco chiara, speriamo di rivisitarla in futuro. (I9df05) - Abbiamo aggiunto un
ValueTypeaRangedValueComplicationData.WeightedElementsComplicationDataora supporta un colore di sfondo. Abbiamo rimossoDiscreteRangedValueComplicationDataperché la sua funzionalità è un sottoinsieme diWeightedElementsComplicationData. (I6446c)
Correzioni di bug
- Includi
isForScreenShotnel segno di uguale e nel codice hash. Assicurati cheonRenderParametersChangedriceva un valoreisForScreenshotcorretto (I04a41) - Sono state corrette le perdite di
WatchFaceControlServicedai client headless. (e90e00)
Versione 1.2.0-alpha03
5 ottobre 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03 è stato rilasciato. La versione 1.2.0-alpha03 contiene questi commit.
Nuove funzionalità
- Nessuna nuova funzionalità, ma abbiamo corretto un paio di bug dell'editor di quadranti.
Modifiche alle API
- Deprecata
UserStyleSchema.userStyleSettingsperchérootUserStyleSettingsè diventato non sperimentale (Ie96e3) - Sposta
rootUserStyleSettingsfuori dalla versione sperimentale (I8d6b3) - Abbiamo contrassegnato
WatchFaceColorscome sperimentale perché non è supportato da tutti i sistemi (I6d75d) - Esporre
DisconnectReasonsnell'API pubblica per farlo funzionare conIntDef. (I791f8)
Correzioni di bug
- Chiudi qualsiasi editor aperto sull'orologio se
SysUIsi scarica. SeSysUIsi arresta e l'editor di quadranti non si chiude, il quadrante potrebbe rimanere in uno stato incoerente perché il sistema si basa suSysUIper conservare le modifiche allo stile dell'utente.(ba762a - È stato corretto un problema di perdita di memoria in
ComplicationDataSourceInfoRetriever, in cui una continuazione della coroutine Kotlin fungeva da radice GC e manteneva l'attività dell'editor.(33ee06)
Versione 1.2.0-alpha02
21 settembre 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02 è stato rilasciato. La versione 1.2.0-alpha02 contiene questi commit.
Nuove funzionalità
Alcuni quadranti hanno una configurazione al di fuori di
UserStyleche ne influenza l'aspetto visivo (ad es. la selezione di una foto di sfondo). Abbiamo aggiuntoRenderer.sendPreviewImageNeedsUpdateRequest, che consente al quadrante di richiedere un'immagine di anteprima aggiornata. Tieni presente che per funzionare è necessario un aggiornamento del sistema corrispondente.Abbiamo anche aggiunto un'API per i quadranti per esporre i loro colori al sistema, che può scegliere la tavolozza dei colori in base a questi. Nota: questa funzionalità è stata resa sperimentale in una patch successiva.
Quasi tutti i tipi di
ComplicationDataora supportanoSmallImages.
Modifiche alle API
- A volte il gestore degli sfondi può staccarsi da un motore e crearne un altro. Abbiamo aggiunto una definizione di
DisconnectReasonint ed estesoClientDisconnectListenercon un nuovo metodo che include unDisconnectReason, consentendo all'ascoltatore di osservare i distacchi del motore. (I45cce) - Aggiunti due parametri facoltativi
nameResourceIdescreenReaderResourceIdal costruttoreComplicationSlotOverlay(I157e8) - Abbiamo aggiunto un wrapper Guava per il nuovo overload di
getOrCreateInteractiveWatchFaceClientcon unPreviewImageUpdateRequestedListener. (Ic31f0) - Abbiamo aggiunto
Renderer.sendPreviewImageNeedsUpdateRequest, utile per i quadranti che hanno uno stato al di fuori diUserStyleSchemache influisce sul loro aspetto (ad es. un quadrante con un'immagine di sfondo selezionabile). Sul lato client abbiamo aggiuntoPreviewImageUpdateRequestedListenercome parametro facoltativo agetOrCreateInteractiveWatchFaceClientper osservare queste richieste. (Iff44a) - Abbiamo semplificato l'API per l'esposizione di
WatchFaceColors. Ora esiste una semplice proprietà chiamatawatchFaceColorsnel renderer che il quadrante può impostare. Questa proprietà deve essere aggiornata in base alle necessità in risposta a eventuali modifiche dello stile. Anziché utilizzareWallpaperManagerper osservare le modifiche del colore, abbiamo aggiuntoOnWatchFaceColorsListeneraInteractiveWatchFaceClient. (I490bc) - Abbiamo aggiunto una classe
WatchFaceColorsche contiene i tre colori più importanti del quadrante e abbiamo aggiunto i metodi apertiwatchfaceColorsenotifyWatchFaceColorsChangedal renderer, che consentono al sistema di ottenere i colori del quadrante tramiteWallpaperManager.getWallpaperColors. (I3d611) ShortTextComplicationData,RangedValueComplicationData,NoPermissionComplicationData(e le versioni sperimentaliDiscreteRangedValueComplicationData,GoalProgressComplicationDataeWeightedElementsComplicationData) ora supportano tuttiSmallImages. Se un quadrante sceglie di eseguire il rendering di una complicazione con più colori, ora ha la possibilità di utilizzare un'immagineSmallImagemulticolore, mentre in precedenza avrebbe dovuto utilizzare un'immagine monocromatica. (I257df)- Esegui il refactoring di
PreviewImageUpdateRequestedListenerin modo che sia unConsumer<>(Ia875d) - Sostituisci il tipo di metodo astratto singolo (SAM) personalizzato
OnWatchfaceColorsListenercon il tipo SAM Java generico (Consumer) (I0c489) - Abbiamo ritirato i vecchi metodi
getOrCreateInteractiveWatchFaceClientelistenableGetOrCreateInteractiveWatchFaceClientche non specificano unPreviewImageUpdateRequestedListener. (Iec502)
Correzioni di bug
DisconnectReason.BINDER_DIEDè stato rinominato inDisconnectReason.ENGINE_DIED. (I4eb0e)
Versione 1.2.0-alpha01
10 agosto 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01 è stato rilasciato. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
- Abbiamo aggiunto il supporto sperimentale per vari nuovi formati di complicazione. Si tratta di un'area di sviluppo attivo; questi nuovi formati sono soggetti a modifiche senza preavviso e al momento non è disponibile il supporto del renderer da parte di
CanvasComplicationDrawable. - Abbiamo anche aggiunto margini facoltativi agli spazi per le complicazioni, in modo da rendere più semplice toccare le complicazioni piccole.
Modifiche alle API
- La classe sperimentale
BoundingArcora è immutabile. (If624a) - Le complicazioni piccole possono essere difficili da toccare. Per contribuire a mitigare questo problema, abbiamo introdotto il supporto dei margini, che aumentano l'area toccabile senza influire sul rendering. Se non specificati (nel codice o tramite XML), i
ComplciationSlotshanno margini di dimensioni pari a zero. (I14089) - Modificata la firma di
getComplicationSlotInflationFactory(CurrentUserStyleRepository)per restituire un'istanza di fabbrica non nulla. In precedenza era un errore restituire null, quindi questo serve solo a rendere più chiaro il contratto API. (I0fcc0) - Abbiamo aggiunto l'argomento
currentUserStyleRepositoryal metodoWatchFaceService.getComplicationSlotInflationFactoryper coerenza concreateComplicationSlotsManager. (I2ddd2) UserStyleFlavorsè diventata una funzionalità non sperimentale. (I69cdc)- Abbiamo rimosso
ValueTypesperimentale daRangedValueComplicationDatae abbiamo introdottoDiscreteRangedValueComplicationDatasperimentale, che è simile aRangedValueComplicationData, ad eccezione dell'intervallo e del valore interi. Abbiamo anche introdottoGoalProgressComplicationDatasperimentale, simile aRangedValueComplicationData, ma per il progresso verso un obiettivo in cui il valore minimo è implicitamente zero e il valore può essere maggiore ditargetValue. Nota per tutte le varianti diRangedValue: deve essere specificato almeno uno tra monochromeImage, text o title. (I9590c) - Abbiamo rimosso
boundsWithMarginsdaComplicationSlotStateperché il software di sistema non ha un caso d'uso per questa funzionalità. (I42e26) - Abbiamo aggiunto il supporto sperimentale per
WeightedElementsComplicationData, che consiste in un array di elementi (coppie di peso e colore) insieme a testo/titolo/immagine facoltativi. Questi potrebbero essere visualizzati come un grafico a torta in cui i colori devono essere significativi in base al contesto, poiché in genere non c'è spazio in una complicazione per visualizzare le etichette. (I87eea) ColorRampssperimentale utilizzato facoltativamente daRangedValueComplicationDataeGoalProgressComplicationDataora ti consente di specificare una sequenza di massimo sette colori e un flag che indica se i colori devono essere interpolati in modo uniforme o se devono essere visualizzati passaggi di colore solidi di dimensioni uguali. (I9f5bf)RangedValueComplicationData.drawSegmentedè stato modificato invalueType, che è un numero intero con unValueType IntDefcorrispondente che fornisce un significato semantico al valore compreso in un intervallo e può essere utilizzato dal renderer della complicazione per influire sullo stile. (I0616b)- Abbiamo aggiunto il supporto sperimentale per
ColorRangesfacoltativo aRangedValueComplicationData. Normalmente le complicazioni vengono visualizzate nei colori scelti per il quadrante, ma a volte è meglio che siaComplicationDataSourcea impostare i colori, ad esempio quando hanno un significato semantico particolare. Ad esempio, dal rosso al blu per la temperatura. (I5153a) - Abbiamo aggiunto un suggerimento sperimentale per
drawSegmentedaRangedValueComplicationData. Questo indica ai renderer di disegnare l'indicatore del valore compreso in un intervallo con segmenti, dove 1 segmento = 1 unità. (I7d7c1)
Correzioni di bug
- Abbiamo aggiunto la possibilità di definire
ComplicationSlotBoundsrispetto a un sistema di coordinate dello schermo predefinito. (I0985d)
Versione 1.1
Versione 1.1.1
10 agosto 2022
androidx.wear.watchface:watchface-*:1.1.1 è stato rilasciato. La versione 1.1.1 contiene questi commit.
- Questa release include correzioni di bug e consigliamo vivamente agli utenti della versione 1.1.0 di eseguire l'upgrade.
Correzioni di bug
L'inizializzazione del quadrante è asincrona e se una complicazione viene ricevuta prima che il quadrante sia pronto, viene inserita nell'elenco
pendingInitialComplicationse applicata in un secondo momento. PurtroppopendingInitialComplicationsè stato applicato troppo presto, il che significa che durante l'inizializzazione del quadrante c'era un periodo di tempo in cui le complicazioni venivano comunque inserite inpendingInitialComplicationse ignorate. Il problema è stato risolto. Inoltre, questa patch corregge un bug per cuiComplicationRenderertentava erroneamente di caricare i segnaposto in modo asincrono, senza riuscirci e impedendo l'aggiornamento del grafico di compilazione. Infine, questa patch corregge un bug teorico in cui è necessario unire piùpendingInitialComplications. (0d03ba3)Correzione di un potenziale deadlock in
InteractiveInstanceManagerin cuigetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstancemanteneva il blocco più a lungo del necessario. Di solito ci aspettiamo cheengine.setUserStylesia veloce, ma se per qualche motivo non lo è, potremmo trovarci in una situazione di stallo/ANR. Questa patch sposta il lavoro non necessario fuori dal blocco, eliminando la possibilità di un deadlock.(5a2adca)Sono stati corretti diversi problemi che conservavano
WatchFaceService. A volte WakeLock può conservareWatchFaceService, quindi una chiamatarelease()risolve il problema. Inoltre,StateFlowspuò conservareWatchFaceService, quindi l'annullamento diCoroutineScopessottostante risolve il problema.(fd48138)Aggiungi timeout a
awaitDeferredWatchFace* e correggiwatchfaceOverlayStyleNullPointerException. In circostanze normali, questo non dovrebbe scadere, anche dopo l'installazione e gli scenariDirectBootin cui il carico della CPU è elevato. Abbiamo anche corretto un errore NullPointerException segetWatchfaceOverlayStyleviene chiamato dopoclose().(a4c3a5a)
Versione 1.1.0
15 giugno 2022
androidx.wear.watchface:watchface-*:1.1.0 è stato rilasciato. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
Modifica migliorata:
- Abbiamo aggiunto il supporto per gli schemi gerarchici, che consente di scrivere una gerarchia di stili tramite le UI dell'editor. Ora puoi specificare icone separate da utilizzare negli editor di quadranti e app complementari.
- È disponibile il supporto con attivazione per più istanze di un quadrante, ciascuna con un ID univoco disponibile in tutte le superfici API.
- Ora puoi specificare nomi leggibili per
ComplicationSlotsda utilizzare negli editor. - Supporto sperimentale per gli "stili", una selezione curata di stili che saranno visibili dall'editor complementare.
- Quando vengono caricate due istanze del quadrante, ora è possibile che le istanze del quadrante condividano le risorse, risparmiando memoria
- Quando scegli una complicazione nell'editor dei quadranti, il fornitore attuale è ora preselezionato.
Complicazioni migliorate:
- Ora puoi specificare il
ComplicationTypeper le origini dati primaria e secondaria, offrendo agli sviluppatori maggiore flessibilità per l'esperienza predefinita. - Abbiamo aggiunto
ComplicationDataTimeline, che fornisce una sequenza di dati con limiti di tempo da inviare al quadrante, che può essere memorizzata nella cache e aggiornata automaticamente. Ad esempio, le previsioni meteo di oggi in vari momenti o più eventi in programma nel calendario. - Il
ComponentNamedel fornitore di complicazioni fa parte diComplicationData. - Le complicazioni ora vengono memorizzate nella cache, il che offre un'esperienza migliore quando si passa da un quadrante all'altro.
Altre modifiche:
- Ora è possibile definire
UserStyleSchemaeComplicationSlotsin XML. Ciò semplifica la creazione dei quadranti e consente query di metadati più rapide dal sistema. - I quadranti ora possono influenzare i colori utilizzati per il rendering della sovrapposizione di sistema.
Versione 1.1.0-rc01
18 maggio 2022
androidx.wear.watchface:watchface-*:1.1.0-rc01 è stato rilasciato. La versione 1.1.0-rc01 contiene questi commit.
Nuove funzionalità
- Abbiamo apportato alcuni miglioramenti all'usabilità del supporto XML dei quadranti, semplificando la specifica di
ComplicationSlotBoundse dei riferimenti supportati. Continua la sperimentazione con la complicazione sul bordoBoundingArc, che viene trasferita adrawHighlight, anche se non è consigliata per l'uso in quel momento.
Modifiche alle API
- Abbiamo aggiunto un overload sperimentale di
drawHighlightche accetta un parametroBoundingArc. (I705f8) - L'XML del quadrante ora supporta i riferimenti alle risorse. Ti consente di utilizzare le stesse costanti sia in XML che nel codice. (I3ef61)
- Abbiamo aggiunto la possibilità di definire
ComplicationSlotBoundsnel modulocenter_x,center_y,size_x,size_y. Ora è anche possibile utilizzare unità diverse (ad es. dp) utilizzando i riferimenti alle risorse. (Iace98)
Correzioni di bug
- Correzione di
runBlockingWithTracingche eseguiva attività nel contesto errato.(4f595fe) - Rendi
BaseEditorSession.closesincrono. Il problema conBaseEditorSession.closeasincrono è che rilasciamoComplicationDataSourceInfoRetrievertroppo tardi, il che porta a spam di avvisi in logcat. Probabilmente si tratta di un problema innocuo, ma lo spam logcat è fonte di distrazione e deve essere evitato.(35a5308)
Versione 1.1.0-beta02
11 maggio 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02 è stato rilasciato. La versione 1.1.0-beta02 contiene questi commit.
Nuove funzionalità
- Abbiamo aggiunto il supporto sperimentale per nuovi tipi di
ComplicationData, che non sono ancora pronti per l'uso, ma tieni d'occhio questa pagina.
Modifiche alle API
- Abbiamo aggiunto
BoundingArc, una classe sperimentale che descrive la geometria di uno spazio per complicazioni sul bordo. È stato aggiunto aComplicationSlote collegato aComplicationSlotStateeWatchFaceMetadataClient. (I61a40) - Abbiamo aggiunto la possibilità di ereditare le impostazioni in XML
UserStyleSetting. Ti consente di ridurre la verbosità e condividere un'impostazione tra i quadranti. (Ief841) - Abbiamo aggiunto due nuovi tipi sperimentali di
ComplicationData:ListComplicationDataeProtoLayoutComplicationData. Al momento non è disponibile il supporto per il rendering di nessuno di questi tipi e WearOS non li riconosce se aggiunti a un file manifestComplicationDataSource's. (I1811c)
Correzioni di bug
- Correzione della serializzazione del tipo
TimeLineEntry. Non serializzavamo il tipoTimeLineEntry, il che significava cheTimeLineEntriesmemorizzati nella cache di tipo NoData venivano interpretati erroneamente come se avessero il tipo di complicazione principale, il che portava a NPE quando si accedeva a campi obbligatori inesistenti. (55ffdf5) - È stato corretto un bug per cui i campi della sequenza temporale
setComplicationDatavenivano eliminati(fb392f5) - Correzione di un bug per cui molto raramente
runBlockingWithTracingcausava un errore NPE(12ca62e) - Corregge un bug per cui a volte viene visualizzato
ClassNotFoundException: android.support.wearable.complications.ComplicationTextquando si riceve una complicazione.(217942d9) - Corregge un bug in
GlesRenderer.backgroundThreadInitInternalin cui veniva chiamatoonBackgroundThreadGlContextCreatedsolo se veniva chiamatoEGL14.eglCreateContext. È stato corretto un altro bug che causava un problema visivo nello screenshot dovuto averticalFlip.(c674ad2) - Correzione del controllo della versione XML di
WatchFaceService, che veniva caricata dal pacchetto sbagliato.(dfa06f3) - Il formato wire del segnaposto ora utilizza un bundle interno. Non vogliamo che i segnaposto interrompano i quadranti esistenti che potrebbero utilizzare l'oggetto a.s.w.c.ComplicationData interno nascosto. In precedenza, il formato wire di un dato
NoDataComplicationmemorizzava il segnaposto nei campi usuali (problematico perché i vecchi quadranti avrebbero visualizzato la stringa segnaposto, cosa non prevista). Ora, invece, utilizziamo un bundle interno per isolare completamente questo dato.(d5e7bd2)
Versione 1.1.0-beta01
20 aprile 2022
androidx.wear.watchface:watchface-*:1.1.0-beta01 è stato rilasciato. La versione 1.1.0-beta01 contiene questi commit.
Modifiche alle API
- Ora i metodi
WatchFaceMetadataClient(getUserStyleSchema,getComplicationSlotMetadataMap,getUserStyleFlavors) eHeadlessWatchFaceClient.getUserStyleFlavorsgenerano RuntimeException non controllata anzichéWatchFaceException. (I0718a) WatchFaceMetadataClient.WatchFaceExceptionè stato spostato fuori dal corso per consentirne il riutilizzo. (I4e869)
Correzioni di bug
WatchFaceMetadataClientnon si arresterà più in modo anomalo quando viene inviatoComplicationSlotBoundsparziale.(Iaafd)
Versione 1.1.0-alpha05
6 aprile 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05 è stato rilasciato. La versione 1.1.0-alpha05 contiene questi commit.
Nuove funzionalità
- Ora puoi sapere quale origine dati ha inviato un
ComplicationDataesaminandoComplicationData.dataSource. Alcuni quadranti potrebbero utilizzare queste informazioni per personalizzare la visualizzazione delle complicazioni. (I44a73)
Modifiche alle API
Renderer.CanvasRenderereRenderer.GlesRenderersono stati ritirati a favore diRenderer.CanvasRenderer2eRenderer.GlesRenderer2, che supportanoSharedAssets, passati ai metodi di rendering. Per l'interoperabilità Java abbiamo introdottoListenableCanvasRenderer2eListenableGlesRenderer2. (I31ffa)- Aggiunta della possibilità di definire
@WatchFaceFlavorsExperimental: un elenco preconfigurato di quadranti con stili (I04dd0) Renderer.sharedAssetsora è uno StateFlow e abbiamo rimossoRenderer.SharedAssetsFactory(I12ac5) inutilizzatoUserStyleSchema.userStyleSettingsnon è più deprecato (Iba7e3)- Abbiamo aggiunto
HeadlessWatchFaceClient.getUserStyleSchemaDigestHash, che consente aHeadlessWatchFaceClientdi evitare il sovraccarico relativamente basso del passaggio dello schema tramite AIDL prima di calcolare l'hash del digest. (I33597) - Abbiamo aggiunto
isUserStyleSchemaStaticaWatchFaceMetadataClient, che è vero se e solo se è possibile fare affidamento suUserStyleSchemaper non cambiare a meno che l'APK del quadrante non venga aggiornato. (I45a3f) - Abbiamo aggiunto
getDigestHashaUserStyleSchema, che calcola un hash digest dello schema. Può essere utilizzato per determinare in modo efficiente seUserStyleSchemaè cambiato. (I2063d) METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTEDrinominato inMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED(I9ba5d)UserStyleSetting.OnWatchEditorDataè stato rinominatoUserStyleSetting.WatchFaceEditorDatae contiene dati utilizzati esclusivamente dall'editor dei quadranti. (If3afb)
Versione 1.1.0-alpha04
9 marzo 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04 è stato rilasciato. La versione 1.1.0-alpha04 contiene questi commit.
Modifiche alle API
ComplicationDataaggiornati potrebbero non essere sempre disponibili (ad es. ComplicationData memorizzati nella cache scaduti), pertanto abbiamo estesoNoDataComplicationcon un segnaposto ComplicationData facoltativo e aggiuntoComplicationText.PLACEHOLDER,MonochromaticImage.PLACEHOLDER,SmallImage.PLACEHOLDER,PhotoImage.PLACEHOLDER, che possono essere utilizzati solo nel contesto di un segnapostoNoDataComplicationData. Se selezionati, questi segnaposto vengono visualizzati con caselle/archi grigi. (I6285d)- Abbiamo aggiunto
ComplicationData.getNextChangeInstant, che indica l'istante successivo all'istante di riferimento in cui qualsiasi campo della complicazione può cambiare. Questo valore viene utilizzato internamente per pianificare i frame per gli aggiornamenti delle complicazioni. Ad esempio, se un quadrante si aggiorna normalmente una volta al minuto, l'impostazione della complicazione del cronometro lo aggiornerà una volta al secondo. (I7ceb2) EditorSession.watchFaceIdora può essere utilizzato su tutti i livelli API. Inoltre, il suo valore sarà sempre coerente conWatchState.watchFaceInstanceId. (I323b9)- L'API
getPendingIntentForTouchEventnon è più necessaria perché il problema sottostante è stato risolto nel framework, quindi tutte le API correlate sono state rimosse. I quadranti non devono fare nulla di speciale per l'attivazione diPendingIntents, anche se il tasto Home è stato premuto di recente. (I1f2e8) - Abbiamo aggiunto
RendererParameters.isForScreenShot, che sarà true se il rendering è per uno screenshot. Alcuni quadranti con animazioni devono conoscere questa informazione per apportare modifiche e garantire i migliori risultati. (I96d99) - Abbiamo aggiunto
WatchFaceExceptionReasonaWatchFaceExceptionper fornire un contesto di ciò che non ha funzionato. (I01d15) ComplicationDataSourceService.onImmediateComplicationRequestè stato rimosso, mentre è stato aggiuntoComplicationRequest.immediateResponseRequiredper indicare che il fornitore deve rispondere rapidamente (idealmente in meno di 100 ms). Tieni presente che questa funzionalità è protetta dall'autorizzazione privilegiatacom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE. (Ie6b23)- Aggiornamento della nullabilità in core e appcompat in modo che corrisponda a Tiramisu DP2 (I0cbb7)
Correzioni di bug
- Ora l'app quadrante si arresta in modo anomalo con un'eccezione se la convalida dello schema non riesce (Ia400f)
Versione 1.1.0-alpha03
9 febbraio 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03 è stato rilasciato. La versione 1.1.0-alpha03 contiene questi commit.
Modifiche alle API
- Abbiamo aggiunto il supporto sperimentale per gli schemi di stile gerarchici. Abbiamo aggiunto una nuova proprietà a
androidx.wear.watchface.style.UserStyleSetting.Option, childSettings, che inizialmente viene utilizzata solo daListOption. In questo modo è possibile descrivere una gerarchia di stili da utilizzare nelle UI dell'editor. Lo UserStyle sottostante rimane invariato ed è ancora unMap<String, ByteArray>. (Iaf6f4) - Abbiamo aggiunto
WatchFace.OverlayStyle, che consente al quadrante di configurare il rendering dell'overlay di stato del sistema. (I8520d) - Abbiamo introdotto
clearWithBackgroundTintBeforeRenderingHighlightLayerun nuovo parametro del costruttore facoltativo perCanvasRenderer(il valore predefinito è false). Se impostato su true, il canvas verrà cancellato con il colore della tinta dello sfondo. (Ie01e5) - Aggiunta della chiave dei metadati
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDche consente alle origini dati delle complicazioni di indicare che possono fornire un valore predefinito senza alcuna configurazione (Icc0d4) - Quando si modifica un quadrante orologio, è comune che siano presenti sia un'istanza interattiva che una headless. Per risparmiare memoria, abbiamo introdotto
Renderer.SharedAssets, che consente a un renderer del quadrante di condividere dati immutabili (ad es. texture e shader) tra le istanze.GlesRenderer.setEglConfigeGlesRenderer.setEglDisplaysono deprecati, non è mai stato previsto che fossero impostabili e farlo avrebbe portato a un comportamento indefinito. (I0d9e7) - Abbiamo aggiunto
setNameResourceIdesetScreenReaderNameResourceId(che fanno riferimento alle risorse stringa) aComplicationSlot.Buildere ai getter corrispondenti inandroidx.wear.watchface.client.ComplicationSlotState. In questo modo, il sistema può recuperare i nomi di ComplicationSlots da utilizzare negli editor e negli screen reader. (If6c6a) WatchfaceMetadataClient.getUserStyleSchemaegetComplicationSlotMetadataMapora generanoWatchFaceExceptionanzichéRemoteException. (I86f11)onSynchronousComplicationRequeste le funzioni correlate inComplicationDataSourceServicesono state rinominate inonImmediateComplicationRequeste così via. (I87ba0)- Gli editor quadranti hanno molto meno spazio sullo schermo rispetto agli editor complementari, pertanto è opportuno supportare icone diverse per gli editor quadranti. Questa patch aggiunge
OnWatchEditorData(attualmente contenente solo un'icona) a tutte le UserStyleSettings e, se opportuno, alle relative classi Option. (If1886) - Abbiamo aggiunto
@JvmOverloadsal costruttore di ListenableGlesRenderer per una migliore interoperabilità Java. (I2974a)
Correzioni di bug
- Il costruttore di
ListenableGlesRendererora è contrassegnato correttamente come@Throws(GlesException::class)ed è ora possibile estendere questa classe in Java. (Iac6d0) - Correzione del bug relativo a tapAction di
PhotoImageComplicationDatanon gestito correttamente (I1cc30)
Versione 1.1.0-alpha02
12 gennaio 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02 è stato rilasciato. La versione 1.1.0-alpha02 contiene questi commit.
Nuove funzionalità
- Per facilitare il debug e il test,
ComplicationDatae le relative sottoclassi ora hanno metodi hashcode, equals e toString sottoposti a override, il che li rende più facili da usare.
Modifiche alle API
- I metodi
WatchfaceMetadataClientgenerano di nuovoRemoteExceptions, se necessario, consentendo al codice client di rilevare più facilmente gli errori del quadrante. (I78785) ComplicationDatae le sottoclassi ora hanno hashcode, equals e toString. (I24bc6)
Versione 1.1.0-alpha01
15 dicembre 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01 è stato rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
Ora è possibile definire
UserStyleSchemaeComplicationSlotsin XML. Ciò semplifica la creazione dei quadranti. Inoltre, le queryWatchFaceMetadataClientsono più veloci perché non devono essere associate al servizio per ottenere i metadati.WatchFaceMetadataClienteListenableWatchFaceMetadataClientnon sono più sperimentali e faranno parte dell'API stabile. Il sistema potrà supportare facoltativamente più istanze di un quadrante, ognuna con opzioni di stile distinte definite dall'utente. Questi quadranti saranno visibili nel selettore di quadranti. Per attivare questa funzionalità, un quadrante deve includere il seguente tag di metadati nel manifest.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />Alcuni quadranti hanno uno stato che non viene acquisito in
UserStyle. Per supportare questo e più istanze, l'ID istanza del quadrante è ora disponibile tramiteWatchState.watchFaceInstanceId.ComplicationDataora viene memorizzato nella cache per consentire la visualizzazione immediata delle complicazioni al caricamento. A volteComplicationDataviene memorizzato nella cache dal sistema e a volte viene serializzato dalle librerie dei quadranti. Quando viene serializzata, qualsiasi tapAction associata andrà persa.In questo caso,ComplicationData.tapActionLostDueToSerializationrestituiràtruee il quadrante dovrebbe visualizzare la complicazione in modo diverso (ad es. in grigio o semitrasparente) per segnalare che non è possibile toccarla. Il sistema invieràComplicationDataaggiornati con untapActionil prima possibile.Alcuni
ComplicationDatanon devono essere memorizzati nella cache per molto tempo. Per supportare questa funzionalità, abbiamo aggiunto una funzionalità più generaleComplicationDataTimeline. Può essere utilizzato per fornire una sequenza diComplicationDatacon limiti di tempo da visualizzare sul quadrante, che può essere memorizzato nella cache e aggiornato automaticamente. Ad esempio, le previsioni meteo di oggi in vari momenti o più eventi in programma nel calendario.ComplicationRequestListenerè stato esteso con un nuovo metodoonComplicationDataTimelineche puoi utilizzare per restituire questi dati.DefaultComplicationDataSourcePolicyè stato esteso per consentirti di specificareComplicationTypeper le origini dati principali e secondarie.Abbiamo aggiunto il supporto per i fornitori di complicazioni sincrone in cui la complicazione viene aggiornata con una frequenza superiore al normale, fino a una volta al secondo quando il quadrante è visibile e non in modalità Ambient. Nota:i fornitori di complicazioni sincrone potrebbero avere un utilizzo limitato a causa di problemi di pressione della memoria.
È probabile che le modifiche
PendingIntentTapListenervengano ripristinate perché abbiamo risolto il problema sottostante (non è possibile avviare attività per 5 secondi dopo aver premuto il tasto Home) nel framework.
Modifiche alle API
ComplicationData.isCachedè stato modificato intapActionLostDueToSerialization, che è più utile per determinare se lo spazio della complicazione deve essere visualizzato in modo diverso per segnalare che non può essere toccato. (I6de2f)- Aggiunta di
ComplicationDataTimelineawear-complication-data-source. Può essere utilizzato per fornire una sequenza diComplicationDatacon limiti di tempo da visualizzare sul quadrante, che può essere memorizzato nella cache e aggiornato automaticamente. Ad esempio, le previsioni meteo di oggi in vari momenti o più eventi in programma nel calendario.ComplicationRequestListenerè stato esteso con un nuovo metodoonComplicationDataTimelineche puoi utilizzare per restituire questi dati. È disponibile un nuovo wrapper KotlinSuspendingTimelineComplicationDataSourceServiceper sospendere i servizi di origine dati. (Idecdc) - Aggiunta di
PendingIntentTapListenereWatchFaceControlClient.getPendingIntentForTouchEvent. In questo modo, i quadranti che devono avviare intent in risposta ai tocchi possono aggirare un problema per cui il framework blocca l'avvio di nuove attività per 5 secondi dopo aver premuto il pulsante Home. (I98074) - È stata introdotta una cache
ComplicationDataper quadrante. Lo scopo è consentire al quadrante di visualizzare i valori dei dati dell'ultima complicazione nota al caricamento, finché il sistema non ha avuto la possibilità di aggiornarli. È disponibile un nuovo metodo APIWatchFaceControlClient.hasComplicationCachedestinato agli OEM. Ciò potrebbe influire sulla strategia del sistema per l'invio di complicazioni a un quadrante. Inoltre,ComplicationDataha una proprietàisCacheded è consigliabile eseguire il rendering delle complicazioni memorizzate nella cache in modo diverso perchétapActionnon può essere memorizzato nella cache e sarànullin una complicazione memorizzata nella cache. (I404b0) - L'ID istanza del quadrante è ora disponibile tramite
WatchState.watchFaceInstanceId. La maggior parte dei quadranti non dovrà utilizzare questa chiave, ma se esiste uno stato per quadrante che non è memorizzato nello schema, questa è la chiave da utilizzare per identificare l'istanza del quadrante. Per contribuire a questo, ora puoi fornire un ID quando chiamiWatchFaceControlClient.createHeadlessWatchFaceClient. (I1ff98) DefaultComplicationDataSourcePolicyesteso con la possibilità di impostareComplicationTypespredefinito per il fornitore primario, secondario e per il fornitore di sistema di riserva.ComplicationSlot.defaultDataSourceTypeè ora deprecato. (If0ce3)ComplicationSlot.configExtrasora è modificabile e può essere aggiornato prima di chiamareEditorSession.openComplicationDataSourceChooser(). (I6f852)- Aggiunta di
WatchFace.setComplicationDeniedDialogIntentesetComplicationRationaleDialogIntent. Questi intent vengono avviati per mostrare una finestra di dialogo con la motivazione prima di richiedere le autorizzazioni per la complicazione e un'altra finestra di dialogo che spiega che l'autorizzazione per la complicazione è necessaria quando si tenta di modificare una complicazione quando le autorizzazioni sono state negate (il selettore del fornitore non si aprirà, quindi la finestra di dialogo è necessaria). (I3a29c) - Ora è possibile definire
UserStyleSchemaeComplicationSlotsin XML. Ciò semplifica la creazione dei quadranti e velocizza le queryWatchFaceMetadataClient, in quanto non è necessario eseguire il binding al servizio per ottenere i metadati. (I85bfa) - È stato aggiunto
InteractiveWatchFaceClient.supportsPendingIntentForTouchEventin modo che un client possa determinare se un quadrante supportagetPendingIntentForTouchEvent. (I0b917) WatchFaceMetadataClienteListenableWatchFaceMetadataClientnon sono più sperimentali. Possono essere utilizzati per ottenere in modo efficiente i metadati del quadrante, se possibile senza aprire un binder per il quadrante. (Ibb827)- È stato aggiunto il supporto per i fornitori di complicazioni sincrone in cui la complicazione viene aggiornata con una frequenza superiore al normale, fino a una volta al secondo quando il quadrante è visibile e non in modalità Ambient. Per utilizzare questa funzionalità, il fornitore deve includere un nuovo tag di metadati
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDSnel manifest e sostituireonSynchronousComplicationRequest. A seconda della natura dell'origine dati, potrebbe anche essere necessario eseguire l'override dionStartSynchronousComplicationRequestseonStopInteractiveComplicationRequestsper ricevere notifiche quando la complicazione entra ed esce dalla modalità interattiva. (I8fe9d)
Versione 1.0
Versione 1.0.1
9 febbraio 2022
androidx.wear.watchface:watchface-*:1.0.1 è stato rilasciato. La versione 1.0.1 contiene questi commit.
Correzioni di bug
- Correzione del bug relativo a tapAction di
PhotoImageComplicationDatanon gestito correttamente (I1cc30)
Versione 1.0.0
1° dicembre 2021
androidx.wear.watchface:watchface-*:1.0.0 è stato rilasciato. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 1.0.0
Il pacchetto androidx.wear.watchface è la nuova libreria consigliata per lo sviluppo di quadranti per Wear OS. Offre una serie di nuove funzionalità rispetto alla precedente libreria di supporto per indossabili.
- La personalizzazione da parte dell'utente (ad es. per modificare la tavolozza dei colori, lo stile delle lancette dell'orologio, l'aspetto degli indicatori delle ore e così via) è supportata direttamente dalla libreria (vedi
androidx.wear.watchface.style). Ora è molto più facile sviluppare un editor di quadranti orologio utilizzando androidx.wear.watchface.editor e il quadrante orologio può essere modificato dall'app complementare di sistema senza che tu debba scrivere codice aggiuntivo. - Best practice integrate. La raccolta ha generato automaticamente etichette di contenuti per screen reader per le complicazioni (puoi anche aggiungere le tue), mentre il framerate si riduce automaticamente quando la batteria è scarica e non in carica per migliorare la durata della batteria.
- Per sviluppare un quadrante, soprattutto per le complicazioni in cui gran parte del boilerplate è stato spostato nella libreria, è necessario meno codice.
Correzioni di bug
- Correggi
EditorSession.userStyle.compareAndSet(I6f676) - Correggere i ritardi molto brevi del quadrante (Iffb97)
- Invia
InteractiveWatchFaceImpl.onDestroysul thread UI (I83340) - Risoluzione di diversi problemi relativi ai ricevitori di trasmissione (I7d25f)
Versione 1.0.0-rc01
3 novembre 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01 è stato rilasciato. La versione 1.0.0-rc01 contiene questi commit.
Correzioni di bug
Correggi dump() (chiamato da adb shell dumpsys) che è stato interrotto dalle migrazioni del flusso. (087cf9e)
Assicurati che l'ordine di writeDirectBootPrefs sia corretto. Vogliamo che writeDirectBootPrefs venga sempre eseguito dopo initStyleAndComplications, altrimenti rischiamo di ritardare l'inizializzazione del thread UI.(37650ac)
Assicurati che venga chiamato Renderer.onDestroy. Nello scenario in cui il renderer è stato creato, ma l'inizializzazione di WF non è stata completata e viene chiamato Engine.onDestroy, è necessario chiamare Renderer.onDestroy. (f9952dc)
Ottimizzazione/correzione di isBatteryLowAndNotCharging. Questa patch sposta la configurazione iniziale di isBatteryLowAndNotCharging in modo che possa essere eseguita in parallelo con createWatchFace. Inoltre, ora ascoltiamo ACTION_POWER_DISCONNECTED. (ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive deve essere false dopo la chiusura (ab9774e)
Versione 1.0.0-beta01
27 ottobre 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Versione 1.0.0-alpha24
13 ottobre 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha24 è stato rilasciato. La versione 1.0.0-alpha24 contiene questi commit.
Modifiche alle API
- Le classi nel pacchetto
androidx.wear.watchface.complicationssono state spostate in un nuovo progettowear:watchface:watchface-complications. Tieni presente che ciò significa che non puoi includere questa libreria e nessuna versione alpha precedente diwear:watchface:watchface-complications-dataperché riceverai errori relativi a classi duplicate. (I97195) - Renderer.dump è stato rinominato in Renderer.onDump ed è stato annotato con @UiThread. (I44845)
InteractiveWatchFaceClient.addWatchFaceReadyListenerè stato rinominato inaddOnWatchFaceReadyListenereremoveWatchFaceReadyListenerinremoveOnWatchFaceReadyListener. (I48fea)- EditorSession
getComplicationsPreviewDataegetComplicationsDataSourceInfonon sono più funzioni di sospensione, ma proprietàStateFlow<>il cui valore è inizialmente null. In ListenableEditorSessiongetListenableComplicationPreviewDataegetListenableComplicationsProviderInfosono stati rimossi a favore dei nuovi oggettiStateFlow<>della classe base. Se devi ascoltare le modifiche al codice Java, ti consigliamo di utilizzareandroidx.lifecycle.FlowLiveDataConversions.asLiveDataper la conversione inLiveData<>. (Ic5483)
Versione 1.0.0-alpha23
29 settembre 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23 è stato rilasciato. La versione 1.0.0-alpha23 contiene questi commit.
Nuove funzionalità
La raccolta di quadranti ora è un unico gruppo di raccolte, pertanto le raccolte sono state spostate e devi aggiornare le importazioni di Gradle nel seguente modo:
| Vecchio | Novità |
|---|---|
androidx.wear:wear-complications-data |
androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source |
androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface |
androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering |
androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client |
androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava |
androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data |
androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor |
androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava |
androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava |
androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style |
androidx.wear.watchface:watchface-style |
Modifiche alle API
- Esegui la migrazione delle raccolte separate
androidx.wearWatchface e Complicazioni nel gruppo di raccolteandroidx.wear.watchface. (b25f3c0) - È stato aggiunto EditorRequest.canWatchFaceSupportHeadlessEditing per consentire a un client di sapere se un editor di quadranti supporta la modifica headless. Tieni presente che si verificheranno alcuni falsi negativi perché il supporto è stato aggiunto in asop/1756809, ma restituirà il valore corretto per tutti i futuri quadranti. (ca55590)
- Il renderer ora ha un metodo dump() che può essere sostituito per aggiungere dati personalizzati alle informazioni generate dal servizio di attività dumpsys della shell ABD WatchFaceService. (95235f9)
- InteractiveWatchFaceClient.addWatchFaceReadyListener ora specifica prima l'esecutore. (563ac2f)
- StateFlowCompatHelper è stato rimosso. Al suo posto deve essere utilizzato asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- CurrentUserStyleRepository.userStyle non è più modificabile. (I44889)
- WatchFaceReadyListener è stato rinominato in OnWatchFaceReadyListener. (Ic12a9)
Correzioni di bug
- InteractiveInstanceManager.deleteInstance per chiamare onDestroy. Questa operazione è necessaria per garantire che InteractiveWatchFaceImpl venga sottoposto a garbage collection.(fce4af8, b/199485839)