Zifferblatt tragen

Apps für Wear OS by Google-Smartwatches erstellen
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
17. April 2024 1.2.1 1.3.0-alpha03

Abhängigkeiten deklarieren

Zum Hinzufügen einer Abhängigkeit von Wear musst du deinem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre Anwendung oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Groovig

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"
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.3

Version 1.3.0-alpha03

17. April 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha03 wird freigegeben. Version 1.3.0-alpha03 enthält diese Commits.

API-Änderungen

  • Wir haben EditorSession#setOverrideComplications hinzugefügt, das bei der Bearbeitung vorübergehend die ComplicationData der zugrunde liegenden Zifferblattinstanz festlegt. Wenn sich Zusatzfunktionen nur selten ändern, ist dies effizienter, als Überschreibungen über EditorSession#renderWatchFaceToBitmap zu übergeben. (I19384)

Fehlerkorrekturen

  • Bisher hat selectComplicationDataForInstant für alle Zeitachsen toApiComplicationData aufgerufen, was bedeutet, dass der nachfolgende === Referenz-Gleichheitstest immer fehlschlagen konnte. Das bedeutete, dass Zusatzfunktionen für jeden Frame neu geladen werden mussten, was zu einer schnellen Akkuentladung führt. (717406)

Version 1.3.0-alpha02

3. April 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha02 wird freigegeben. Version 1.3.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Wir verwenden jetzt die Referenzgleichheit, um den besten Wert und selectedData zu vergleichen, da der Gleichheitsoperator teuer ist. (446b00)

API-Änderungen

  • Wir haben eine dynamische API ohne Fallback für GoalProgressComplicationData hinzugefügt. (c33264)

Version 1.3.0-alpha01

7. Februar 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha01 wird freigegeben. Version 1.3.0-alpha01 enthält diese Commits.

Neue Funktionen

  • WatchFaceServices kann gleichzeitig initialisiert werden und sollte daher zustandslos sein. Um dies zu unterstützen, haben wir StatefulWatchFaceService hinzugefügt. Dabei wird ein von createExtra() erstelltes benutzerdefiniertes Extras an alle Überschreibungen übergeben, die während der Initialisierung aufgerufen werden.
  • GlesRenderer2 hat jetzt eine Konstruktorüberlastung, mit der Sie mit eglChooseConfig eine Liste von Attributen angeben können, die getestet werden sollen.

API-Änderungen

  • StatefulWatchFaceService unterstützt jetzt eine Überschreibung von getComplicationSlotInflationFactory, in die das von createExtra() erstellte benutzerdefinierte Extra übergeben wird. (I82d9f)
  • Einige Zifferblätter müssen bei der createUserStyleSchema erstellte Hilfsdaten mit den anderen Initialisierungsmethoden teilen. Da es keine bessere Alternative gibt, haben Entwickler WatchFaceServices in der Regel zustandsorientiert gemacht. Dies ist gefährlich, da mehrere Instanzen gleichzeitig erstellt werden können, was zu Fehlern führen kann. Um dieses Problem zu lösen, haben wir StatefulWatchFaceService und StatefulWatchFaceRuntimeService eingeführt. Dabei wird ein benutzerdefinierter Typ von createExtra() erstellt und als Parameter an die verschiedenen Erstellungsmethoden übergeben. (If8a99)
  • Wir haben „getUserStyleFlavors“ zu „InteractiveWatchFaceClient“ hinzugefügt, das hauptsächlich für OEMs interessant ist. (I0f5d8)
  • GlesRenderer2 hat jetzt eine Konstruktorüberlastung, mit der Sie mit eglChooseConfig eine Liste von Attributen angeben können, die getestet werden sollen. So können Sie beispielsweise zuerst eine Konfiguration mit Antialiasing ausprobieren und bei Bedarf auf eine Konfiguration zurückgreifen. (I1ba74)
  • Ab Android U wird Wear OS nun auch SystemDataSources.DATA_SOURCE_HEART_RATE unterstützt. Diese Zusatzfunktion unterstützt garantiert nur SHORT_TEXT-Zusatzfunktionen. Es wird aber empfohlen, dass die ComplicationSlot auch SMALL_IMAGE akzeptiert, da OEMs möglicherweise eine Verknüpfung zu ihrer Gesundheits-App anstelle des Live-Werts bereitstellen. (I34223)
  • Wir haben METADATA_KEY_CONFIG_RESTORE_SUPPORTED hinzugefügt. Ab Android U wird damit gesteuert, was passiert, wenn das System aus einer Sicherung für die Datenquelle für Zusatzfunktionen mit METADATA_KEY_DATA_SOURCE_CONFIG_ACTION wiederhergestellt wird. Standardmäßig geht das System davon aus, dass der Datenquellendienst für die Zusatzfunktionen die Sicherung aller Konfigurationsdaten unterstützt. Falls nicht, kann die Metadateneinstellung „METADATA_KEY_DATA_SOURCE_CONFIG_ACTION“ auf „false“ gesetzt werden. Dadurch wird der Zusatzinformationsslot als nicht konfiguriert markiert. (I6c505)

Version 1.2

Version 1.2.1

24. Januar 2024

androidx.wear.watchface:watchface-*:1.2.1 wird freigegeben. Version 1.2.1 enthält diese Commits.

Fehlerkorrekturen

  • Absturz auf der Samsung Galaxy Watch 4, 5 und 6 wurde behoben. 43f0b0.

Version 1.2.0

29. November 2023

androidx.wear.watchface:watchface-*:1.2.0 wird freigegeben. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Ab Android T werden jetzt einige neue Typen von Zusatzfunktionen unterstützt:
    • GoalProgressComplicationData entspricht RangedValueComplicationData, mit der Ausnahme, dass es sich um einen Fortschritt in Richtung eines Ziels handelt, bei dem min implizit null ist. Der Wert darf außerdem größer als targetValue sein.
    • WeightedElementsComplicationData, das aus einem Array von Elementen (Paaren aus Gewicht und Farbe) sowie optionalem Text, Titel und Bild besteht. Diese können als Tortendiagramm angezeigt werden, bei dem die Farben in Anbetracht des Kontextes aussagekräftig sein müssen, da in der Regel bei einer Zusatzfunktion kein Platz zum Rendern von Beschriftungen vorhanden ist.
  • Optionale ColorRanges werden jetzt in RangedValueComplicationData unterstützt. Üblicherweise werden Zusatzfunktionen in den vom Zifferblatt ausgewählten Farben gerendert. Manchmal ist das ComplicationDataSource jedoch am besten geeignet, um die Farben festzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot zu Blau für die Temperatur.
  • Fast alle ComplicationData-Typen unterstützen jetzt SmallImages.
  • Wir haben ComplicationDisplayPolicy hinzugefügt, bei dem DO_NOT_SHOW_WHEN_DEVICE_LOCKED ein kompatibles Zifferblatt anweist, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist.
  • Ab Android T können OEMs feststellen, ob eine Anfrage für Zusatzfunktionen von einem Zifferblatt aus der Liste stammt, die durch die android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest ihres Anbieters durch ComplicationRequest#isForSafeWatchFace definiert wird. Der Anbieter benötigt die Berechtigung com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um andere Daten als „TargetWatchFaceSafety.UNKNOWN“ zu erhalten.
  • UserStyleFlavors ist keine experimentelle Funktion.

Version 1.2.0-rc01

18. Oktober 2023

androidx.wear.watchface:watchface-*:1.2.0-rc01 wird freigegeben. Version 1.2.0-rc01 enthält diese Commits.

Version 1.2.0-beta02

6. September 2023

androidx.wear.watchface:watchface-*:1.2.0-beta02 wird freigegeben. Version 1.2.0-beta02 enthält diese Commits.

Neue Funktionen

  • SuspendingComplicationDataSourceService#onDestroy ist jetzt geöffnet. Bitte beachte, dass die Unterstützung für die standardmäßige Wetterkomplikation eines Systems entfernt wurde.

API-Änderungen

  • Änderungen an „Neue Datenquelle mit Zusatzinformationen für Wetterdaten freigeben“ rückgängig machen. (I6f335)

Version 1.2.0-beta01

23. August 2023

androidx.wear.watchface:watchface-*:1.2.0-beta01 wird freigegeben. Version 1.2.0-beta01 enthält diese Commits.

Neue Funktionen

  • Ab Android T unterstützt Wear OS jetzt eine standardmäßige Zusatzfunktion für das Wettersystem.

API-Änderungen

  • Standard-Wettersystem-Fallback für Zusatzfunktionen hinzufügen. (Ia0994)
  • Mit diesem Patch werden WatchFaceRuntimeService und WatchFaceControlClient.createWatchFaceRuntimeControlClient sowie Guava-Wrapper hinzugefügt. Diese unterstützen Zifferblattlaufzeiten, eine spezielle Art von Zifferblatt, das seine Definition aus einem anderen Paket lädt. Derzeit unterstützt WearOS nur die Laufzeit für das Android-Zifferblattformat. I2799f
  • Dieser Patch ist eine Folge von aosp/2636578, bei dem wir die int-Defs umbenennen, sodass Code, der von WatchFaceType, CanvasType, TapType oder ComplicationsSlotBoundsType abhängig ist, nicht geändert werden muss. (I4098b)
  • Die API-Dateien wurden aktualisiert, um die Kompatibilitätsunterdrückung zu erklären. (I8e87a, b/287516207)
  • Dieser Patch stellt WatchFaceType-Konstanten in WatchFaceTypes, CanvasType-Konstanten in CanvasTypes, TapType-Konstanten in TapTypes und ComplicationsSlotBoundsType-Konstanten in ComplicationsSlotBoundsType zur Verfügung. (I3b85a, b/288750666)
  • WatchFace.OverlayStyle wird sehr selten genutzt und wird von OEMs nicht gut unterstützt. Wir stellen die Funktion deshalb ein, mit der Absicht, sie später zu entfernen. (I7344a)

Version 1.2.0-alpha09

21. Juni 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha09 wird freigegeben. Version 1.2.0-alpha09 enthält diese Commits.

Neue Funktionen

  • RangedValueComplicationData.Builder akzeptiert jetzt DynamicFloat und eine neue DynamicComplicationText ist als abgeleitete Klasse von ComplicationText verfügbar. Beide können dynamische Ausdrücke sowie Plattformbindungen verwenden, die auf unterstützten Wear 4-Geräten in 1 Hz aktualisiert werden.

API-Änderungen

  • Dynamische Typen für tägliche Strecke, tägliche Kalorien und Etagen wurden hinzugefügt. Schlüssel für Quellen zur Plattformintegrität befinden sich jetzt unter PlatformHealthSources.Keys (Ib7637)
  • Implementiere PlatformDataProvider, um die Herzfrequenz und tägliche Schritte anzugeben. Die SensorGateway-Schnittstelle wurde aus der öffentlichen API entfernt. (I55b84)
  • Benennen Sie StateEntryValue in DynamicDataValue um und aktualisieren Sie die Status-APIs so, dass DynamicDataKey verwendet wird. (If1c01)
  • Füge AppDataKey für den Zugriff auf die App-Übertragung hinzu, PlatformDataKey für den Zugriff auf Plattformdaten und die Namespace-Unterstützung in StateStore. (I7985e)
  • enable/disablePlatformSource Methoden wurden aus DynamicTypeEvaluator entfernt. Der Aufrufer sollte für Updates verantwortlich sein. (I78c6d)
  • Begrenzung der Größe gebundener Datentypen zulassen. (Ie2966)

Version 1.2.0-alpha08

19. April 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha08 wird freigegeben. Version 1.2.0-alpha08 enthält diese Commits.

Neue Funktionen

  • Ab Android T können Anbieter von Zusatzfunktionen mit der privilegierten „com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES-Metadaten registrieren, die android.support.wearable.complications.SUPPORTED_TYPES für sichere Zifferblätter überschreiben. Das bedeutet, dass ein Anbieter von Zusatzfunktionen vertrauenswürdigen und nicht vertrauenswürdigen Zifferblättern unterschiedliche Typen zur Verfügung stellen kann.

API-Änderungen

  • Weitergabe der Klasse @Deprecated an Property (I882d1, b/271441831)
  • Name des Wertparameters für Enum.valueOf geändert (Ia9b89)
  • Mehr ausgelöste Ausnahmen von „valueOf“ (I818fe)
  • Wir haben renderWatchFaceToSurface zugunsten von createRemoteWatchFaceView entfernt. Dieses baut auf SurfaceControlViewHost auf und ermöglicht es dem Aufrufer, eine Ansicht vom Zifferblatt einzubetten, die gerendert wird, wenn der Kunde RemoteWatchFaceViewHost#renderWatchFace aufruft. (Ib311d)
  • renderWatchFaceToSurface wurde zu InteractiveWatchFaceClient, HeadlessWatchFaceClient und EditorSession hinzugefügt. In der Regel ist dies leistungsfähiger als das Rendern in einer Bitmap. (Ieacad)
  • ObservableStateStore wurde in StateStore umbenannt. (Ieb0e2)
  • Anstelle von Konstruktorargumenten wurde DynamicTypeEvaluator.Builder hinzugefügt, um weitere optionale Argumente zuzulassen, einschließlich ObservableStateStore, das jetzt standardmäßig einen leeren Speicher angibt. (I6f832)
  • Reihenfolge der Parameter in DynamicTypeEvaluator überarbeitet. (Ic1ba4)
  • Executor wurde den DynamicTypeEvaluator.bind-Methoden hinzugefügt. (I346ab)
  • Dem BoundDynamicType wurde die Methode startEvaluation hinzugefügt, um die Bewertung auszulösen, nachdem der dynamische Typ gebunden wurde. (I19908)
  • Anbieter von Zusatzfunktionen mit der privilegierten com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE können androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES-Metadaten registrieren, die android.support.wearable.complications.SUPPORTED_TYPES für sichere Zifferblätter überschreiben. (Id1c73)
  • CustomValueUserStyleSettings2 wurde in LargeCustomValueUserStyleSettings umbenannt. (Ic17ac)

Fehlerkorrekturen

  • DynamicTypeValueReceiver#onPreUpdate wurde entfernt. (I2dc35)

Version 1.2.0-alpha07

22. Februar 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha07 wird freigegeben. Version 1.2.0-alpha07 enthält diese Commits.

Neue Funktionen

  • Ab Android T können OEMs feststellen, ob eine Anfrage für Zusatzfunktionen von einem Zifferblatt aus der Liste stammt, die durch die android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest ihres Anbieters durch ComplicationRequest#isForSafeWatchFace definiert wird. Der Anbieter benötigt die Berechtigung com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um andere Daten als TargetWatchFaceSafety.UNKNOWN zu erhalten.

  • Ab Android T ist CustomValueUserStyleSetting2 für bis zu 12,5 KB verfügbar. Das vorherige Limit für CustomValueUserStyleSetting betrug 1 KB. Trotz der erhöhten Größenbeschränkungen sollten Entwickler von Zifferblatt-Entwicklern die Daten klein halten, da die Einstellungen während der Bearbeitung über Bluetooth gesendet werden und die Bluetooth-Bandbreite begrenzt ist.

API-Änderungen

  • Wir haben GlesRenderer und GlesRenderer2 den optionalen Parameter eglContextAttribList hinzugefügt, mit dem Sie die an EGL14.eglCreateContext übergebenen EGL14.EGL_CONTEXT_CLIENT_VERSION festlegen können. (I2a83e)
  • Wir haben die Zifferblatt-Bibliotheken zu androidx.core.util.Consumer und nicht zu java.util.function.Consumer migriert. (I273f5)
  • Weitere ausgelöste Ausnahmen von Zugriffsfunktionen für KT-Properties (Iff9d9)
  • Wir haben InteractiveWatchFaceClient.isComplicationDisplayPolicySupported hinzugefügt, damit der Client feststellen kann, ob er Unterstützung für alte Zifferblätter emulieren muss. (I24c89)
  • Wir haben entschieden, dass isForSafeWatchFace eine IntDef mit drei Bundesstaaten sein soll. (Ief2f7)
  • Für Android T haben wir ComplicationRequest.isForSafeWatchFace eingeführt, das für die Verwendung durch OEMs vorgesehen ist und com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE erfordert. Für Datenquellen im Systembild wird hier „true“ zurückgegeben, wenn sich das anfragende Zifferblatt in der Liste sicherer Zifferblätter befindet, die von der Datenquelle in ihrem Manifest angegeben werden. (I0cbb6)
  • Für Android T gibt es jetzt CustomValueUserStyleSetting2 mit einer Speichergröße von bis zu 12,5 KB. Das vorherige Limit für CustomValueUserStyleSetting betrug 1 KB. (I0b100)

Version 1.2.0-alpha06

25. Januar 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha06 wird freigegeben. Version 1.2.0-alpha06 enthält diese Commits.

Neue Funktionen

  • Wir arbeiten daran, Unterstützung für Plattformbindungen für Zusatzfunktionen hinzuzufügen. Diese ist noch nicht einsatzbereit. Wir halten Sie aber auf dem Laufenden.
  • XML ComplicationSlot-Unterstützung für die neuen Zusatzfunktionen GOAL_PROGRESS und WEIGHTED_ELEMENTS wurde hinzugefügt.

Fehlerkorrekturen

  • Ein Leck wurde behoben, bei dem der Zifferblatt-Editor auf Samsung-Geräten nicht korrekt veröffentlicht wurde. (3b5987)
  • Es wurde ein Fehler behoben, bei dem Zusatzfunktionen beim Wechsel zwischen einem Zifferblatt mit mehreren Favoriten manchmal nicht richtig angezeigt wurden. (b38ece)
  • Es wurde ein Serialisierungsfehler mit „perOptionScreenReaderNames“ behoben, der zu Abstürzen bei Zifferblatt führte. e9f466:

Version 1.2.0-alpha05

7. Dezember 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha05 wird freigegeben. Version 1.2.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Vor einiger Zeit haben wir die hierarchischen UserStyleSettings unterstützt. Ab Android T ist es jetzt möglich, mehr als ein ComplicationSlotsUserStyleSetting in einer Hierarchie zu verwenden. Basierend auf der Stilauswahl des Nutzers ist nur eine ComplicationSlotsUserStyleSetting aktiv.

  • Wir verbessern die Screenreader-Unterstützung für ListOption und ComplicationSlotsOption, indem wir das Feld screenReaderName hinzufügen. Vor Android T wird dieses Feld von Companion-Editoren ignoriert.

API-Änderungen

  • Wir haben ListOption und ComplicationSlotsOption ein neues optionales Feld „screenReaderName“ zur Verwendung durch Editoren hinzugefügt. Es wird von Companion-Editoren auf Geräten vor Android T ignoriert. (I75326)
  • Ab Android T werden jetzt mehrere ComplicationSlotsUserStyleSettings in einer Stilhierarchie unterstützt, solange nur eine von ihnen gleichzeitig aktiv sein kann. Wir haben UserStyleSchema eine Dienstprogrammfunktion (findComplicationSlotsOptionForUserStyle) hinzugefügt, mit der sich die aktive ComplicationSlotsOption finden lässt, falls vorhanden. (Ic2b06)
  • RangedValuesTypes wurden in das Companion-Objekt von RangedValueComplicationData abgerufen und in TYPE_UNDEFINED, TYPE_RATING umbenannt. Es wurde eine neue TYPE_PERCENTAGE hinzugefügt. (I55d02)
  • Wir haben den experimentellen Parameter DynamicFloat in FloatExpression umbenannt und ihn als @hide gekennzeichnet. (Idf4f1)
  • Anmerkung @JvmDefaultWithCompatibility hinzufügen (I8f206)

Version 1.2.0-alpha04

9. November 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha04 wird freigegeben. Version 1.2.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Für Android T unterstützen wir zwei neue Zusatzfunktionen: GoalProgressComplicationData und WeightedElementsComplicationData.
  • GoalProgressComplicationData“ ist ähnlich wie „RangedValueComplicationData“, sein Wert darf jedoch über das Ziel hinausgehen (bei RangedValueComplicationData wird der Wert auf den Bereich [min .. max] begrenzt), was Auswirkungen auf das visuelle Design hat, das möglicherweise nicht für alle Zifferblätter geeignet ist.
  • GoalProgressComplicationData unterstützt Kreisdiagramme und ähnliche Aufschlüsselungen einfacher Daten.
  • ColorRamps wurde in RangedValueComplicationData optional unterstützt.
  • Für Android T haben wir ComplicationPersistencePolicy und setCachePolicy zu ComplicationData hinzugefügt. Damit können Anbieter derzeit festlegen, ob eine Zusatzfunktion beibehalten wird oder nicht, z. B. ob sie nach einem Neustart im Cache gespeichert wird. Bei den meisten Komplikationen ist keine Cache-Steuerung erforderlich. In seltenen Fällen mit veralteten Daten, die häufig aktualisiert werden (z. B. bei Gesundheitsdaten), lassen sich damit aber nicht so viele Probleme beheben. Außerdem haben wir ComplicationDisplayPolicy hinzugefügt, bei dem DO_NOT_SHOW_WHEN_DEVICE_LOCKED ein kompatibles Zifferblatt anweist, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. (Ic9574)

API-Änderungen

  • GoalProgressComplicationData, WeightedElementsComplicationData und ColorRamp sind keine experimentellen Funktionen mehr. (Ica9e2)
  • ComplicationPersistencePolicy und ComplicationDisplayPolicy sind jetzt korrekt als T APIs gekennzeichnet. (I31d88)
  • Der verworfene Konstruktor ComplicationSlotOverlay verfügt jetzt über DeprecationLevel.WARNING, sodass er noch einmal aus Java aufgerufen werden kann. (Ib308c)
  • Wir haben einige Probleme mit der Java-Kompatibilität mit ComplicationRequestListener, CanvasComplication, ComplicationTapFilter und InteractiveWatchFaceClient behoben, indem wir sie mit @JvmDefaultWithCompatibility (Id94fc) annotiert haben.
  • Die experimentellen ProtoLayoutComplicationData und ListComplicationData wurden entfernt. Die Geschichte der Entwicklerinnen und Entwickler war unklar. Wir werden sie in Zukunft noch einmal aufgreifen. (I9df05)
  • Wir haben ValueType wieder zu RangedValueComplicationData hinzugefügt. WeightedElementsComplicationData unterstützt jetzt eine Hintergrundfarbe. DiscreteRangedValueComplicationData wurde entfernt, da seine Funktionalität Teil von WeightedElementsComplicationData ist. (I6446c)

Fehlerkorrekturen

  • Fügen Sie isForScreenShot in den Gleichheits- und Hash-Code ein. Achten Sie darauf, dass onRenderParametersChanged einen korrekten isForScreenshot-Wert erhält (I04a41)
  • Datenlecks von WatchFaceControlService bei monitorlosen Clients wurden behoben. (e90e00)

Version 1.2.0-alpha03

5. Oktober 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha03 wird freigegeben. Version 1.2.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Keine neuen Funktionen, aber wir haben einige Fehler im Zifferblatt-Editor behoben.

API-Änderungen

  • UserStyleSchema.userStyleSettings wurde eingestellt, da rootUserStyleSettings nicht mehr experimentell ist (Ie96e3)
  • rootUserStyleSettings aus der experimentellen Phase entfernen (I8d6b3)
  • WatchFaceColors wurde als experimentell gekennzeichnet, da es nicht von allen Systemen unterstützt wird (I6d75d).
  • Geben Sie DisconnectReasons in der öffentlichen API frei, damit es mit IntDef funktioniert. (I791f8)

Fehlerkorrekturen

  • Falls SysUI abgebrochen wird, schließe alle geöffneten Editoren im Uhreneditor. Wenn SysUI abgebrochen und der Editor für das Zifferblatt nicht geschlossen wird, kann das Zifferblatt inkonsistent sein, da das System SysUI benötigt, um Änderungen am Nutzerstil beizubehalten.(ba762a
  • Ein Speicherleck in ComplicationDataSourceInfoRetriever wurde behoben, bei dem eine Kohorten-Koroutinen-Fortsetzung als GG-Stamm fungieren und die Editor-Aktivität beibehalten wurden.(33ee06)

Version 1.2.0-alpha02

21. September 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha02 wird freigegeben. Version 1.2.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Einige Zifferblätter haben eine Konfiguration außerhalb von UserStyle, die visuelle Auswirkungen hat (z.B. durch die Auswahl eines Hintergrundbilds). Wir haben Renderer.sendPreviewImageNeedsUpdateRequest hinzugefügt, mit dem das Zifferblatt ein aktualisiertes Vorschaubild anfordern kann. Hinweis: Hierfür ist ein entsprechendes Systemupdate erforderlich.

  • Außerdem haben wir eine API für Zifferblätter hinzugefügt, um deren Farben dem System anzuzeigen, das dann möglicherweise seine Farbpalette basierend auf dieser Auswahl auswählt. Hinweis: Dies wurde in einem Nachfolge-Patch in der Testphase.

  • Fast alle ComplicationData-Typen unterstützen jetzt SmallImages.

API-Änderungen

  • Der Hintergrundmanager kann sich manchmal von einer Suchmaschine trennen und eine neue erstellen. Wir haben ein DisconnectReason-int-def und eine erweiterte ClientDisconnectListener mit einer neuen Methode hinzugefügt, die eine DisconnectReason enthält, mit der der Listener die Trennung von Engines beobachten kann. (I45cce)
  • Dem Konstruktor ComplicationSlotOverlay (I157e8) wurden die beiden optionalen Parameter nameResourceId und screenReaderResourceId hinzugefügt.
  • Wir haben einen Guava-Wrapper für die neue Überlastung von getOrCreateInteractiveWatchFaceClient mit PreviewImageUpdateRequestedListener hinzugefügt. (Ic31f0)
  • Wir haben Renderer.sendPreviewImageNeedsUpdateRequest hinzugefügt, das nützlich für Zifferblätter ist, deren Zustand außerhalb der UserStyleSchema liegt, was sich auf ihr Aussehen auswirkt (z.B. ein Zifferblatt mit einem auswählbaren Hintergrundbild). Clientseitig haben wir PreviewImageUpdateRequestedListener als optionalen Parameter für getOrCreateInteractiveWatchFaceClient hinzugefügt, um solche Anfragen zu erfassen. (Iff44a)
  • Wir haben die API zum Freigeben von WatchFaceColors vereinfacht. Jetzt gibt es im Renderer eine einfache Eigenschaft namens watchFaceColors, die vom Zifferblatt festgelegt werden kann. Diese sollte bei Bedarf bei Bedarf aktualisiert werden, um eventuelle Stiländerungen zu berücksichtigen. Anstatt WallpaperManager zur Beobachtung von Farbänderungen zu verwenden, haben wir OnWatchFaceColorsListener zu InteractiveWatchFaceClient hinzugefügt. (I490bc)
  • Wir haben eine WatchFaceColors-Klasse hinzugefügt, die die drei auffälligsten Farben für das Zifferblatt enthält. Außerdem haben wir dem Renderer die offenen Methoden watchfaceColors und notifyWatchFaceColorsChanged hinzugefügt, mit denen das System die Farben des Zifferblatts über WallpaperManager.getWallpaperColors abrufen kann. (I3d611)
  • ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData (und die experimentellen Funktionen DiscreteRangedValueComplicationData, GoalProgressComplicationData und WeightedElementsComplicationData) unterstützen jetzt alle SmallImages. Wenn auf einem Zifferblatt eine Zusatzfunktion mit mehreren Farben gerendert wird, kann jetzt ein mehrfarbiges SmallImage verwendet werden, wo zuvor ein monochromatisches Bild erforderlich gewesen wäre. (I257df)
  • PreviewImageUpdateRequestedListener in Consumer<> umwandeln (Ia875d)
  • Den benutzerdefinierten Typ OnWatchfaceColorsListener für eine abstrakte Methode (Single Zusammenfassung Method, SAM) durch den generischen Java-SAM-Typ (Consumer) (I0c489) ersetzen
  • Die alten Methoden getOrCreateInteractiveWatchFaceClient und listenableGetOrCreateInteractiveWatchFaceClient, bei denen kein PreviewImageUpdateRequestedListener angegeben wird, werden nicht mehr unterstützt. (Iec502)

Fehlerkorrekturen

  • DisconnectReason.BINDER_DIED wurde in DisconnectReason.ENGINE_DIED umbenannt. (I4eb0e)

Version 1.2.0-alpha01

10. August 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha01 wird freigegeben. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Wir haben experimentelle Unterstützung für verschiedene neue Formate für Zusatzfunktionen hinzugefügt. Dies ist ein Bereich der aktiven Entwicklung. Diese neuen Formate können ohne Vorankündigung geändert werden und derzeit gibt es keinen Renderer-Support von CanvasComplicationDrawable.
  • Außerdem haben wir den Steckplätzen für Zusatzfunktionen optionale Ränder hinzugefügt, damit kleine Zusatzfunktionen leichter angetippt werden können.

API-Änderungen

  • Die experimentelle BoundingArc-Klasse ist jetzt unveränderlich. (If624a)
  • Kleine Zusatzfunktionen können schwierig zu tippen sein. Um dies zu verhindern, werden jetzt Ränder unterstützt, die den antippbaren Bereich vergrößern, ohne das Rendering zu beeinträchtigen. Sofern nicht anders angegeben (entweder im Code oder über XML), haben ComplciationSlots Ränder von null. (I14089)
  • Die getComplicationSlotInflationFactory(CurrentUserStyleRepository)-Signatur wurde geändert, um eine Nicht-Null-Factory-Instanz zurückzugeben. Vor der Rückgabe von null ist ein Fehler aufgetreten. Dies dient lediglich dazu, den API-Vertrag verständlicher zu machen. (I0fcc0)
  • Wir haben der Methode WatchFaceService.getComplicationSlotInflationFactory das Argument currentUserStyleRepository hinzugefügt, um es mit createComplicationSlotsManager zu vereinheitlichen. (I2ddd2)
  • UserStyleFlavors sind keine experimentelle Funktion. (I69cdc)
  • Wir haben die experimentelle ValueType aus RangedValueComplicationData entfernt und stattdessen eine experimentelle DiscreteRangedValueComplicationData eingeführt, die RangedValueComplicationData mit Ausnahme von Ganzzahlbereich und -wert ähnelt. Wir haben außerdem eine experimentelle GoalProgressComplicationData-Funktion eingeführt, die RangedValueComplicationData ähnelt, mit der Ausnahme, dass sie für den Fortschritt in Richtung eines Ziels gedacht ist, bei dem min implizit null ist und der Wert größer als targetValue sein darf. Hinweis: Für alle RangedValue-Varianten muss mindestens ein monochromes Bild, ein Text oder ein Titel angegeben werden. (I9590c)
  • Wir haben boundsWithMargins aus ComplicationSlotState entfernt, da die Systemsoftware keinen Anwendungsfall dafür hat. (I42e26)
  • Wir haben eine experimentelle Unterstützung für WeightedElementsComplicationData hinzugefügt. Diese besteht aus einem Array von Elementen (Paaren aus Gewicht und Farbe) sowie optionalem Text, Titel und Bild. Diese können als Tortendiagramm angezeigt werden, bei dem die Farben in Anbetracht des Kontextes aussagekräftig sein müssen, da in der Regel bei einer Zusatzfunktion kein Platz zum Rendern von Beschriftungen vorhanden ist. (I87eea)
  • Mit dem experimentellen ColorRamps, das optional von RangedValueComplicationData und GoalProgressComplicationData verwendet wird, kannst du jetzt eine Sequenz von bis zu sieben Farben sowie eine Markierung festlegen, die angibt, ob die Farben gleichmäßig angepasst werden sollen oder ob gleich große Farbstufen gerendert werden sollen. I9f5bf.
  • RangedValueComplicationData.drawSegmented wurde in valueType geändert. Dabei handelt es sich um eine Ganzzahl mit einer entsprechenden ValueType IntDef, die dem Bereichswert eine semantische Bedeutung verleiht und vom Renderer der Zusatzfunktionen zur Beeinflussung des Stils verwendet werden kann. (I0616b)
  • RangedValueComplicationData wurde experimenteller Support für optionale ColorRanges hinzugefügt. Üblicherweise werden Zusatzfunktionen in den vom Zifferblatt ausgewählten Farben gerendert. Manchmal ist das ComplicationDataSource jedoch am besten geeignet, um die Farben festzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot zu Blau für die Temperatur. (I5153a)
  • Wir haben einen experimentellen drawSegmented-Hinweis zu RangedValueComplicationData hinzugefügt. Damit werden Renderer angewiesen, den Indikator für den Bereichswert mit Segmenten zu zeichnen, wobei 1 Segment = 1 Einheit ist. (I7d7c1)

Fehlerkorrekturen

  • Es wurde die Möglichkeit hinzugefügt, ComplicationSlotBounds relativ zu einem vordefinierten Bildschirmkoordinatensystem zu definieren. (I0985d)

Version 1.1

Version 1.1.1

10. August 2022

androidx.wear.watchface:watchface-*:1.1.1 wird freigegeben. Version 1.1.1 enthält diese Commits.

  • Dies ist eine Version zur Fehlerbehebung und Nutzern der Version 1.1.0 wird dringend empfohlen, das Upgrade durchzuführen.

Fehlerkorrekturen

  • Die Initialisierung des Zifferblatts erfolgt asynchron. Wenn eine Zusatzfunktion empfangen wird, bevor das Zifferblatt fertig ist, wird sie der Liste pendingInitialComplications hinzugefügt und später angewendet. pendingInitialComplications wurde leider zu früh angewendet. Dadurch gab es bei der Initialisierung des Zifferblatts ein Zeitfenster, in dem Zusatzfunktionen weiterhin auf pendingInitialComplications hinzugefügt und ignoriert wurden. Dieser Fehler wurde nun behoben. Mit diesem Patch wird außerdem ein Fehler behoben, bei dem ComplicationRenderer fälschlicherweise versucht hat, Platzhalter asynchron zu laden, wodurch die Kompilierungsgrafik nicht aktualisiert wurde. Mit diesem Patch wird ein hoffentlich theoretischer Fehler behoben, bei dem mehrere pendingInitialComplications zusammengeführt werden müssen. (0d03ba3)

  • Potenziellen Deadlock in InteractiveInstanceManager behoben, bei dem getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance das Schloss länger als nötig gehalten hat. Normalerweise würden wir erwarten, dass engine.setUserStyle schnell ist, aber wenn das aus irgendeinem Grund nicht der Fall ist, könnte es zu einem Deadlock/ANR kommen. Mit diesem Patch wird unnötige Arbeit aus dem Schloss entfernt, wodurch die Gefahr eines Deadlocks aufgehoben werden kann.(5a2adca)

  • Beheben Sie mehrere Probleme, durch die WatchFaceService beibehalten wurden. Das WakeLock kann manchmal die WatchFaceService beibehalten, indem ein release()-Aufruf hinzugefügt wird, um dieses Problem zu beheben. Außerdem kann StateFlows WatchFaceService beibehalten und damit die zugrunde liegenden CoroutineScopes-Korrekturen aufheben (fd48138)

  • Fügen Sie awaitDeferredWatchFace* Zeitlimits hinzu und korrigieren Sie watchfaceOverlayStyle NullPointerException. Im Normalfall sollte dadurch keine Zeitüberschreitung vermieden werden, auch nach einer Neuinstallation und DirectBoot-Szenarien, in denen die CPU-Auslastung hoch ist. Wir haben auch eine NPE korrigiert, wenn getWatchfaceOverlayStyle nach close() aufgerufen wird (a4c3a5a).

Version 1.1.0

15. Juni 2022

androidx.wear.watchface:watchface-*:1.1.0 wird freigegeben. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

Verbesserte Bearbeitung:

  • Hierarchische Schemas werden jetzt unterstützt. Dadurch kann eine Hierarchie von Stilen von den Editor-UIs vorgegeben werden. Du kannst jetzt separate Symbole für die Verwendung in Zifferblatt- und Companion-Editoren angeben.
  • Es gibt eine optionale Unterstützung für mehrere Instanzen eines Zifferblatts. Jede Instanz hat eine eindeutige ID, die auf allen API-Oberflächen verfügbar ist.
  • Sie können jetzt für ComplicationSlots visuell lesbare Namen zur Verwendung in Editoren angeben.
  • Experimentelle Unterstützung für Stile „Geschmacksrichtungen“, eine kuratierte Auswahl von Stilen, die im zugehörigen Editor sichtbar ist.
  • Wenn zwei Instanzen des Zifferblatts geladen werden, können diese jetzt Ressourcen teilen, was Arbeitsspeicher spart
  • Wenn du im Editor für das Zifferblatt eine Zusatzfunktion auswählst, ist jetzt der aktuelle Anbieter vorausgewählt.

Verbesserte Zusatzfunktionen:

  • Sie können die ComplicationType jetzt für die primäre und sekundäre Datenquelle angeben, was Entwicklern mehr Flexibilität bei der Verwendung gibt.
  • Wir haben ComplicationDataTimeline hinzugefügt, das eine Abfolge von zeitgesteuerten Daten zur Verfügung stellt, die an das Zifferblatt gesendet, im Cache gespeichert und automatisch aktualisiert werden können. Zum Beispiel die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere bevorstehende Kalendertermine.
  • Der ComponentName des Zusatzfunktion ist Teil des ComplicationData.
  • Zusatzfunktionen werden jetzt im Cache gespeichert, um den Wechsel zwischen Zifferblättern zu erleichtern.

Weitere Änderungen:

  • UserStyleSchema und ComplicationSlots können jetzt in XML definiert werden. Das vereinfacht das Erstellen von Zifferblatt und ermöglicht schnellere Metadatenabfragen aus dem System.
  • Zifferblätter können jetzt die Farben beeinflussen, die zum Rendern des System-Overlays verwendet werden.

Version 1.1.0-rc01

18. Mai 2022

androidx.wear.watchface:watchface-*:1.1.0-rc01 wird freigegeben. Version 1.1.0-rc01 enthält diese Commits.

Neue Funktionen

  • Wir haben einige Verbesserungen bei der Nutzerfreundlichkeit der XML-Unterstützung für Zifferblatt-Dateien vorgenommen, um die Angabe von ComplicationSlotBounds und unterstützenden Referenzen zu vereinfachen. Es wird weiter mit der Edge-Zusatzfunktion „BoundingArc“ experimentiert und das Ganze in „drawHighlight“ durchgespielt, obwohl sie zur damaligen Zeit nicht empfohlen wird.

API-Änderungen

  • Wir haben eine experimentelle Überlastung von drawHighlight hinzugefügt, die einen BoundingArc-Parameter akzeptiert. (I705f8)
  • Die XML-Datei für das Zifferblatt unterstützt jetzt Ressourcenverweise. Damit können Sie dieselben Konstanten sowohl in XML als auch in Ihrem Code verwenden. (I3ef61)
  • Es wurde die Möglichkeit hinzugefügt, ComplicationSlotBounds in den Formularen center_x, center_y, size_x und size_y zu definieren. Jetzt ist es auch möglich, mithilfe von Ressourcenverweisen verschiedene Einheiten (d.h. dp) zu verwenden. (Iace98)

Fehlerkorrekturen

  • Problem mit runBlockingWithTracing beheben, bei dem Aufgaben im falschen Kontext ausgeführt wurden (4f595fe)
  • BaseEditorSession.close synchron machen. Das Problem bei asynchronen BaseEditorSession.close besteht darin, dass wir ComplicationDataSourceInfoRetriever zu spät freigeben, was zu einer Warnung im Logcat führt. Das war wahrscheinlich harmlos, aber Logcat-Spam lenkt ab und sollte vermieden werden.(35a5308)

Version 1.1.0-beta02

11. Mai 2022

androidx.wear.watchface:watchface-*:1.1.0-beta02 wird freigegeben. Version 1.1.0-beta02 enthält diese Commits.

Neue Funktionen

  • Wir haben experimentelle Unterstützung für neue ComplicationData-Typen hinzugefügt. Die Typen sind noch nicht einsatzbereit. Sie finden es hier jedoch.

API-Änderungen

  • Wir haben BoundingArc hinzugefügt, eine experimentelle Klasse, die die Geometrie eines Kantenkomplikationsslots beschreibt. Dies wurde „ComplicationSlot“ hinzugefügt und durch „ComplicationSlotState“ und „WatchFaceMetadataClient“ erweitert. (I61a40)
  • Wir haben die Möglichkeit hinzugefügt, Einstellungen in UserStyleSetting-XML zu übernehmen. Damit kannst du die Ausführlichkeit reduzieren und eine Einstellung für verschiedene Zifferblätter verwenden. (Ief841)
  • Es wurden zwei neue experimentelle Typen von ComplicationData hinzugefügt: ListComplicationData und ProtoLayoutComplicationData. Derzeit wird keiner dieser Typen das Rendering unterstützt. WearOS erkennt diese Typen derzeit nicht, wenn sie einem ComplicationDataSource's-Manifest hinzugefügt werden. (I1811c)

Fehlerkorrekturen

  • Die Serialisierung des Typs TimeLineEntry wurde korrigiert. Der Typ TimeLineEntry wurde nicht seriell ausgeführt, was bedeutete, dass im Cache gespeicherte TimeLineEntries vom Typ „NoData“ fälschlicherweise so interpretiert wurde, dass der Typ der übergeordneten Zusatzfunktion zu NPEs führte, wenn auf nicht vorhandene erforderliche Felder zugegriffen wurde. (55ffdf5)
  • Fehler behoben, bei dem setComplicationData Zeitachsenfelder gelöscht hat(fb392f5)
  • Es wurde ein Fehler behoben, bei dem runBlockingWithTracing sehr gelegentlich zu einer NPE geführt hat(12ca62e).
  • Es wurde ein Fehler behoben, bei dem manchmal ClassNotFoundException: android.support.wearable.complications.ComplicationText angezeigt wird, wenn eine Zusatzfunktion angezeigt wird (217942d9).
  • Es wurde ein Fehler in GlesRenderer.backgroundThreadInitInternal behoben, bei dem onBackgroundThreadGlContextCreated nur aufgerufen wurde, wenn EGL14.eglCreateContext aufgerufen wurde. Es wurde ein weiterer Fehler behoben, bei dem im Screenshot eine durch verticalFlip verursachte visuelle Störung aufgetreten ist (c674ad2).
  • Fehler bei der XML-Versionsprüfung in WatchFaceService beheben, da das Paket aus dem falschen Paket geladen wurde (dfa06f3)
  • Für das Platzhalterkabelformat wird jetzt ein inneres Bündel verwendet. Wir möchten nicht, dass Platzhalter vorhandene Zifferblätter beschädigen, die das versteckte innere a.s.w.c.ComplicationData verwenden. Früher speicherte das Kabelformat von NoDataComplication-Daten den Platzhalter in den üblichen Feldern (problematisch, da alte Zifferblätter den Platzhalterstring rendern konnten, was nicht beabsichtigt war). Stattdessen verwenden wir jetzt ein inneres Bundle, um dies vollständig zu isolieren.(d5e7bd2)

Version 1.1.0-beta01

20. April 2022

androidx.wear.watchface:watchface-*:1.1.0-beta01 wird freigegeben. Version 1.1.0-beta01 enthält diese Commits.

API-Änderungen

  • WatchFaceMetadataClient-Methoden (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) und HeadlessWatchFaceClient.getUserStyleFlavors lösen jetzt eine ungeprüfte RuntimeException anstelle von WatchFaceException aus. (I0718a)
  • WatchFaceMetadataClient.WatchFaceException wurde aus dem Kurs entfernt, um die Wiederverwendung zu ermöglichen. (I4e869)

Fehlerkorrekturen

  • WatchFaceMetadataClient stürzt nicht mehr ab, wenn Teil-ComplicationSlotBounds gesendet wird.(Iaafd)

Version 1.1.0-alpha05

6. April 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha05 wird freigegeben. Version 1.1.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Du kannst jetzt anhand von ComplicationData.dataSource feststellen, von welcher Datenquelle eine ComplicationData gesendet wurde. Einige Zifferblätter können dies verwenden, um die Anzeige der Zusatzfunktionen anzupassen. (I44a73)

API-Änderungen

  • Renderer.CanvasRenderer und Renderer.GlesRenderer wurden zugunsten von Renderer.CanvasRenderer2 und Renderer.GlesRenderer2 eingestellt. Diese unterstützen SharedAssets und werden an die Renderingmethoden übergeben. Für Java-Interoperabilität haben wir ListenableCanvasRenderer2 und ListenableGlesRenderer2 eingeführt. (I31ffa)
  • @WatchFaceFlavorsExperimental-Funktion zum Definieren von Geschmacksrichtungen hinzugefügt – vorkonfigurierte Liste der Zifferblätter mit Stilen (I04dd0)
  • Renderer.sharedAssets ist jetzt ein StateFlow und die nicht verwendete Renderer.SharedAssetsFactory (I12ac5) wurde entfernt.
  • UserStyleSchema.userStyleSettings wurde nicht mehr eingestellt (Iba7e3)
  • Wir haben HeadlessWatchFaceClient.getUserStyleSchemaDigestHash hinzugefügt. Damit kann ein HeadlessWatchFaceClient den relativ geringen Aufwand für die Übergabe des Schemas über AIDL vor dem Berechnen des Digest-Hashs vermeiden. (I33597)
  • Wir haben isUserStyleSchemaStatic zu WatchFaceMetadataClient hinzugefügt. Dies gilt nur, wenn sich die UserStyleSchema nur dann ändert, wenn das Zifferblatt-APK aktualisiert wird. (I45a3f)
  • Wir haben getDigestHash zu UserStyleSchema hinzugefügt, um einen Digest-Hash des Schemas zu berechnen. Damit lässt sich effizient feststellen, ob sich UserStyleSchema geändert hat. (I2063d)
  • METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED umbenannt in METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED (I9ba5d)
  • UserStyleSetting.OnWatchEditorData wurde in UserStyleSetting.WatchFaceEditorData umbenannt und enthält Daten, die nur vom Editor für das Zifferblatt verwendet werden. (If3afb)

Version 1.1.0-alpha04

9. März 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha04 wird freigegeben. Version 1.1.0-alpha04 enthält diese Commits.

API-Änderungen

  • ComplicationData ist möglicherweise nicht immer verfügbar (z. B. abgelaufene im Cache gespeicherte Zusatzdaten). Daher haben wir NoDataComplication um einen optionalen Platzhalter „ComplicationData“ erweitert und ComplicationText.PLACEHOLDER, MonochromaticImage.PLACEHOLDER, SmallImage.PLACEHOLDER, PhotoImage.PLACEHOLDER hinzugefügt, die nur im Kontext eines NoDataComplicationData-Platzhalters verwendet werden dürfen. Wenn diese Platzhalter ausgewählt sind, werden sie mit grauen Feldern/Bögen gerendert. (I6285d)
  • Wir haben ComplicationData.getNextChangeInstant hinzugefügt. Damit wird das nächste Instant nach dem Verweis-Instant angegeben, bei dem sich ein beliebiges Feld der Zusatzfunktion ändern kann. Dies wird intern verwendet, um Frames für Updates von Zusatzfunktionen zu planen. Wenn ein Zifferblatt beispielsweise normalerweise einmal pro Minute aktualisiert wird, wird es beim Einstellen der Zusatzfunktion „Stoppuhr“ einmal pro Sekunde aktualisiert. (I7ceb2)
  • EditorSession.watchFaceId kann jetzt auf allen API-Ebenen verwendet werden. Außerdem ist sein Wert jetzt immer mit WatchState.watchFaceInstanceId konsistent. (I323b9)
  • Die getPendingIntentForTouchEvent API ist nicht mehr erforderlich, da das zugrunde liegende Problem im Framework behoben wurde. Alle zugehörigen APIs wurden daher entfernt. Zifferblätter müssen nichts Besonderes tun, damit PendingIntents ausgelöst wird, auch wenn vor Kurzem die Startbildschirmtaste gedrückt wurde. (I1f2e8)
  • Wir haben RendererParameters.isForScreenShot hinzugefügt. Dieser Wert ist „true“, wenn das Rendering für einen Screenshot erfolgt. Einige Zifferblätter mit Animationen müssen dies wissen, damit sie die besten Ergebnisse erzielen können. (I96d99)
  • Wir haben „WatchFaceExceptionReason“ zu „WatchFaceException“ hinzugefügt, um den Fehler zu erklären. (I01d15)
  • ComplicationDataSourceService.onImmediateComplicationRequest wurde entfernt. Stattdessen wurde ComplicationRequest.immediateResponseRequired hinzugefügt, um zu signalisieren, dass der Dienstleister schnell reagieren muss (idealerweise in weniger als 100 ms). Beachten Sie, dass diese Funktion durch die privilegierte Berechtigung com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE geschützt ist. (Ie6b23)
  • Null-Zulässigkeit in Core und Appcompat für Tiramisu DP2 (I0cbb7) aktualisiert

Fehlerkorrekturen

  • Die Zifferblatt-App stürzt jetzt mit einer Ausnahme ab, wenn die Schemavalidierung fehlschlägt (Ia400f).

Version 1.1.0-alpha03

9. Februar 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha03 wird freigegeben. Version 1.1.0-alpha03 enthält diese Commits.

API-Änderungen

  • Wir haben experimentelle Unterstützung für hierarchische Stilschemas hinzugefügt. Wir haben androidx.wear.watchface.style.UserStyleSetting.Option die neue Eigenschaft „childSettings“ hinzugefügt, die anfangs nur von ListOption verwendet wird. Dadurch kann eine Hierarchie von Stilen zur Verwendung durch Editor-UIs beschrieben werden. Der zugrunde liegende UserStyle bleibt unverändert und ist weiterhin ein Map<String, ByteArray>. Iaf6f4
  • Wir haben WatchFace.OverlayStyle hinzugefügt, mit dem das Zifferblatt das Rendern des Systemstatus-Overlays konfigurieren kann. (I8520d)
  • Wir haben clearWithBackgroundTintBeforeRenderingHighlightLayer einen neuen optionalen Konstruktorparameter für CanvasRenderer eingeführt (der Standardwert ist „false“). Wird dieser Parameter auf „true“ gesetzt, wird der Canvas mit der Hintergrundfarbe gelöscht. (Ie01e5)
  • Es wurde ein androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED-Metadatenschlüssel hinzugefügt, mit dem Datenquellen für Zusatzfunktionen angeben können, dass sie einen Standardwert ohne Konfiguration angeben können (Icc0d4).
  • Es ist üblich, dass beim Bearbeiten eines Zifferblatts sowohl eine interaktive als auch eine monitorlose Instanz angezeigt wird. Um Arbeitsspeicher zu sparen, haben wir Renderer.SharedAssets eingeführt, mit dem ein Renderer für Zifferblatt unveränderliche Daten (z.B. Texturen und Shader) zwischen Instanzen teilen kann. GlesRenderer.setEglConfig und GlesRenderer.setEglDisplay wurden verworfen. Diese sollten nie festgelegt werden, was zu undefiniertem Verhalten geführt hätte. (I0d9e7)
  • Wir haben setNameResourceId und setScreenReaderNameResourceId (die auf Stringressourcen verweisen) zu ComplicationSlot.Builder und die entsprechenden Getter in androidx.wear.watchface.client.ComplicationSlotState hinzugefügt. Dadurch kann das System die Namen von ComplicationSlots abrufen, die in Editoren und Screenreadern verwendet werden können. (If6c6a)
  • WatchfaceMetadataClient.getUserStyleSchema und getComplicationSlotMetadataMap geben jetzt WatchFaceException statt RemoteException aus. (I86f11)
  • onSynchronousComplicationRequest und die zugehörigen Funktionen in ComplicationDataSourceService wurden in onImmediateComplicationRequest usw. umbenannt. (I87ba0)
  • Zifferblatt-Editoren haben viel weniger Platz auf dem Bildschirm als Companion-Editoren. Daher ist es sinnvoll, unterschiedliche Symbole für Zifferblatt-Editoren zu unterstützen. Mit diesem Patch wird OnWatchEditorData (aktuell nur ein Symbol) zu allen UserStyleSettings und gegebenenfalls ihren Optionsklassen hinzugefügt. (If1886)
  • Wir haben dem Konstruktor von ListenableGlesRenderer @JvmOverloads hinzugefügt, um die Java-Interoperabilität zu verbessern. (I2974a)

Fehlerkorrekturen

  • Der Konstruktor von ListenableGlesRenderer ist jetzt korrekt als @Throws(GlesException::class) markiert und es ist jetzt möglich, diese Klasse in Java zu erweitern. (Iac6d0)
  • Es wurde ein Fehler behoben, bei dem die TapAction PhotoImageComplicationData nicht richtig verarbeitet wurde (I1cc30).

Version 1.1.0-alpha02

12. Januar 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha02 wird freigegeben. Version 1.1.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Um das Debugging und das Testen zu erleichtern, haben ComplicationData und zugehörige Unterklassen jetzt überschriebene Hashcode-, Gleichheits- und toString-Methoden, wodurch die Arbeit mit ihnen einfacher wird.

API-Änderungen

  • WatchfaceMetadataClient-Methoden geben bei Bedarf wieder RemoteExceptions aus, sodass der Clientcode Fehler auf dem Zifferblatt leichter erkennen kann. (I78785)
  • ComplicationData und die Unterklassen verfügen jetzt über Hashcode, ist gleich und toString. (I24bc6)

Version 1.1.0-alpha01

15. Dezember 2021

androidx.wear.watchface:watchface-*:1.1.0-alpha01 wird freigegeben. Version 1.1.0-alpha01 enthält diese Commits.

Neue Funktionen

  • UserStyleSchema und ComplicationSlots können jetzt in XML definiert werden. Das vereinfacht das Erstellen des Zifferblatts. Außerdem sind WatchFaceMetadataClient-Abfragen schneller, da sie nicht an den Dienst gebunden werden müssen, um die Metadaten abzurufen. WatchFaceMetadataClient und ListenableWatchFaceMetadataClient befinden sich nicht mehr in der Testphase und werden Teil der stabilen API. Das System kann optional mehrere Instanzen eines Zifferblattes mit jeweils unterschiedlichen benutzerdefinierten Stiloptionen unterstützen. Diese werden in der Zifferblattauswahl angezeigt. Um diese Funktion zu aktivieren, muss ein Zifferblatt das folgende Metadaten-Tag in seinem Manifest enthalten.

        <meta-data
            android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED"
            android:value="true" />
    
  • Einige Zifferblätter haben einen Status, der nicht im UserStyle erfasst wird. Um dies und mehrere Instanzen zu unterstützen, ist die Instanz-ID des Zifferblatts jetzt über WatchState.watchFaceInstanceId verfügbar.

  • ComplicationData wird jetzt im Cache gespeichert, damit Zusatzfunktionen sofort nach dem Laden angezeigt werden können. Manchmal wird ComplicationData vom System im Arbeitsspeicher im Cache gespeichert, manchmal wird es von den Zifferblattbibliotheken serialisiert. Bei der Serialisierung geht die zugehörige „tapAction“ verloren. In diesem Fall gibt ComplicationData.tapActionLostDueToSerialization den Wert true zurück und das Zifferblatt sollte die Zusatzfunktion anders rendern (z. B. ausgegraut oder halbtransparent), um zu signalisieren, dass sie nicht angetippt werden kann. Das System sendet so schnell wie möglich aktualisierte ComplicationData mit einer tapAction.

  • Einige ComplicationData sollten nicht über längere Zeit im Cache gespeichert werden. Um dies zu unterstützen, haben wir eine allgemeinere Funktion hinzugefügt: ComplicationDataTimeline. Dies kann verwendet werden, um eine Abfolge von zeitgesteuerten ComplicationData bereitzustellen, die an das Zifferblatt gesendet werden, die dann automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere bevorstehende Kalendertermine. ComplicationRequestListener wurde mit der neuen Methode onComplicationDataTimeline erweitert, mit der Sie diese Daten zurückgeben können.

  • DefaultComplicationDataSourcePolicy wurde erweitert, sodass Sie die ComplicationType für die primäre und sekundäre Datenquelle angeben können.

  • Wir haben eine Unterstützung für Anbieter von synchronen Zusatzfunktionen hinzugefügt, bei denen die Zusatzfunktion häufiger als normal aktualisiert wird – bis zu einmal pro Sekunde, wenn das Zifferblatt gut sichtbar ist. Hinweis:Anbieter von synchronen Zusatzfunktionen können aufgrund von Bedenken hinsichtlich der Speicherauslastung nur begrenzt genutzt werden.

  • Die PendingIntentTapListener-Änderungen werden wahrscheinlich rückgängig gemacht, weil wir das zugrunde liegende Problem im Framework gelöst haben. Das Zifferblatt kann nach dem Drücken der Startbildschirmtaste fünf Sekunden lang keine Aktivitäten starten.

API-Änderungen

  • ComplicationData.isCached“ wurde zu „tapActionLostDueToSerialization“ geändert. Dies ist hilfreicher, wenn Sie bestimmen möchten, ob die Anzeigenfläche für die Zusatzfunktion anders gerendert werden soll, um zu signalisieren, dass sie nicht angetippt werden kann. (I6de2f)
  • ComplicationDataTimeline wurde zu wear-complication-data-source hinzugefügt. Dies kann verwendet werden, um eine Abfolge von zeitgesteuerten ComplicationData bereitzustellen, die an das Zifferblatt gesendet werden, die dann automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere bevorstehende Kalendertermine. ComplicationRequestListener wurde mit der neuen Methode onComplicationDataTimeline erweitert, mit der Sie diese Daten zurückgeben können. Es gibt einen neuen Kotlin-Wrapper SuspendingTimelineComplicationDataSourceService zum Anhalten von Datenquellendiensten. (Idecdc)
  • PendingIntentTapListener und WatchFaceControlClient.getPendingIntentForTouchEvent wurden hinzugefügt. Das kann dazu beitragen, dass Zifferblätter nach dem Tippen Intents starten müssen, um ein Problem zu umgehen, bei dem das Framework nach dem Drücken der Startbildschirmtaste 5 Sekunden lang neue Aktivitäten blockiert. (I98074)
  • Für jedes Zifferblatt wurde ein ComplicationData-Cache eingeführt. Dadurch kann auf dem Zifferblatt die Werte der letzten bekannten Zusatzfunktionen beim Laden angezeigt werden, bis das System diese aktualisieren konnte. Es gibt eine neue API-Methode WatchFaceControlClient.hasComplicationCache für OEMs. Dies kann die Strategie des Systems für das Senden von Zusatzfunktionen an ein Zifferblatt beeinflussen. Außerdem hat ComplicationData eine isCached-Eigenschaft. Es wird empfohlen, im Cache gespeicherte Zusatzfunktionen anders darzustellen, da die tapAction nicht im Cache gespeichert werden kann und in einer im Cache gespeicherten Zusatzfunktion als null gilt. (I404b0)
  • Die Instanz-ID des Zifferblatts ist jetzt über WatchState.watchFaceInstanceId verfügbar. Für die meisten Zifferblätter ist dies nicht erforderlich. Wenn jedoch ein Status für jedes Zifferblatt vorhanden ist, der nicht im Schema gespeichert ist, ist dies der Schlüssel, um die Zifferblattinstanz zu identifizieren. Dazu kannst du jetzt beim Aufrufen von WatchFaceControlClient.createHeadlessWatchFaceClient eine ID angeben. (I1ff98)
  • Erweiterter DefaultComplicationDataSourcePolicy mit der Möglichkeit, den standardmäßigen ComplicationTypes für den primären, sekundären und Fallback-Systemanbieter festzulegen. ComplicationSlot.defaultDataSourceType wurde eingestellt. (If0ce3)
  • ComplicationSlot.configExtras ist jetzt änderbar und kann vor dem Aufruf von EditorSession.openComplicationDataSourceChooser() aktualisiert werden. (I6f852)
  • WatchFace.setComplicationDeniedDialogIntent und setComplicationRationaleDialogIntent wurden hinzugefügt. Diese Intents werden gestartet, um ein Dialogfeld mit einer Begründung anzuzeigen, bevor Berechtigungen für die Zusatzfunktionen angefordert werden. In einem weiteren Dialogfeld wird erklärt, dass diese Berechtigung erforderlich ist, wenn eine Zusatzfunktion bearbeitet werden soll, wenn Berechtigungen verweigert wurden (die Anbieterauswahl wird nicht geöffnet, sodass das Dialogfeld erforderlich ist). (I3a29c)
  • UserStyleSchema und ComplicationSlots können jetzt in XML definiert werden. Dies vereinfacht das Erstellen von Zifferblatt und macht WatchFaceMetadataClient-Abfragen schneller, da sie nicht an den Dienst gebunden werden müssen, um die Metadaten abzurufen. (I85bfa)
  • InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent wurde hinzugefügt, damit ein Client feststellen kann, ob ein Zifferblatt getPendingIntentForTouchEvent unterstützt. (I0b917)
  • WatchFaceMetadataClient und ListenableWatchFaceMetadataClient sind keine experimentellen Funktionen mehr. Sie können verwendet werden, um möglichst effizient Metadaten für das Zifferblatt abzurufen, ohne dass ein Ordner am Zifferblatt geöffnet werden muss. (Ibb827)
  • Anbieter von synchronen Zusatzfunktionen werden jetzt unterstützt, sodass sie häufiger als normal aktualisiert werden – bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und ungewohnt ist. Um sie zu verwenden, muss der Anbieter ein neues androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS-Metadaten-Tag in sein Manifest aufnehmen und onSynchronousComplicationRequest überschreiben. Je nach Art der Datenquelle müssen unter Umständen auch onStartSynchronousComplicationRequests und onStopInteractiveComplicationRequests überschrieben werden, damit Sie benachrichtigt werden, wenn die Zusatzfunktion den interaktiven Modus startet oder beendet. (I8fe9d)

Version 1.0

Version 1.0.1

9. Februar 2022

androidx.wear.watchface:watchface-*:1.0.1 wird freigegeben. Version 1.0.1 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem die TapAction PhotoImageComplicationData nicht richtig verarbeitet wurde (I1cc30).

Version 1.0.0

1. Dezember 2021

androidx.wear.watchface:watchface-*:1.0.0 wird freigegeben. Version 1.0.0 enthält diese Commits.

Hauptfunktionen von Version 1.0.0

Das androidx.wear.watchface-Paket ist die neue empfohlene Bibliothek für die Entwicklung von Wear OS-Zifferblättern. Sie hat gegenüber der alten Wearable-Supportbibliothek einige neue Funktionen.

  • Nutzerstile (z. B. Farbpalette, Stil der Uhrzeiger usw.) werden direkt von der Bibliothek unterstützt (siehe androidx.wear.watchface.style). Es ist jetzt viel einfacher, mit androidx.wear.watchface.editor einen Editor für das Zifferblatt zu entwickeln und das Zifferblatt über die System-Companion-App bearbeiten zu können, ohne dass du einen zusätzlichen Code schreiben musst.
  • Best Practices sind integriert. Die Bibliothek generiert Screenreader-Inhaltslabels für Zusatzfunktionen automatisch (Sie können auch eigene hinzufügen) und die Framerate wird automatisch reduziert, wenn der Akku schwach ist und nicht aufgeladen wird, um die Akkulaufzeit zu verlängern.
  • Für die Entwicklung eines Zifferblatts ist weniger Code erforderlich, insbesondere bei Zusatzfunktionen, bei denen ein Großteil der Boilerplate in die Bibliothek verschoben wurde.

Fehlerkorrekturen

  • EditorSession.userStyle.compareAndSet (I6f676) korrigieren
  • Sehr kurze Verzögerungen bei Zifferblatt beheben (Iffb97)
  • Sendet InteractiveWatchFaceImpl.onDestroy im UI-Thread (I83340)
  • Verschiedene Probleme mit Übertragungsempfängern beheben (I7d25f)

Version 1.0.0-rc01

3. November 2021

androidx.wear.watchface:watchface-*:1.0.0-rc01 wird freigegeben. Version 1.0.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Dump() wurde korrigiert (aufgerufen von ADB Shell dumpsys), das bei Ablaufmigrationen nicht funktioniert hat. 087cf9e.

  • Achten Sie darauf, dass die Werte für writeDirectBootPrefs ordnungsgemäß angeordnet sind. „writeDirectBootPrefs“ soll immer nach „initStyleAndComplications“ ausgeführt werden, sonst riskiert es, die Initialisierung des UI-Threads zu verzögern.(37650ac)

  • Achten Sie darauf, dass Renderer.onDestroy aufgerufen wird. In dem Szenario, in dem der Renderer erstellt wurde, aber die WF-Init-Methode noch nicht abgeschlossen ist und Engine.onDestroy aufgerufen wird, muss Renderer.onDestroy aufgerufen werden. (f9952dc)

  • Optimierung/Problemlösung „isBatteryLowAndNotCharging“. Mit diesem Patch wird die Ersteinrichtung von „isBatteryLowAndNotCharging“ früher eingerichtet und kann parallel zu createWatchFace ausgeführt werden. Außerdem hören wir jetzt ACTION_POWER_DISCONNECTED. (ddffd80)

  • InteractiveWatchFaceClientImpl.isConnectionAlive lautet nach Schließen "false" (ab9774e)

Version 1.0.0-beta01

27. Oktober 2021

androidx.wear.watchface:watchface-*:1.0.0-beta01 wird freigegeben. Version 1.0.0-beta01 enthält diese Commits.

Version 1.0.0-alpha24

13. Oktober 2021

androidx.wear.watchface:watchface-*:1.0.0-alpha24 wird freigegeben. Version 1.0.0-alpha24 enthält diese Commits.

API-Änderungen

  • Die Klassen im Paket androidx.wear.watchface.complications wurden in ein neues wear:watchface:watchface-complications-Projekt verschoben. Hinweis: Das bedeutet, dass du diese Bibliothek und vorherige Alphaversionen von wear:watchface:watchface-complications-data nicht einbinden kannst, da es zu Fehlern bei doppelten Klassen kommt. (I97195)
  • Renderer.dump wurde in Renderer.onDump umbenannt und mit @UiThread annotiert. (I44845)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener wurde in addOnWatchFaceReadyListener umbenannt und removeWatchFaceReadyListener wurde in removeOnWatchFaceReadyListener umbenannt. (I48fea)
  • EditorSession getComplicationsPreviewData und getComplicationsDataSourceInfo sind keine Sperrfunktionen mehr, sondern StateFlow<>-Properties, deren Wert anfänglich null ist. In ListenableEditorSession wurden getListenableComplicationPreviewData und getListenableComplicationsProviderInfo zugunsten der neuen StateFlow<>-Objekte aus der Basisklasse entfernt. Wenn Sie Änderungen im Java-Code beobachten müssen, sollten Sie androidx.lifecycle.FlowLiveDataConversions.asLiveData verwenden, um in LiveData<> zu konvertieren. (Ic5483)

Version 1.0.0-alpha23

29. September 2021

androidx.wear.watchface:watchface-*:1.0.0-alpha23 wird freigegeben. Version 1.0.0-alpha23 enthält diese Commits.

Neue Funktionen

Die Zifferblattbibliothek ist jetzt eine einzige Bibliotheksgruppe. Daher wurden die Bibliotheken verschoben und Sie müssen Ihre Gradle-Importe so aktualisieren:

Alt Neu
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

API-Änderungen

  • Migrieren Sie die separaten Bibliotheken für androidx.wear-Zifferblatt und Zusatzfunktionen in die androidx.wear.watchface-Bibliotheksgruppe. (b25f3c0)
  • EditorRequest.canWatchFaceSupportHeadlessEditing wurde hinzugefügt, um Kunden darüber zu informieren, ob ein Zifferblatt-Editor die monitorlose Bearbeitung unterstützt. Beachten Sie, dass es dabei einige falsch negative Ergebnisse gibt, da die Unterstützung in asop/1756809 hinzugefügt wurde. Es wird jedoch der richtige Wert für alle zukünftigen Zifferblätter zurückgegeben. (ca55590)
  • Renderer verfügt jetzt über eine dump()-Methode, die überschrieben werden kann, um den vom ABD-Shell-Dumpsys-Aktivitätsdienst „WatchFaceService“ generierten Informationen benutzerdefinierte Daten hinzuzufügen. (95235f9)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener gibt jetzt zuerst den Executor an. 563ac2f
  • StateFlowCompatHelper wurde entfernt. Verwenden Sie stattdessen asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
  • CurrentUserStyleRepository.userStyle kann nicht mehr geändert werden. (I44889)
  • WatchFaceReadyListener wurde in OnWatchFaceReadyListener umbenannt. (Ic12a9)

Fehlerkorrekturen

  • InteractiveInstanceManager.deleteInstance zum Aufrufen von onDestroy Dies ist erforderlich, damit für InteractiveWatchFaceImpl die Speicherbereinigung durchgeführt wird.(fce4af8, b/199485839)