Zifferblatt tragen

Erstelle Apps für Wear OS by Google-Smartwatches.

Hinweis : Seit dem 10. Juli 2024 müssen Zifferblätter auf neuen Smartwatches, auf denen Wear OS 5 vorinstalliert ist, installiert werden, wenn das Zifferblattformat verwendet werden soll. Weitere Informationen zu den Änderungen für Nutzer finden Sie in diesem Hilfeartikel.

Außerdem müssen ab Anfang 2025 (genaues Datum wird im 4. Quartal 2024 bekannt gegeben) alle neuen Zifferblätter, die bei Google Play veröffentlicht werden, das Watch Face-Format verwenden.

Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpha-Release
17. April 2024 1.2.1 - - 1.3.0-alpha03

Abhängigkeiten deklarieren

Wenn du eine Wear-Abhängigkeit hinzufügen möchtest, musst du deinem Projekt das Maven-Repository von Google 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 Artefakte hinzu, die Sie benötigen:

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. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder Verbesserungsvorschläge für diese Bibliothek haben. Bitte sieh dir die vorhandenen Probleme in dieser Bibliothek an, bevor du eine neue erstellst. Sie können einem vorhandenen Problem Ihre Stimme hinzufügen, indem Sie auf die Sternschaltfläche klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.3

Version 1.3.0-alpha03

17. April 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha03 wurde veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Bisher hat selectComplicationDataForInstant toApiComplicationData für alle Zeiträume aufgerufen, sodass der nachfolgende === Referenzgleichheitstest immer fehlschlägt. Dadurch wurden Komplikationen in jedem Frame neu geladen, was zu einer Entladung des Akkus führte. (717406)

Version 1.3.0-alpha02

3. April 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha02 wurde veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Wir verwenden jetzt die Referenzgleichheit für den Vergleich der besten und selectedData, da der Gleichheitsoperator teuer ist. (446b00)

API-Änderungen

  • Für GoalProgressComplicationData wurde eine dynamische API ohne Fallback hinzugefügt. (c33264)

Version 1.3.0-alpha01

7. Februar 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha01 wurde veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

Neue Funktionen

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

API-Änderungen

  • StatefulWatchFaceService unterstützt jetzt eine Überschreibung von getComplicationSlotInflationFactory, in die das benutzerdefinierte Extra, das von createExtra() erstellt wurde, übergeben wird. (I82d9f)
  • Bei einigen Zifferblättern müssen die im createUserStyleSchema erstellten Zusatzdaten für die anderen Initialisierungsmethoden freigegeben werden. Da es keine bessere Alternative gab, haben Entwickler ihre WatchFaceServices in der Regel zustandsorientiert gemacht. Dies ist gefährlich, da mehrere Instanzen gleichzeitig erstellt werden können, was zu Fehlern führen kann. Zur Lösung dieses Problems 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, was vor allem für OEMs von Interesse ist. (I0f5d8)
  • GlesRenderer2 hat jetzt eine Konstruktor-Überlastung, mit der Sie eine Liste von Attributen angeben können, die Sie nacheinander mit eglChooseConfig testen können. So können Sie beispielsweise zuerst eine Konfiguration mit Kantenglättung ausprobieren und bei Bedarf auf eine Konfiguration ohne Kantenglättung zurückgreifen. (I1ba74)
  • Ab Android U wird Wear OS auch SystemDataSources.DATA_SOURCE_HEART_RATE unterstützt. Diese Zusatzfunktion unterstützt garantiert nur die SHORT_TEXT-Zusatzfunktionen. Es wird jedoch empfohlen, dass 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 festgelegt, was passiert, wenn das System mit METADATA_KEY_DATA_SOURCE_CONFIG_ACTION aus einer Datenquelle für Zusatzfunktionen wiederhergestellt wird. Standardmäßig geht das System davon aus, dass der Datenquellendienst für die Zusatzfunktion die Sicherung jeglicher Konfigurationsdaten unterstützt. Wenn dies nicht der Fall ist, kann die Metadateneinstellung METADATA_KEY_DATA_SOURCE_CONFIG_ACTION auf „false“ gesetzt werden. Dadurch wird der Slot für die Zusatzfunktion als nicht konfiguriert markiert. (I6c505)

Version 1.2

Version 1.2.1

24. Januar 2024

androidx.wear.watchface:watchface-*:1.2.1 wurde veröffentlicht. 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 wurde veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Wir haben Unterstützung für einige neue Zusatzfunktionen hinzugefügt, die ab Android T verfügbar sind:
    • GoalProgressComplicationData ist ähnlich wie RangedValueComplicationData, mit dem Unterschied, dass es den Fortschritt in Richtung eines Ziels betrifft, bei dem der min. implizit null ist und der Wert größer als targetValue sein darf.
    • WeightedElementsComplicationData, das aus einem Array von Elementen (Gewichts- und Farbpaare) mit optionalem Text/Titel/Bild besteht. Diese können als Kreisdiagramm dargestellt werden, in dem die Farben in Anbetracht des Kontexts aussagekräftig sein müssen, da für das Rendern von Beschriftungen normalerweise keine Komplikationen vorhanden sind.
  • Wir haben Unterstützung für optionale ColorRanges zu RangedValueComplicationData hinzugefügt. Normalerweise werden Zusatzfunktionen in den Farben gerendert, die für das Zifferblatt ausgewählt werden. Manchmal ist das ComplicationDataSource aber am besten geeignet, um die Farben festzulegen, wenn sie z. B. eine bestimmte semantische Bedeutung haben. Beispielsweise wird durch die Angabe von Rot zu Blau die Temperatur angegeben.
  • SmallImages wird jetzt auf fast allen ComplicationData-Typen unterstützt.
  • Wir haben ComplicationDisplayPolicy hinzugefügt. DO_NOT_SHOW_WHEN_DEVICE_LOCKED weist ein kompatibles Zifferblatt an, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist.
  • Ab Android T können OEMs feststellen, ob eine Zusatzfunktion von einem Zifferblatt aus der Liste stammt, die in den android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest ihres Anbieters von ComplicationRequest#isForSafeWatchFace definiert ist. Der Anbieter benötigt die Berechtigung „com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE“, um andere Daten als „TargetWatchFaceSafety.UNKNOWN“ zu empfangen.
  • UserStyleFlavors ist keine experimentelle Funktion.

Version 1.2.0-rc01

18. Oktober 2023

androidx.wear.watchface:watchface-*:1.2.0-rc01 wurde veröffentlicht. 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 wurde veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.

Neue Funktionen

  • SuspendingComplicationDataSourceService#onDestroy ist jetzt geöffnet. Bitte beachten Sie, dass die Unterstützung für eine standardmäßige Zusatzfunktion für das Wetter nicht mehr verfügbar ist.

API-Änderungen

  • „Neue Datenquelle für Wetterkomplikationen verfügbar machen“ rückgängig machen. (I6f335)

Version 1.2.0-beta01

23. August 2023

androidx.wear.watchface:watchface-*:1.2.0-beta01 wurde veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

Neue Funktionen

  • Ab Android T unterstützt Wear OS jetzt eine standardmäßige Zusatzfunktion des Wettersystems.

API-Änderungen

  • Standardsystem-Fallback für das Wetter für Zusatzfunktionen hinzufügen. (Ia0994)
  • Dieser Patch fügt WatchFaceRuntimeService und WatchFaceControlClient.createWatchFaceRuntimeControlClient zusammen mit Guava-Wrappern hinzu. Diese bieten Unterstützung für Zifferblattlaufzeiten – eine spezielle Art von Zifferblatt, bei dem die Definition aus einem anderen Paket geladen wird. Derzeit unterstützt WearOS nur die Laufzeit für das Android Watch Face-Format. (I2799f)
  • Dieser Patch ist eine Folge von aosp/2636578, in der wir die Ganzzahl-Defs umbenennen, sodass Code, der von WatchFaceType, CanvasType, TapType oder ComplicationsSlotBoundsType abhängig ist, nicht geändert werden muss. (I4098b)
  • API-Dateien wurden aktualisiert, um eine unterdrückte Kompatibilität mit Anmerkungen zu versehen. (I8e87a, b/287516207)
  • Dieser Patch enthält die WatchFaceType-Konstanten in WatchFaceTypes, die CanvasType-Konstanten in CanvasTypes, die TapType-Konstanten in TapTypes und die ComplicationsSlotBoundsType-Konstanten in ComplicationsSlotBoundsType. (I3b85a, b/288750666)
  • WatchFace.OverlayStyle wird nur sehr selten genutzt und wird von den OEMs nicht gut unterstützt. Daher haben wir es eingestellt, um es zu einem späteren Zeitpunkt zu entfernen. (I7344a)

Version 1.2.0-alpha09

21. Juni 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha09 wurde veröffentlicht. 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 und Plattformbindungen verwenden, die auf unterstützten Wear 4-Geräten mit 1 Hz aktualisiert werden.

API-Änderungen

  • Dynamische Typen für die tägliche Strecke, die täglichen Kalorien und die täglichen Etagen hinzugefügt. Schlüssel für Plattformintegritätsquellen sind jetzt unter PlatformHealthSources.Keys (Ib7637)
  • Implementiere PlatformDataProvider, um die Herzfrequenz und die täglichen Schritte anzugeben. Die Schnittstelle SensorGateway wurde aus der öffentlichen API entfernt. (I55b84)
  • Benennen Sie StateEntryValue in DynamicDataValue um und aktualisieren Sie die Status-APIs, um die DynamicDataKey zu verwenden. (If1c01)
  • AppDataKey für den Zugriff auf den Push-Zustand der App hinzufügen; PlatformDataKey für den Zugriff auf Plattformdaten hinzufügen; Namespace-Unterstützung in StateStore hinzufügen. (I7985e)
  • enable/disablePlatformSource Methoden wurden aus DynamicTypeEvaluator entfernt. Der Aufrufer sollte für Aktualisierungen verantwortlich sein. (I78c6d)
  • Größenbeschränkung der gebundenen Datentypen zulassen. (Ie2966)

Version 1.2.0-alpha08

19. April 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha08 wurde veröffentlicht. Version 1.2.0-alpha08 enthält diese Commits.

Neue Funktionen

  • Ab Android T können Anbieter von Zusatzfunktionen mit den privilegierten com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE-Metadaten 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. Das bedeutet, dass ein Anbieter von Zusatzfunktionen möglicherweise unterschiedliche Typen für vertrauenswürdige und nicht vertrauenswürdige Zifferblätter bereitstellt.

API-Änderungen

  • Weitergabe der Klasse @Deprecated an Property (I882d1, b/271441831)
  • Name des Wertparameters für Enum.valueOf geändert (Ia9b89)
  • Weitere ausgelöste Ausnahmen von enum valueOf (I818fe)
  • Wir haben renderWatchFaceToSurface zugunsten von createRemoteWatchFaceView entfernt, das auf SurfaceControlViewHost basiert und es dem Aufrufer ermöglicht, eine Ansicht aus dem Zifferblatt einzubetten, das gerendert wird, wenn der Client RemoteWatchFaceViewHost#renderWatchFace aufruft. (Ib311d)
  • Wir haben renderWatchFaceToSurface zu InteractiveWatchFaceClient, HeadlessWatchFaceClient und EditorSession hinzugefügt. Dies ist in der Regel leistungsfähiger als das Rendern auf einer Bitmap. (Ieacad)
  • ObservableStateStore wurde in StateStore umbenannt. (Ieb0e2)
  • DynamicTypeEvaluator.Builder anstelle von Konstruktorargumenten hinzugefügt, um mehr optionale Argumente zu ermöglichen, einschließlich ObservableStateStore, das jetzt standardmäßig einen leeren Speicher enthält. (I6f832)
  • Refaktorierte Reihenfolge der Parameter in DynamicTypeEvaluator. (Ic1ba4)
  • Der Executor wurde den DynamicTypeEvaluator.bind-Methoden hinzugefügt. (I346ab)
  • Wir haben die Methode startEvaluation zu BoundDynamicType hinzugefügt, um die Bewertung auszulösen, nachdem der dynamische Typ gebunden wurde. (I19908)
  • Anbieter von Zusatzfunktionen mit den 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)
  • Wir haben CustomValueUserStyleSettings2 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 wurde veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.

Neue Funktionen

  • Ab Android T können OEMs feststellen, ob eine Zusatzfunktion von einem Zifferblatt aus der Liste stammt, die in den android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest ihres Anbieters von ComplicationRequest#isForSafeWatchFace definiert ist. Der Anbieter benötigt die Berechtigung „com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE“, um andere Informationen als TargetWatchFaceSafety.UNKNOWN zu empfangen.

  • Außerdem kann CustomValueUserStyleSetting2 von Android T verwendet werden.Es bietet Platz für bis zu 12,5 KB. Das vorherige Limit für CustomValueUserStyleSetting lag bei 1 KB. Trotz der höheren Größenbeschränkungen wird Entwicklern von Zifferblättern empfohlen, die Daten klein zu halten, da die Einstellungen während der Bearbeitung über Bluetooth gesendet werden und die Bluetooth-Bandbreite begrenzt ist.

API-Änderungen

  • Wir haben den GlesRenderer und GlesRenderer2 den optionalen Parameter eglContextAttribList hinzugefügt, mit dem Sie die an EGL14.eglCreateContext übergebene EGL14.EGL_CONTEXT_CLIENT_VERSION festlegen können. (I2a83e)
  • Wir haben Zifferblatt-Bibliotheken zu androidx.core.util.Consumer statt zu java.util.function.Consumer migriert. (I273f5)
  • Mehr ausgelöste Ausnahmen von KT-Property-Zugriffen (Iff9d9)
  • Wir haben InteractiveWatchFaceClient.isComplicationDisplayPolicySupported hinzugefügt, damit der Kunde feststellen kann, ob die Unterstützung für alte Zifferblätter emuliert werden muss oder nicht. (I24c89)
  • Wir haben beschlossen, dass isForSafeWatchFace ein IntDef mit drei Bundesstaaten sein sollte. (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. Bei Datenquellen im Systemimage wird „true“ zurückgegeben, wenn das anfragende Zifferblatt in der Liste der sicheren Zifferblätter enthalten ist, die von der Datenquelle im Manifest angegeben wurden. (I0cbb6)
  • Für Android T haben wir CustomValueUserStyleSetting2 hinzugefügt, das Platz für bis zu 12,5 KB bietet. Das vorherige Limit für CustomValueUserStyleSetting lag bei 1 KB. (I0b100)

Version 1.2.0-alpha06

25. Januar 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha06 wurde veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.

Neue Funktionen

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

Fehlerkorrekturen

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

Version 1.2.0-alpha05

7. Dezember 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha05 wurde veröffentlicht. Version 1.2.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Vor einiger Zeit haben wir die Unterstützung für die hierarchische UserStyleSettings hinzugefügt, und ab Android T ist es jetzt möglich, mehr als eine ComplicationSlotsUserStyleSetting in einer Hierarchie zu haben. Je nach der Stilauswahl des Nutzers ist nur ein ComplicationSlotsUserStyleSetting aktiv.

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

API-Änderungen

  • Wir haben ListOption und ComplicationSlotsOption ein neues optionales screenReaderName-Feld hinzugefügt, das von Bearbeitern verwendet werden kann. Es wird von Companion-Editoren auf Geräten vor Android T ignoriert. (I75326)
  • Von Android T werden jetzt mehrere ComplicationSlotsUserStyleSettings in einer Stilhierarchie unterstützt, sofern höchstens eine von ihnen gleichzeitig aktiv sein kann. Wir haben die Dienstfunktion findComplicationSlotsOptionForUserStyle zu UserStyleSchema hinzugefügt, um die aktive ComplicationSlotsOption zu finden, falls vorhanden. (IC2b06)
  • RangedValuesTypes wurden in das Companion-Objekt von RangedValueComplicationData abgerufen und in TYPE_UNDEFINED, TYPE_RATING umbenannt und eine neue TYPE_PERCENTAGE wurde hinzugefügt. (I55d02)
  • Wir haben die experimentelle Datei DynamicFloat in FloatExpression umbenannt und als @hide gekennzeichnet. (Idf4f1)
  • Annotation @JvmDefaultWithCompatibility hinzufügen (I8f206)

Version 1.2.0-alpha04

9. November 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha04 wurde veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Android T unterstützt jetzt zwei neue Zusatzfunktionen: GoalProgressComplicationData und WeightedElementsComplicationData.
  • GoalProgressComplicationData“ ist ähnlich wie „RangedValueComplicationData“, aber sein Wert darf den Zielwert überschreiten (bei RangedValueComplicationData wird er auf den Bereich [min .. max] gebunden). Das hat Auswirkungen auf das visuelle Design, das möglicherweise nicht für alle Zifferblätter passt.
  • GoalProgressComplicationData unterstützt Kreisdiagramme und ähnliche Aufschlüsselungen einfacher Daten.
  • Wir haben die optionale Unterstützung für ColorRamps zu RangedValueComplicationData hinzugefügt.
  • Für Android T haben wir ComplicationPersistencePolicy und setCachePolicy zu ComplicationData hinzugefügt. Damit können Anbieter derzeit steuern, ob eine Zusatzfunktion beibehalten wird oder nicht (d. h., ob sie nach dem Neustart im Cache gespeichert wird). Für die meisten Komplikationen ist keine Cache-Steuerung erforderlich, aber dadurch werden Grenzfälle mit veralteten Daten für einige Komplikationen behoben, die häufig aktualisiert werden (z.B. Komplikationen bei Gesundheitsdaten). Wir haben außerdem ComplicationDisplayPolicy hinzugefügt. DO_NOT_SHOW_WHEN_DEVICE_LOCKED weist ein kompatibles Zifferblatt an, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. (IC9574)

API-Änderungen

  • GoalProgressComplicationData, WeightedElementsComplicationData und ColorRamp sind nicht mehr experimentell. (Ica9e2)
  • ComplicationPersistencePolicy und ComplicationDisplayPolicy sind jetzt korrekt als T APIs gekennzeichnet. (I31d88)
  • Der verworfene ComplicationSlotOverlay-Konstruktor verfügt jetzt über DeprecationLevel.WARNING, sodass er wieder aus Java aufgerufen werden kann. (Ib308c)
  • Wir haben einige Java-Kompatibilitätsprobleme mit ComplicationRequestListener, CanvasComplication, ComplicationTapFilter und InteractiveWatchFaceClient behoben, indem sie mit @JvmDefaultWithCompatibility (Id94fc) versehen wurden.
  • Die experimentellen Tools ProtoLayoutComplicationData und ListComplicationData wurden entfernt. Der Entwicklerbericht dafür war unklar. Wir hoffen, dass wir ihn in Zukunft noch einmal ansehen werden. (I9df05)
  • Wir haben ein/e ValueType wieder zu RangedValueComplicationData hinzugefügt. WeightedElementsComplicationData unterstützt jetzt eine Hintergrundfarbe. Wir haben DiscreteRangedValueComplicationData entfernt, da ihre Funktionalität ein Teil von WeightedElementsComplicationData ist. (I6446c)

Fehlerkorrekturen

  • Füge das isForScreenShot in den Gleichheits- und Hash-Code ein. Für onRenderParametersChanged muss ein korrekter isForScreenshot-Wert verwendet werden (I04a41)
  • WatchFaceControlService-Sicherheitslücken bei monitorlosen Clients wurden behoben. (e90e00)

Version 1.2.0-alpha03

5. Oktober 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha03 wurde veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Es gibt keine neuen Funktionen, aber wir haben einige Fehler im Zifferblatt-Editor behoben.

API-Änderungen

  • Eingestellte UserStyleSchema.userStyleSettings, da rootUserStyleSettings nicht experimentell ist (Ie96e3)
  • rootUserStyleSettings aus experimentellen Ressourcen verschieben (I8d6b3)
  • WatchFaceColors wurde als experimentell gekennzeichnet, weil es nicht von allen Systemen unterstützt wird (I6d75d).
  • Machen Sie DisconnectReasons in der öffentlichen API verfügbar, damit es mit IntDef funktioniert. (I791f8)

Fehlerkorrekturen

  • Schließe alle geöffneten Elemente im Smartwatch-Editor, wenn SysUI stirbt. Wenn SysUI abstürzt und der Zifferblatt-Editor nicht geschlossen wird, kann das Zifferblatt inkonsistent bleiben, da das System auf SysUI angewiesen ist, um Änderungen des Nutzerstils beizubehalten (ba762a).
  • Ein Speicherleck in ComplicationDataSourceInfoRetriever wurde behoben, bei dem eine Kotlin-Fortsetzung der Koroutine als GCS-Root fungierte und die Editoraktivität beibehalten konnte.(33ee06)

Version 1.2.0-alpha02

21. September 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha02 wurde veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Einige Zifferblätter haben eine Konfiguration außerhalb von UserStyle, die sich optisch darauf auswirkt, z.B. durch die Auswahl eines Hintergrundbilds. Wir haben Renderer.sendPreviewImageNeedsUpdateRequest hinzugefügt, über das das Zifferblatt ein aktualisiertes Vorschaubild anfordern kann. Beachten Sie, dass hierfür ein entsprechendes System-Update erforderlich ist.

  • Wir haben auch eine API für Zifferblätter hinzugefügt, um ihre Farben dem System zur Verfügung zu stellen, das darauf basierend die Farbpalette auswählen kann. Hinweis: Dies wurde im Rahmen eines Folge-Patches experimentell.

  • SmallImages wird jetzt von fast allen ComplicationData-Typen unterstützt.

API-Änderungen

  • Der Hintergrundmanager kann sich manchmal von einer Suchmaschine trennen und eine neue erstellen. Wir haben eine DisconnectReason int def hinzugefügt und ClientDisconnectListener mit einer neuen Methode erweitert, die eine DisconnectReason enthält, mit der der Listener die Trennung der Engine beobachten kann. (I45cce)
  • Dem ComplicationSlotOverlay-Konstruktor wurden zwei optionale Parameter nameResourceId und screenReaderResourceId hinzugefügt (I157e8).
  • Wir haben einen Guava-Wrapper für die neue Überlastung von getOrCreateInteractiveWatchFaceClient mit einem PreviewImageUpdateRequestedListener hinzugefügt. (Ic31f0)
  • Wir haben Renderer.sendPreviewImageNeedsUpdateRequest hinzugefügt. Dies ist nützlich für Zifferblätter mit einem Status außerhalb von UserStyleSchema, der sich auf ihr Aussehen auswirkt (z. B. ein Zifferblatt mit einem auswählbaren Hintergrundbild). Clientseitig haben wir PreviewImageUpdateRequestedListener als optionalen Parameter zu getOrCreateInteractiveWatchFaceClient hinzugefügt, um diese Anfragen zu beobachten. (Iff44a)
  • Wir haben die API für die Veröffentlichung von WatchFaceColors vereinfacht. Es gibt jetzt eine einfache Eigenschaft namens watchFaceColors für den Renderer, die vom Zifferblatt festgelegt werden kann. Diese sollte bei Bedarf als Reaktion auf Stiländerungen aktualisiert werden. Statt mit WallpaperManager Farbänderungen zu erfassen, haben wir OnWatchFaceColorsListener zu InteractiveWatchFaceClient hinzugefügt. (I490bc)
  • Wir haben eine WatchFaceColors-Klasse hinzugefügt, die die drei auffälligsten Zifferblattfarben enthält. Außerdem wurden 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-Element verwendet werden, für das zuvor ein monochromatisches Bild erforderlich gewesen wäre. (I257df)
  • PreviewImageUpdateRequestedListener in Consumer<> refaktorieren (Ia875d)
  • Benutzerdefinierten Typ OnWatchfaceColorsListener einer einzelnen abstrakten Methode (SAM) durch generischen Java-SAM-Typ (Nutzer) ersetzen (I0c489)
  • Die alten Methoden getOrCreateInteractiveWatchFaceClient und listenableGetOrCreateInteractiveWatchFaceClient, die keine PreviewImageUpdateRequestedListener angeben, wurden verworfen. (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 wurde veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Wir haben experimentelle Unterstützung für verschiedene neue Zusatzfunktionen hinzugefügt. Dies ist ein Bereich der aktiven Entwicklung. Diese neuen Formate können ohne vorherige Ankündigung geändert werden und derzeit gibt es keine Renderer-Unterstützung von CanvasComplicationDrawable.
  • Außerdem haben wir den Slots für Zusatzfunktionen optionale Ränder hinzugefügt, damit kleine Zusatzfunktionen einfacher anzutippen sind.

API-Änderungen

  • Die experimentelle Klasse BoundingArc ist jetzt unveränderlich. (If624a)
  • Kleine Zusatzfunktionen sind manchmal schwer anzutippen. Um dies zu vermeiden, unterstützen wir Ränder, mit denen der antippbare Bereich vergrößert werden kann, ohne das Rendering zu beeinträchtigen. Sofern nicht anders angegeben (entweder im Code oder über XML), haben ComplciationSlots Ränder in Nullgröße. (I14089)
  • Die getComplicationSlotInflationFactory(CurrentUserStyleRepository)-Signatur wurde so geändert, dass eine Factory-Instanz ungleich null zurückgegeben wird. Da es zuvor ein Fehler war, null zurückzugeben, wird dadurch der API-Vertrag klarer. (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 die experimentelle DiscreteRangedValueComplicationData eingeführt, die RangedValueComplicationData mit Ausnahme von Ganzzahlbereich und Wert entspricht. Außerdem haben wir einen experimentellen GoalProgressComplicationData eingeführt, der RangedValueComplicationData ähnelt, mit dem Unterschied, dass es sich um den Fortschritt in Richtung eines Ziels handelt, bei dem der min. implizit null ist und der Wert größer als targetValue sein darf. Hinweis: Für alle RangedValue-Varianten muss mindestens entweder „monochromeImage“, „Text“ oder „Titel“ angegeben werden. (I9590c)
  • Wir haben boundsWithMargins aus ComplicationSlotState entfernt, da es für die Systemsoftware keinen Anwendungsfall gibt. (I42e26)
  • Wir haben experimentelle Unterstützung für WeightedElementsComplicationData hinzugefügt. Diese besteht aus einem Array von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text/Titel/Bild. Diese können als Kreisdiagramm dargestellt werden, in dem die Farben in Anbetracht des Kontexts aussagekräftig sein müssen, da für das Rendern von Beschriftungen normalerweise keine Komplikationen vorhanden sind. (I87eea)
  • Mit der experimentellen ColorRamps, die optional von RangedValueComplicationData und GoalProgressComplicationData verwendet werden kann, kannst du jetzt eine Sequenz von bis zu sieben Farben angeben sowie ein Flag angeben, das angibt, ob die Farben problemlos angepasst werden sollen oder ob gleich große Farbstufen gerendert werden sollen. (I9f5bf)
  • RangedValueComplicationData.drawSegmented wurde zu valueType geändert. Das ist eine Ganzzahl mit einer entsprechenden ValueType IntDef, die dem Bereichswert semantische Bedeutung verleiht und vom Zusatzfunktions-Renderer zum Beeinflussen des Stils verwendet wird. (I0616b)
  • Wir haben experimentelle Unterstützung für die optionale ColorRanges zu RangedValueComplicationData hinzugefügt. Normalerweise werden Zusatzfunktionen in den Farben gerendert, die für das Zifferblatt ausgewählt werden. Manchmal ist das ComplicationDataSource aber am besten geeignet, um die Farben festzulegen, wenn sie z. B. eine bestimmte semantische Bedeutung haben. Beispielsweise wird durch die Angabe von Rot zu Blau die Temperatur angegeben. (I5153a)
  • Wir haben RangedValueComplicationData einen experimentellen drawSegmented-Hinweis hinzugefügt. Damit weisen Sie Renderer an, den Bereichswertindikator mit Segmenten zu zeichnen, wobei 1 Segment 1 Einheit entspricht. (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 wurde veröffentlicht. Version 1.1.1 enthält diese Commits.

  • Dies ist eine Version zur Fehlerkorrektur. Nutzern der Version 1.1.0 wird dringend empfohlen, ein Upgrade durchzuführen.

Fehlerkorrekturen

  • Die Initialisierung des Zifferblatts erfolgt asynchron. Wenn eine Zusatzfunktion eingeht, bevor das Zifferblatt bereit ist, wird es in die pendingInitialComplications-Liste aufgenommen und später angewendet. pendingInitialComplications wurde zu früh angewendet. Das bedeutete, dass es bei der Initialisierung des Zifferblatts ein Zeitfenster gab, in dem Komplikationen weiterhin in pendingInitialComplications platziert und ignoriert wurden. Dieses Problem wurde inzwischen behoben. Außerdem wird mit diesem Patch ein Fehler behoben, bei dem ComplicationRenderer fälschlicherweise versucht hat, Platzhalter asynchron zu laden, was dazu führte, dass die Kompilierungsgrafik nie aktualisiert wurde. Schließlich wird mit diesem Patch ein hoffentlich theoretischer Fehler behoben, bei dem mehrere pendingInitialComplications zusammengeführt werden müssen. (0d03ba3)

  • Ein potenzielles Deadlock in InteractiveInstanceManager wurde behoben, bei dem getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance das Schloss länger als nötig hielt. Normalerweise sollten wir erwarten, dass engine.setUserStyle schnell ist, aber wenn dies aus irgendeinem Grund nicht der Fall ist, kann es zu einem Deadlock/ANR-Fehler kommen. Durch diesen Patch werden unnötige Arbeiten aus dem Schloss entfernt, wodurch die Gefahr eines Deadlocks eliminiert wird.(5a2adca)

  • Behebe mehrere Probleme, die WatchFaceService beibehalten haben. WakeLock kann WatchFaceService manchmal beibehalten. Durch Hinzufügen eines release()-Aufrufs wird dieses Problem behoben. Außerdem kann StateFlows WatchFaceService beibehalten, wodurch dies durch Abbrechen der zugrunde liegenden CoroutineScopes behoben wird.(fd48138)

  • Fügen Sie awaitDeferredWatchFace* Zeitüberschreitungen hinzu und korrigieren Sie watchfaceOverlayStyle NullPointerException. Unter normalen Umständen sollte hier keine Zeitüberschreitung auftreten, z. B. nach einer Neuinstallation und DirectBoot-Szenarien, in denen die CPU-Auslastung hoch ist. Außerdem wurde eine NPE korrigiert, wenn getWatchfaceOverlayStyle nach close() aufgerufen wird.(a4c3a5a)

Version 1.1.0

15. Juni 2022

androidx.wear.watchface:watchface-*:1.1.0 wurde veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

Verbesserte Bearbeitungsfunktionen:

  • Wir haben Unterstützung für hierarchische Schemas hinzugefügt, wodurch eine Hierarchie von Stilen von Editor-Benutzeroberflächen geschrieben werden kann. Du kannst jetzt separate Symbole für die Verwendung in Zifferblatt- und Companion-Editoren angeben.
  • Es gibt die Opt-in-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 menschenlesbare Namen für ComplicationSlots zur Verwendung in Editoren angeben.
  • Experimentelle Unterstützung für Stile von „Geschmacksrichtungen“, eine ausgewählte Auswahl von Stilen, die im Companion-Editor sichtbar ist.
  • Beim Laden von zwei Instanzen des Zifferblatts können jetzt Ressourcen gemeinsam genutzt werden, wodurch Arbeitsspeicher gespart wird.
  • Wenn Sie im Zifferblatt-Editor eine Zusatzfunktion auswählen, wird jetzt der aktuelle Anbieter vorausgewählt.

Verbesserte Zusatzfunktionen:

  • Sie können jetzt die ComplicationType für die primäre und sekundäre Datenquelle angeben, um Entwicklern mehr Flexibilität bei der Bereitstellung zu bieten.
  • Wir haben ComplicationDataTimeline hinzugefügt. Damit wird eine Sequenz zeitgesteuerter Daten an das Zifferblatt gesendet, die automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die heutige Wettervorhersage zu verschiedenen Zeiten oder mehrere anstehende Kalenderereignisse.
  • Die ComponentName des Anbieters für Zusatzfunktionen ist Teil der ComplicationData.
  • Zusatzfunktionen werden jetzt im Cache gespeichert, was das Wechseln zwischen verschiedenen Zifferblättern erleichtert.

Sonstige Änderungen:

  • UserStyleSchema und ComplicationSlots können jetzt in XML definiert werden. Das vereinfacht die Erstellung des Zifferblatts und ermöglicht schnellere Metadatenabfragen aus dem System.
  • Zifferblätter können jetzt die Farben beeinflussen, die für das Rendern des System-Overlays verwendet werden.

Version 1.1.0-rc01

18. Mai 2022

androidx.wear.watchface:watchface-*:1.1.0-rc01 wurde veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Neue Funktionen

  • Wir haben die XML-Unterstützung für Zifferblätter optimiert, um die Angabe von ComplicationSlotBounds und unterstützenden Referenzen zu vereinfachen. Es wird weiter mit der Zusatzfunktion für Kanten (BoundingArc) experimentiert und sie wird an drawHighlight weitergeleitet, obwohl die Verwendung zu diesem Zeitpunkt nicht empfohlen wird.

API-Änderungen

  • Wir haben eine experimentelle Überlastung von drawHighlight hinzugefügt, die einen BoundingArc-Parameter akzeptiert. (I705f8)
  • Zifferblatt-XML 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 im Formular center_x, center_y, size_x, size_y zu definieren. Jetzt ist es auch möglich, mithilfe von Ressourcenreferenzen verschiedene Einheiten (z.B. dp) zu verwenden. (Iace98)

Fehlerkorrekturen

  • Fehler bei runBlockingWithTracing behoben, bei dem Aufgaben im falschen Kontext ausgeführt wurden (4f595fe)
  • BaseEditorSession.close synchron machen. Das Problem bei asynchronem BaseEditorSession.close besteht darin, dass ComplicationDataSourceInfoRetriever zu spät freigegeben wird, was zu Spam-Warnung in 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 wurde veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.

Neue Funktionen

  • Wir haben experimentelle Unterstützung für neue ComplicationData-Typen hinzugefügt. Diese sind noch nicht einsatzbereit, aber wir empfehlen Ihnen, sie hier anzusehen.

API-Änderungen

  • Wir haben BoundingArc hinzugefügt, eine experimentelle Klasse, die die Geometrie eines Rand-Zusatzfunktionsslots beschreibt. Es wurde ComplicationSlot hinzugefügt und an ComplicationSlotState und WatchFaceMetadataClient weiterverarbeitet. (I61a40)
  • Es wurde die Möglichkeit hinzugefügt, Einstellungen in UserStyleSetting-XML zu übernehmen. Sie können damit die Ausführlichkeit reduzieren und eine Einstellung für verschiedene Zifferblätter verwenden. (Ief841)
  • Wir haben zwei neue experimentelle Typen von ComplicationData hinzugefügt: ListComplicationData und ProtoLayoutComplicationData. Momentan gibt es für keinen dieser Typen eine Rendering-Unterstützung und WearOS erkennt diese Typen derzeit nicht, wenn sie einem ComplicationDataSource's-Manifest hinzugefügt werden. (I1811c)

Fehlerkorrekturen

  • Die Serialisierung des Typs TimeLineEntry wurde korrigiert. Wir haben den Typ TimeLineEntry nicht serialisiert. Das bedeutet, dass im Cache gespeicherte TimeLineEntries vom Typ NoData fälschlicherweise so interpretiert wurden, dass der Typ der übergeordneten Zusatzfunktion zu NPEs führt, wenn auf nicht vorhandene Pflichtfelder zugegriffen wurde. (55ffdf5)
  • Fehler behoben, bei dem setComplicationData Zeitachsenfelder verworfen hat(fb392f5)
  • Es wurde ein Fehler behoben, bei dem runBlockingWithTracing gelegentlich zu einer NPE führte(12ca62e).
  • Es wurde ein Fehler behoben, bei dem manchmal ClassNotFoundException: android.support.wearable.complications.ComplicationText zurückgegeben wurde, 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 ein von verticalFlip verursachter visueller Fehler aufgetreten ist (c674ad2).
  • Fehler bei der Prüfung der XML-Version von WatchFaceService. Es wurde aus dem falschen Paket geladen.(dfa06f3)
  • Beim Platzhalterformat wird jetzt ein inneres Set verwendet. Wir möchten nicht, dass Platzhalter vorhandene Zifferblätter zerstören, die möglicherweise das versteckte innere a.s.w.c.ComplicationData verwenden. Bisher wurde der Platzhalter beim Wire-Format von NoDataComplication-Daten in den üblichen Feldern gespeichert. Das war problematisch, weil alte Zifferblätter den Platzhalterstring rendern würden, 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 wurde veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

API-Änderungen

  • Jetzt lösen WatchFaceMetadataClient-Methoden (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) und HeadlessWatchFaceClient.getUserStyleFlavors eine ungeprüfte RuntimeException anstelle von WatchFaceException aus. (I0718a)
  • WatchFaceMetadataClient.WatchFaceException wurde aus dem Kurs verschoben, damit er wiederverwendet werden kann. (I4e869)

Fehlerkorrekturen

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

Version 1.1.0-alpha05

6. April 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha05 wurde veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Anhand von ComplicationData.dataSource können Sie jetzt feststellen, von welcher Datenquelle eine ComplicationData gesendet wurde. Einige Zifferblätter verwenden diese Funktion möglicherweise, um die Anzeige der Zusatzfunktion anzupassen. (I44a73)

API-Änderungen

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

Version 1.1.0-alpha04

9. März 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha04 wurde veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.

API-Änderungen

  • Die aktuelle ComplicationData ist möglicherweise nicht immer verfügbar (z. B. abgelaufene im Cache gespeicherte ComplicationData). Daher haben wir NoDataComplication um den optionalen Platzhalter „ComplicationData“ erweitert und ComplicationText.PLACEHOLDER, MonochromaticImage.PLACEHOLDER, SmallImage.PLACEHOLDER und PhotoImage.PLACEHOLDER hinzugefügt. Diese dürfen nur innerhalb des Kontexts eines NoDataComplicationData-Platzhalters verwendet werden. Wenn diese Platzhalter ausgewählt sind, wird vorgeschlagen, dass diese Platzhalter mit grauen Feldern/Bögen gerendert werden. (I6285d)
  • Wir haben ComplicationData.getNextChangeInstant hinzugefügt, um dir den nächsten Instant-Fehler nach dem Referenz-Instant zu nennen, bei dem sich ein beliebiges Feld der Zusatzfunktion ändern kann. Wird intern verwendet, um Frames für Zusatzfunktionen zu planen. Wenn ein Zifferblatt beispielsweise normalerweise einmal pro Minute aktualisiert wird, führt das Einstellen der Zusatzfunktion zum Stoppen der Uhr dazu, dass sie einmal pro Sekunde aktualisiert wird. (I7ceb2)
  • EditorSession.watchFaceId kann jetzt auf allen API-Ebenen verwendet werden. Außerdem entspricht der Wert jetzt immer der WatchState.watchFaceInstanceId. (I323b9)
  • Die getPendingIntentForTouchEvent API ist nicht mehr erforderlich, da das zugrunde liegende Problem im Framework behoben wurde. Daher wurden alle zugehörigen APIs entfernt. Zifferblätter müssen nichts Besonderes tun, damit PendingIntents ausgelöst wird, auch wenn die Startbildschirmtaste kürzlich gedrückt wurde. (I1f2e8)
  • Wir haben RendererParameters.isForScreenShot hinzugefügt. Dieser Wert ist "true", wenn das Rendern ein Screenshot ist. Einige Zifferblätter mit Animationen müssen dies wissen, damit sie Anpassungen vornehmen und so optimale Ergebnisse erzielen können. (I96d99)
  • Wir haben WatchFaceExceptionReason zu WatchFaceException hinzugefügt, um besser zu erklären, was schiefgelaufen ist. (I01d15)
  • ComplicationDataSourceService.onImmediateComplicationRequest“ wurde entfernt. Stattdessen wurde „ComplicationRequest.immediateResponseRequired“ hinzugefügt, um zu signalisieren, dass der Anbieter schnell reagieren muss (idealerweise in weniger als 100 ms). Diese Funktion wird durch die privilegierte com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE-Berechtigung geschützt. (IE6b23)
  • Null-Zulässigkeit in Core und Appcompat aktualisiert, um Tiramisu DP2 zu entsprechen (I0cbb7)

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 wurde veröffentlicht. 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 eine neue Eigenschaft namens „childSettings“ hinzugefügt, die anfänglich nur von ListOption verwendet wird. Dadurch kann eine Hierarchie von Stilen zur Verwendung durch Editor-Benutzeroberflächen beschrieben werden. Der zugrunde liegende UserStyle bleibt unverändert und bleibt 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 (Standardeinstellung ist „false“). Wenn dieser Parameter auf „true“ gesetzt ist, 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 bereitstellen können (Icc0d4).
  • Bei der Bearbeitung eines Zifferblatts wird häufig sowohl eine interaktive als auch eine monitorlose Instanz angezeigt. Um Arbeitsspeicher zu sparen, haben wir Renderer.SharedAssets eingeführt. Damit kann ein Zifferblatt-Renderer unveränderliche Daten (z. B. Texturen und Shader) zwischen Instanzen teilen. GlesRenderer.setEglConfig und GlesRenderer.setEglDisplay wurden eingestellt. Es war nie vorgesehen, diese Einstellungen zu konfigurieren, und dies hätte zu nicht definiertem Verhalten geführt. (I0d9e7)
  • Wir haben setNameResourceId und setScreenReaderNameResourceId (die auf String-Ressourcen verweisen) zu ComplicationSlot.Builder und entsprechenden Getter in androidx.wear.watchface.client.ComplicationSlotState hinzugefügt. Dadurch kann das System die Namen von ComplicationSlots zur Verwendung in Editoren und Screenreadern abrufen. (If6c6a)
  • WatchfaceMetadataClient.getUserStyleSchema und getComplicationSlotMetadataMap geben jetzt WatchFaceException statt RemoteException aus. (I86f11)
  • onSynchronousComplicationRequest und zugehörige 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, verschiedene Symbole für Zifferblatt-Editoren zu unterstützen. Mit diesem Patch wird allen UserStyleSettings und gegebenenfalls ihren Optionsklassen OnWatchEditorData hinzugefügt, das derzeit nur ein Symbol enthält. (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) gekennzeichnet und es ist jetzt möglich, diese Klasse in Java zu erweitern. (Iac6d0)
  • Es wurde ein Fehler behoben, bei dem „PhotoImageComplicationData“-tapAction nicht richtig verarbeitet wurde (I1cc30).

Version 1.1.0-alpha02

12. Januar 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha02 wurde veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Um Fehler beim Debugging und Testen zu unterstützen, haben ComplicationData und zugehörige abgeleitete Klassen jetzt die Methoden Hashcode, gleich und toString überschrieben, was die Arbeit mit ihnen vereinfacht.

API-Änderungen

  • WatchfaceMetadataClient-Methoden geben gegebenenfalls wieder RemoteExceptions aus, sodass der Clientcode einfacher Fehler auf dem Zifferblatt abfangen kann. (I78785)
  • ComplicationData und Unterklassen haben jetzt den Hashcode, „ist gleich“ und „toString“. (I24bc6)

Version 1.1.0-alpha01

15. Dezember 2021

androidx.wear.watchface:watchface-*:1.1.0-alpha01 wurde veröffentlicht. 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 von Zifferblättern. Außerdem sind WatchFaceMetadataClient-Abfragen schneller, da zum Abrufen der Metadaten keine Bindung an den Dienst erforderlich ist. WatchFaceMetadataClient und ListenableWatchFaceMetadataClient sind nicht mehr experimentell und werden Teil der stabilen API. Das System kann optional mehrere Instanzen eines Zifferblatts mit jeweils eigenen 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 in UserStyle erfasst wird. Um diese 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 Cache gespeichert und manchmal wird es von den Zifferblattbibliotheken serialisiert. Ist dies der Fall, werden alle verknüpften „tapAction“-Aktionen verloren. In diesem Fall gibt ComplicationData.tapActionLostDueToSerialization den Wert true zurück und das Zifferblatt sollte die Zusatzfunktion anders darstellen (z. B. ausgegraut oder halbtransparent), um zu signalisieren, dass sie nicht angetippt werden kann. Das System sendet so schnell wie möglich eine aktualisierte ComplicationData mit einer tapAction.

  • Einige ComplicationData sollten längere Zeit nicht im Cache gespeichert werden. Deshalb haben wir eine allgemeinere Funktion hinzugefügt: ComplicationDataTimeline. Dies kann verwendet werden, um eine Sequenz zeitlich gesteuerter ComplicationData bereitzustellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die heutige Wettervorhersage zu verschiedenen Zeiten oder mehrere anstehende Kalenderereignisse. 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ären und sekundären Datenquellen angeben können.

  • Wir haben die Unterstützung für Anbieter synchroner Zusatzfunktionen hinzugefügt, bei denen die Zusatzfunktion häufiger als normal aktualisiert wird – bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht nah am Motiv ist. Hinweis:Anbieter synchroner Zusatzfunktionen nutzen möglicherweise aufgrund von Speicherauslastung nur eine begrenzte Nutzung.

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

API-Änderungen

  • ComplicationData.isCached wurde zu tapActionLostDueToSerialization geändert. Dies ist nützlicher, um festzustellen, ob die Zusatzfunktionsfläche 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 Sequenz zeitlich gesteuerter ComplicationData bereitzustellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die heutige Wettervorhersage zu verschiedenen Zeiten oder mehrere anstehende Kalenderereignisse. 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 Sperren von Datenquellendiensten. (Idecdc)
  • PendingIntentTapListener und WatchFaceControlClient.getPendingIntentForTouchEvent wurden hinzugefügt. Dies kann für Zifferblätter hilfreich sein, die als Reaktion auf Tippen Intents starten müssen, um ein Problem zu umgehen, bei dem das Framework nach dem Drücken der Startbildschirmtaste für 5 Sekunden den Start neuer Aktivitäten blockiert. (I98074)
  • Es wurde ein ComplicationData-Cache pro Zifferblatt eingeführt. So können auf dem Zifferblatt nach dem Laden die letzten bekannten Daten für Zusatzfunktionen angezeigt werden, bis das System die Möglichkeit hatte, sie zu aktualisieren. Die neue API-Methode WatchFaceControlClient.hasComplicationCache ist für OEMs vorgesehen. Dies kann die Strategie des Systems zum Senden von Zusatzfunktionen an ein Zifferblatt beeinflussen. Außerdem hat ComplicationData ein isCached-Attribut. Es wird empfohlen, im Cache gespeicherte Zusatzfunktionen anders zu rendern, weil tapAction nicht im Cache gespeichert werden kann und in einer im Cache gespeicherten Zusatzfunktion zu null ist. (I404b0)
  • Die Instanz-ID des Zifferblatts ist jetzt über WatchState.watchFaceInstanceId verfügbar. Bei den meisten Zifferblättern ist diese Funktion nicht erforderlich. Wenn jedoch ein Status pro Zifferblatt nicht im Schema gespeichert ist, muss dieser Schlüssel zum Identifizieren der Zifferblattinstanz verwendet werden. Dazu kannst du beim Aufruf von WatchFaceControlClient.createHeadlessWatchFaceClient jetzt eine ID angeben. (I1ff98)
  • Die Funktion „DefaultComplicationDataSourcePolicy“ wurde erweitert mit der Möglichkeit, die Standardeinstellung „ComplicationTypes“ für den primären, sekundären Anbieter und für den Anbieter des Fallback-Systems festzulegen. ComplicationSlot.defaultDataSourceType wurde verworfen. (If0ce3)
  • ComplicationSlot.configExtras kann jetzt geändert werden und kann vor dem Aufrufen 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 Zusatzfunktionen angefordert werden. Ein weiteres Dialogfeld, in dem erklärt wird, dass die Berechtigung für die Zusatzfunktion erforderlich ist, wenn versucht wird, eine Zusatzfunktion zu bearbeiten, 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. Das vereinfacht die Erstellung des Zifferblatts und beschleunigt WatchFaceMetadataClient-Abfragen, da zum Abrufen der Metadaten keine Bindung an den Dienst erforderlich ist. (I85bfa)
  • InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent wurde hinzugefügt, damit ein Client feststellen kann, ob ein Zifferblatt getPendingIntentForTouchEvent unterstützt. (I0b917)
  • WatchFaceMetadataClient und ListenableWatchFaceMetadataClient befinden sich nicht mehr in der Testphase. Sie können verwendet werden, um Zifferblattmetadaten effizient abzurufen, wenn möglich, ohne einen Binder für das Zifferblatt zu öffnen. (Ibb827)
  • Zusätzliche Unterstützung für Anbieter synchroner Zusatzfunktionen, bei denen die Zusatzfunktion häufiger als normal aktualisiert wird – bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht nah am Motiv ist. Um diese Funktion 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 möglicherweise auch onStartSynchronousComplicationRequests und onStopInteractiveComplicationRequests überschrieben werden, damit Sie benachrichtigt werden, wenn die Zusatzfunktion in den interaktiven Modus wechselt. (I8fe9d)

Version 1.0

Version 1.0.1

9. Februar 2022

androidx.wear.watchface:watchface-*:1.0.1 wurde veröffentlicht. Version 1.0.1 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem „PhotoImageComplicationData“-tapAction nicht richtig verarbeitet wurde (I1cc30).

Version 1.0.0

1. Dezember 2021

androidx.wear.watchface:watchface-*:1.0.0 wurde veröffentlicht. 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 bietet gegenüber der bisherigen Wearable-Supportbibliothek eine Reihe neuer Funktionen.

  • Benutzerstile (z. B. die Farbpalette, den Stil der Zifferblätter oder das Aussehen der Stundenmarkierungen usw.) werden direkt von der Bibliothek unterstützt (siehe androidx.wear.watchface.style). Es ist jetzt viel einfacher, einen Zifferblatt-Editor mit androidx.wear.watchface.editor zu entwickeln und dein Zifferblatt kann über die System-Companion-App bearbeitet werden, ohne dass du zusätzlichen Code schreiben musst.
  • Best Practices integriert. Die Bibliothek generiert automatisch Screenreader-Inhaltslabels für Zusatzfunktionen (Sie können auch eigene hinzufügen). Die Framerate wird automatisch reduziert, wenn der Akku fast leer ist oder nicht geladen 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 des Textbausteins in die Bibliothek verschoben wurde.

Fehlerkorrekturen

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

Version 1.0.0-rc01

3. November 2021

androidx.wear.watchface:watchface-*:1.0.0-rc01 wurde veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Dump() wurde von „adb shell dumpsys“ aufgerufen, das durch Ablaufmigrationen unterbrochen wurde. (087cf9e)

  • Achten Sie auf die richtige Reihenfolge von „writeDirectBootPrefs“. Wir möchten, dass „writeDirectBootPrefs“ immer nach „initStyleAndComplications“ ausgeführt wird. Andernfalls riskieren wir, dass die Initialisierung des UI-Threads verzögert wird.(37650ac)

  • Überprüfen Sie, ob Renderer.onDestroy aufgerufen wird. In dem Szenario, in dem der Renderer erstellt wurde, aber WF-init nicht abgeschlossen wurde und Engine.onDestroy aufgerufen wird, muss Renderer.onDestroy aufgerufen werden. (f9952dc)

  • Optimierung/Behebung von „isBatteryLowAndNotCharging“. Mit diesem Patch wird die Ersteinrichtung von isBatteryLowAndNotCharging früher verschoben, was bedeutet, dass sie parallel zu createWatchFace ausgeführt werden kann. Außerdem hören wir jetzt auch ACTION_POWER_DISCONNECTED. ddffd80

  • InteractiveWatchFaceClientImpl.isConnectionAlive muss nach dem Schließen auf "false" gesetzt sein (ab9774e).

Version 1.0.0-beta01

27. Oktober 2021

androidx.wear.watchface:watchface-*:1.0.0-beta01 wurde veröffentlicht. 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 wurde veröffentlicht. Version 1.0.0-alpha24 enthält diese Commits.

API-Änderungen

  • Klassen im Paket androidx.wear.watchface.complications wurden in ein neues wear:watchface:watchface-complications-Projekt verschoben. Hinweis: Das bedeutet, dass Sie diese Bibliothek in keine frühere Alphaversion von wear:watchface:watchface-complications-data aufnehmen können, da bei doppelten Klassen Fehler auftreten werden. (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<>-Attribute, 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öchten, können 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 wurde veröffentlicht. Version 1.0.0-alpha23 enthält diese Commits.

Neue Funktionen

Die Zifferblatt-Bibliothek ist jetzt eine einzelne 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 androidx.wear-Bibliotheken für Zifferblatt und Zusatzfunktionen in die Bibliotheksgruppe androidx.wear.watchface. (b25f3c0)
  • EditorRequest.canWatchFaceSupportHeadlessEditing hinzugefügt, um einem Kunden mitzuteilen, ob ein Zifferblatt-Editor die monitorlose Bearbeitung unterstützt. Beachten Sie, dass es dabei einige falsch negative Ergebnisse geben wird, da die Unterstützung in asop/1756809 hinzugefügt wurde. Es wird jedoch für alle zukünftigen Zifferblätter der richtige Wert zurückgegeben. (ca55590)
  • Renderer verfügt nun ü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, um sicherzustellen, dass InteractiveWatchFaceImpl eine Speicherbereinigung abruft.(fce4af8, b/199485839)