Wear-Zifferblatt

Apps für Smartwatches mit Wear OS by Google erstellen

Hinweis : Das Watch Face-Format ist ab dem 10. Juli 2024 für die Installation von Zifferblättern auf Geräten mit vorinstalliertem Wear OS 5 und ab dem 27. Januar 2025 für alle neuen bei Google Play veröffentlichten Zifferblätter erforderlich.

Weitere Informationen zu den Änderungen für Nutzer finden Sie in diesem Hilfeartikel.

Letzte Aktualisierung Stabile Version Release Candidate Beta-Ausgabe Alphaversion
18. September 2024 1.2.1 - - 1.3.0-alpha04

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von Wear hinzufügen möchten, müssen Sie Ihrem 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 App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:

Groovy

dependencies {
    // Use to implement wear watchfaces
    implementation "androidx.wear.watchface:watchface:1.2.1"

    // Use to implement wear watchface complications
    implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1"
    // (Kotlin-specific extensions)
    implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear.watchface:watchface-editor:1.2.1"

    // Can use to render complications.
    // This library is optional and watchfaces may have custom implementation for rendering
    // complications.
    implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1"
}

Kotlin

dependencies {
    // Use to implement wear watchfaces
    implementation("androidx.wear.watchface:watchface:1.2.1")

    // Use to implement wear watchface complications
    implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1"
    // (Kotlin-specific extensions)
    implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1"

    // Use to implement a watchface style and complication editor
    implementation("androidx.wear.watchface:watchface-editor:1.2.1")

    // Can use to render complications.
    // This library is optional and watchfaces may have custom implementation for rendering
    // complications.
    implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1"
}

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

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.3

Version 1.3.0-alpha04

18. September 2024

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

Neue Funktionen

  • Unterstützung für das Lazy-Loading von Symbolen in UserStyleSettings und UserStyleOptions hinzugefügt, was die Leistung beim Laden von Zifferblättern verbessert. (Iaf43d)
  • Es wurde eine Option hinzugefügt, über die ein aktualisierter Screenshot aufgenommen werden kann, wenn sich die Systemkonfiguration ändert (z.B. wenn sich die Sprache geändert hat).Watchface.setUpdateScreenshotOnConfigurationChange Diese Einstellung ist standardmäßig deaktiviert. (I765a1)

Fehlerkorrekturen

  • Die manuelle Kennzeichnung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies bei Verwendung von R8 mit AGP 7.3 oder höher (z.B. R8 Version 3.3) und für alle Builds bei Verwendung von AGP 8.1 oder höher (z.B. D8 Version 8.1) automatisch über die API-Modellierung erfolgt. Kunden, die AGP nicht verwenden, wird empfohlen, auf D8 Version 8.1 oder höher zu aktualisieren. Weitere Details findest du in diesem Artikel. (Ia60e0, b/345472586)

Version 1.3.0-alpha03

17. April 2024

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

API-Änderungen

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

Fehlerkorrekturen

  • Bisher wurde selectComplicationDataForInstant für alle Zeitachsen von toApiComplicationData aufgerufen, was bedeutete, dass der nachfolgende Test der Referenzgleichheit immer fehlschlug. Das bedeutete, dass die Zusatzfunktionen bei jedem Frame neu geladen wurden, was zu einem schnelleren Akkuverbrauch führte. (717406)

Version 1.3.0-alpha02

3. April 2024

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

Neue Funktionen

  • Wir verwenden jetzt die Referenzgleichheit, um „best“ 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 veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

Neue Funktionen

  • WatchFaceServices können gleichzeitig initialisiert werden und sollten daher ohne Status sein. Zu diesem Zweck haben wir StatefulWatchFaceService hinzugefügt, in dem ein von createExtra() erstelltes benutzerdefiniertes Extra an alle Overrides übergeben wird, die während der Initialisierung aufgerufen werden.
  • GlesRenderer2 hat jetzt eine Konstruktorüberladung, mit der Sie eine Liste von Attributen angeben können, die nacheinander mit eglChooseConfig ausprobiert werden sollen.

API-Änderungen

  • StatefulWatchFaceService unterstützt jetzt eine Überschreibung von getComplicationSlotInflationFactory, in die das von createExtra() erstellte benutzerdefinierte Extra übergeben wird. (I82d9f)
  • Bei einigen Zifferblättern müssen Hilfsdaten, die während createUserStyleSchema erstellt wurden, mit den anderen Initialisierungsmethoden geteilt werden. Da es keine bessere Alternative gab, haben Entwickler ihre WatchFaceServices in der Regel zustandsabhängig gemacht. Das ist gefährlich, da mehrere Instanzen gleichzeitig erstellt werden können, was zu Fehlern führen kann. Um dieses Problem zu beheben, haben wir StatefulWatchFaceService und StatefulWatchFaceRuntimeService eingeführt. Dabei wird ein benutzerdefinierter Typ von createExtra() erstellt und als Parameter an die verschiedenen Create-Methoden übergeben. (If8a99)
  • Wir haben getUserStyleFlavors zu InteractiveWatchFaceClient hinzugefügt, was vor allem für OEMs von Interesse ist. (I0f5d8)
  • GlesRenderer2 hat jetzt eine Konstruktorüberladung, mit der Sie eine Liste von Attributen angeben können, die nacheinander mit eglChooseConfig ausprobiert werden sollen. So können Sie beispielsweise zuerst eine Konfiguration mit Anti-Aliasing ausprobieren und bei Bedarf zu einer Konfiguration ohne Anti-Aliasing wechseln. (I1ba74)
  • Ab Android U wird Wear OS die Unterstützung für SystemDataSources.DATA_SOURCE_HEART_RATE hinzugefügt. Diese Zusatzfunktion unterstützt nur SHORT_TEXT-Zusatzfunktionen. Es wird jedoch empfohlen, dass die ComplicationSlot auch SMALL_IMAGE unterstützt, da OEMs anstelle des Livewerts einen Verknüpfung zu ihrer Gesundheits-App anzeigen können. (I34223)
  • Wir haben METADATA_KEY_CONFIG_RESTORE_SUPPORTED hinzugefügt, mit dem ab Android U festgelegt wird, was passiert, wenn das System aus einer Sicherung für die Zusatzfunktionen-Datenquelle mit METADATA_KEY_DATA_SOURCE_CONFIG_ACTION wiederhergestellt wird. Standardmäßig geht das System davon aus, dass der Dienst für die Zusatzfunktionen-Datenquelle die Sicherung aller Konfigurationsdaten unterstützt. Ist dies nicht der Fall, kann die Metadateneinstellung METADATA_KEY_DATA_SOURCE_CONFIG_ACTION auf „false“ gesetzt werden, wodurch der Zusatzfunktionen-Slot als nicht konfiguriert markiert wird. (I6c505)

Version 1.2

Version 1.2.1

24. Januar 2024

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

Fehlerkorrekturen

  • Ein Absturz auf 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 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 ähnelt RangedValueComplicationData, bezieht sich aber auf den Fortschritt bei der Erreichung eines Ziels, wobei „min“ implizit „0“ ist und der Wert größer als targetValue sein darf.
    • WeightedElementsComplicationData, das aus einem Array von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text/Titel/Bild besteht. Diese können als Kreisdiagramm dargestellt werden, wobei die Farben im Kontext aussagekräftig sein müssen, da in einer Zusatzfunktion in der Regel kein Platz für Labels vorhanden ist.
  • RangedValueComplicationData unterstützt jetzt optional ColorRanges. Normalerweise werden Zusatzfunktionen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben über die ComplicationDataSource festzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot nach Blau für die Temperatur.
  • SmallImages wird jetzt von fast allen ComplicationData-Typen unterstützt.
  • Wir haben ComplicationDisplayPolicy hinzugefügt, wo 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 Zusatzfunktionsanfrage von einem Zifferblatt in der Liste stammt, die durch die android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest des Anbieters bis zum ComplicationRequest#isForSafeWatchFace definiert wurde. Der Anbieter benötigt die Berechtigung com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um etwas anderes als „TargetWatchFaceSafety.UNKNOWN“ zu erhalten.
  • UserStyleFlavors ist keine experimentelle Funktion mehr.

Version 1.2.0-rc01

18. Oktober 2023

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

Neue Funktionen

  • SuspendingComplicationDataSourceService#onDestroy ist jetzt geöffnet. Die Unterstützung für die Standardwetterkomplikation des Systems wurde entfernt.

API-Änderungen

  • Rückgängig machen der Option „Neue Datenquelle für Wetter-Zusatzfunktionen bereitstellen“ (I6f335)

Version 1.2.0-beta01

23. August 2023

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

Neue Funktionen

  • Ab Android T unterstützt WearOS jetzt eine Standardkomplikation für das Wettersystem.

API-Änderungen

  • Wetter-Standardsystem-Fallback für Zusatzfunktionen hinzufügen (Ia0994)
  • Mit diesem Patch werden WatchFaceRuntimeService und WatchFaceControlClient.createWatchFaceRuntimeControlClient sowie Guava-Wrapper hinzugefügt. Dadurch wird die Unterstützung für Zifferblatt-Laufzeiten hinzugefügt. Das sind spezielle Zifferblätter, deren Definition aus einem anderen Paket geladen wird. Derzeit unterstützt WearOS nur die Laufzeit für das Android-Zifferblattformat. (I2799f)
  • Dieser Patch ist eine Fortsetzung von aosp/2636578, in dem wir die int-Definitionen umbenennen, damit Code, der von WatchFaceType, CanvasType, TapType oder ComplicationsSlotBoundsType abhängt, nicht geändert werden muss. (I4098b)
  • API-Dateien wurden aktualisiert, um die Unterdrückung der Kompatibilität zu kennzeichnen. (I8e87a, b/287516207)
  • Dieser Patch stellt WatchFaceType-Konstanten in WatchFaceTypes, CanvasType-Konstanten in CanvasTypes, TapType-Konstanten in TapTypes und ComplicationsSlotBoundsType-Konstanten in ComplicationsSlotBoundsType bereit. (I3b85a, b/288750666)
  • WatchFace.OverlayStyle wird nur sehr selten verwendet und wird von OEMs nicht gut unterstützt. Daher wird die Unterstützung für WatchFace.OverlayStyle eingestellt und die Funktion wird zu einem späteren Zeitpunkt entfernt. (I7344a)

Version 1.2.0-alpha09

21. Juni 2023

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

Neue Funktionen

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

API-Änderungen

  • Es wurden dynamische Typen für die zurückgelegte Strecke, die verbrannten Kalorien und die bewältigten Stockwerke pro Tag hinzugefügt. Schlüssel für Quellen zur Plattformintegrität sind jetzt unter PlatformHealthSources.Keys (Ib7637) zu finden.
  • Implementiere PlatformDataProvider, um Herzfrequenz und tägliche Schrittzahl bereitzustellen. Die SensorGateway-Benutzeroberfläche wird aus der öffentlichen API entfernt. (I55b84)
  • Benenne StateEntryValue in DynamicDataValue um und aktualisiere die Status-APIs, damit sie DynamicDataKey verwenden. (If1c01)
  • AppDataKey zum Zugriff auf den von der App gesendeten Status hinzufügen; PlatformDataKey zum Zugriff auf Plattformdaten hinzufügen; Namespaceunterstützung in StateStore hinzufügen (I7985e)
  • Die enable/disablePlatformSource-Methoden wurden aus DynamicTypeEvaluator entfernt. Der Anrufer sollte für Updates verantwortlich sein. (I78c6d)
  • Größe gebundener Datentypen begrenzen (Ie2966)

Version 1.2.0-alpha08

19. April 2023

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

Neue Funktionen

  • Ab Android T können Anbieter von Zusatzfunktionen mit der Berechtigung com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE 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 unterschiedliche Typen für vertrauenswürdige und nicht vertrauenswürdige Zifferblätter bereitstellen kann.

API-Änderungen

  • Übertragen der @Deprecated-Klasse auf die Property (I882d1, b/271441831)
  • Name des Wertparameters für Enum.valueOf geändert (Ia9b89)
  • Mehr geworfene Ausnahmen von enum valueOf (I818fe)
  • Wir haben renderWatchFaceToSurface zugunsten von createRemoteWatchFaceView entfernt. createRemoteWatchFaceView basiert auf SurfaceControlViewHost und ermöglicht es dem Aufrufer, eine Ansicht aus dem Zifferblatt einzubetten, die gerendert wird, wenn der Client RemoteWatchFaceViewHost#renderWatchFace aufruft. (Ib311d)
  • Wir haben renderWatchFaceToSurface zu InteractiveWatchFaceClient, HeadlessWatchFaceClient und EditorSession hinzugefügt. Das ist in der Regel leistungsfähiger als das Rendern in eine Bitmap. (Ieacad)
  • ObservableStateStore wurde in StateStore umbenannt. (Ieb0e2)
  • Anstelle von Konstruktorargumenten wurde DynamicTypeEvaluator.Builder hinzugefügt, um mehr optionale Argumente zuzulassen, darunter ObservableStateStore, das jetzt standardmäßig auf einen leeren Store verweist. (I6f832)
  • Die Reihenfolge der Parameter in DynamicTypeEvaluator wurde überarbeitet. (Ic1ba4)
  • Der DynamicTypeEvaluator.bind-Methoden wurde „Executor“ hinzugefügt. (I346ab)
  • Wir haben der BoundDynamicType-Methode die startEvaluation-Methode hinzugefügt, um die Auswertung nach der Bindung des dynamischen Typs auszulösen. (I19908)
  • Anbieter von Zusatzfunktionen mit der Berechtigung 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 veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.

Neue Funktionen

  • Ab Android T können OEMs feststellen, ob eine Zusatzfunktionsanfrage von einem Zifferblatt in der Liste stammt, die durch die android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest des Anbieters bis zum ComplicationRequest#isForSafeWatchFace definiert wurde. Der Anbieter benötigt die Berechtigung com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um andere Daten als TargetWatchFaceSafety.UNKNOWN zu empfangen.

  • Ab Android T ist auch CustomValueUserStyleSetting2 verfügbar, das bis zu 12,5 KB aufnehmen kann. Bisher war das Limit für CustomValueUserStyleSetting 1 KB. Trotz der erhöhten Größenbeschränkungen sollten Entwickler von Zifferblättern 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 den an EGL14.eglCreateContext übergebenen EGL14.EGL_CONTEXT_CLIENT_VERSION festlegen können. (I2a83e)
  • Die Zifferblatt-Bibliotheken wurden von java.util.function.Consumer zu androidx.core.util.Consumer migriert. (I273f5)
  • Mehr geworfene Ausnahmen von KT-Property-Accessors (Iff9d9)
  • Wir haben InteractiveWatchFaceClient.isComplicationDisplayPolicySupported hinzugefügt, damit der Client feststellen kann, ob er die Unterstützung im Namen alter Zifferblätter emulieren muss oder nicht. (I24c89)
  • Wir haben uns entschieden, dass isForSafeWatchFace ein Drei-Status-IntDef 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. Bei Datenquellen im System-Image wird „true“ zurückgegeben, wenn sich das anfragende Zifferblatt in der Liste der sicheren Zifferblätter befindet, die von der Datenquelle in ihrem Manifest angegeben wurde. (I0cbb6)
  • Für Android T haben wir CustomValueUserStyleSetting2 hinzugefügt, das bis zu 12,5 KB aufnehmen kann. Bisher war das Limit für CustomValueUserStyleSetting 1 KB. (I0b100)

Version 1.2.0-alpha06

25. Januar 2023

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

Neue Funktionen

  • Wir arbeiten daran, die Unterstützung für Plattformbindungen für Zusatzfunktionen hinzuzufügen. Diese Funktion ist noch nicht verfügbar.
  • Wir haben die XML-ComplicationSlot-Unterstützung für die neuen Zusatzfunktionen GOAL_PROGRESS und WEIGHTED_ELEMENTS hinzugefügt.

Fehlerkorrekturen

  • Ein Leck wurde behoben, durch das der Zifferblatteditor auf Samsung-Geräten nicht richtig veröffentlicht wurde. (3b5987)
  • Ein Fehler wurde behoben, durch den die Zusatzfunktionen beim Wechseln zwischen einem Zifferblatt mit mehreren Favoriten manchmal nicht richtig angezeigt wurden. (b38ece)
  • Ein Serialisierungsfehler mit perOptionScreenReaderNames, der zu Abstürzen des Zifferblatts führte, wurde behoben. (e9f466)

Version 1.2.0-alpha05

7. Dezember 2022

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

Neue Funktionen

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

  • Wir verbessern die Screenreader-Unterstützung für ListOption und ComplicationSlotsOption durch das Hinzufügen eines screenReaderName-Felds. Hinweis: Vor Android T wird dieses Feld von Companion-Editoren ignoriert.

API-Änderungen

  • Wir haben ListOption und ComplicationSlotsOption ein neues optionales Feld screenReaderName hinzugefügt, das von Mitbearbeitern verwendet werden kann. Auf Geräten mit einer älteren Android-Version wird es von Mitbearbeitern ignoriert. (I75326)
  • Ab Android T werden in einer Stilhierarchie jetzt mehrere ComplicationSlotsUserStyleSettings unterstützt, solange jeweils nur eine davon aktiv sein kann. Wir haben UserStyleSchema die Dienstprogrammfunktion findComplicationSlotsOptionForUserStyle hinzugefügt, mit der Sie die aktive ComplicationSlotsOption (falls vorhanden) finden können. (Ic2b06)
  • RangedValuesTypes wurden in das zugehörige Objekt von RangedValueComplicationData gezogen und in TYPE_UNDEFINED, TYPE_RATING umbenannt. Außerdem wurde ein neues TYPE_PERCENTAGE hinzugefügt. (I55d02)
  • Die experimentelle Funktion DynamicFloat wurde in FloatExpression umbenannt und als @hide gekennzeichnet. (Idf4f1)
  • @JvmDefaultWithCompatibility-Anmerkung hinzufügen (I8f206)

Version 1.2.0-alpha04

9. November 2022

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

Neue Funktionen

  • Für Android T haben wir die Unterstützung für zwei neue Zusatzfunktionen hinzugefügt: GoalProgressComplicationData und WeightedElementsComplicationData.
  • GoalProgressComplicationData ähnelt RangedValueComplicationData, aber sein Wert darf über das Ziel hinausgehen. Bei RangedValueComplicationData ist der Wert auf den Bereich [min .. max] begrenzt. Das hat Auswirkungen auf das visuelle Design, die möglicherweise nicht für alle Zifferblätter geeignet sind.
  • GoalProgressComplicationData unterstützt jetzt auch Kreisdiagramme und ähnliche Aufschlüsselungen einfacher Daten.
  • RangedValueComplicationData unterstützt jetzt optional ColorRamps.
  • Für Android T haben wir ComplicationPersistencePolicy und setCachePolicy zu ComplicationData hinzugefügt. Damit kann ein Anbieter derzeit festlegen, ob eine Zusatzfunktion beibehalten wird (d. h., ob sie nach einem Neustart im Cache gespeichert wird). Für die meisten Zusatzfunktionen muss die Cache-Steuerung nicht festgelegt werden. Dies kann jedoch bei einigen Zusatzfunktionen, die häufig aktualisiert werden (z. B. Zusatzfunktionen für Gesundheitsdaten), Probleme mit veralteten Daten beheben. Außerdem haben wir ComplicationDisplayPolicy hinzugefügt, wobei 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 Versionen mehr. (Ica9e2)
  • ComplicationPersistencePolicy und ComplicationDisplayPolicy sind jetzt korrekt als T-APIs gekennzeichnet. (I31d88)
  • Der verworfene ComplicationSlotOverlay-Konstruktor hat jetzt 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 wir sie mit @JvmDefaultWithCompatibility (Id94fc) annotiert haben.
  • Die experimentellen ProtoLayoutComplicationData und ListComplicationData wurden entfernt. Die Entwicklergeschichte für diese war unklar. Wir hoffen, sie in Zukunft noch einmal zu besprechen. (I9df05)
  • Wir haben ValueType wieder zu RangedValueComplicationData hinzugefügt. WeightedElementsComplicationData unterstützt jetzt eine Hintergrundfarbe. Wir haben DiscreteRangedValueComplicationData entfernt, da seine Funktionen Teil von WeightedElementsComplicationData sind. (I6446c)

Fehlerkorrekturen

  • Fügen Sie das isForScreenShot in den Gleichheitszeichen- und Hash-Code ein. Achten Sie darauf, dass onRenderParametersChanged den korrekten Wert isForScreenshot erhält (I04a41).
  • Lecks von WatchFaceControlService von headless-Clients wurden behoben. (e90e00)

Version 1.2.0-alpha03

5. Oktober 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha03 wird 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

  • UserStyleSchema.userStyleSettings wurde eingestellt, da rootUserStyleSettings nicht mehr experimentell ist (Ie96e3)
  • rootUserStyleSettings aus der Testphase entfernen (I8d6b3)
  • Wir haben WatchFaceColors als experimentell gekennzeichnet, da es nicht von allen Systemen unterstützt wird (I6d75d).
  • Machen Sie DisconnectReasons in der öffentlichen API verfügbar, damit sie mit IntDef funktioniert. (I791f8)

Fehlerkorrekturen

  • Schließen Sie alle geöffneten Editoren, wenn SysUI dies tut. Wenn SysUI nicht mehr funktioniert und der Editor für das Zifferblatt nicht geschlossen wird, kann das Zifferblatt in einem inkonsistenten Zustand bleiben, da das System Änderungen am Nutzerstil über SysUI speichert.(ba762a
  • Behebung eines Speicherlecks in ComplicationDataSourceInfoRetriever, bei dem eine Fortsetzung einer Kotlin-Coroutine als GC-Stamm fungierte und die Editoraktivität beibehielt.(33ee06)

Version 1.2.0-alpha02

21. September 2022

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

Neue Funktionen

  • Einige Zifferblätter haben eine Konfiguration außerhalb des UserStyle, die sich optisch auf das Zifferblatt auswirkt, z.B. die Auswahl eines Hintergrundfotos. Wir haben Renderer.sendPreviewImageNeedsUpdateRequest hinzugefügt, mit dem das Zifferblatt ein aktualisiertes Vorschaubild anfordern kann. Hinweis: Dazu ist ein entsprechendes Systemupdate erforderlich.

  • Außerdem haben wir eine API für Zifferblätter hinzugefügt, über die die Farben dem System zur Verfügung gestellt werden können, das dann die Farbpalette entsprechend auswählen kann. Hinweis: Diese Funktion wurde in einem Folge-Patch als experimentell gekennzeichnet.

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

API-Änderungen

  • Der Hintergrundmanager kann sich manchmal von einer Engine lösen und eine andere erstellen. Wir haben eine DisconnectReason-Integritätsprüfung hinzugefügt und ClientDisconnectListener um eine neue Methode mit einer DisconnectReason erweitert, damit der Listener die Entsperrung des Motors beobachten kann. (I45cce)
  • Dem Konstruktor von ComplicationSlotOverlay wurden zwei optionale Parameter nameResourceId und screenReaderResourceId hinzugefügt (I157e8)
  • Wir haben einen Guava-Wrapper für die neue Überladung von getOrCreateInteractiveWatchFaceClient mit einem PreviewImageUpdateRequestedListener hinzugefügt. (Ic31f0)
  • Wir haben Renderer.sendPreviewImageNeedsUpdateRequest hinzugefügt. Dieser Status ist nützlich für Zifferblätter, die einen Status außerhalb von UserStyleSchema haben, der sich auf ihr Aussehen auswirkt (z. B. ein Zifferblatt mit einem auswählbaren Hintergrundbild). Auf der Clientseite haben wir PreviewImageUpdateRequestedListener als optionalen Parameter zu getOrCreateInteractiveWatchFaceClient hinzugefügt, um diese Anfragen zu beobachten. (Iff44a)
  • Wir haben die API für die Freigabe von WatchFaceColors vereinfacht. Es gibt jetzt eine einfache Eigenschaft namens watchFaceColors im Renderer, die vom Zifferblatt festgelegt werden kann. Diese sollte bei Stiländerungen nach Bedarf aktualisiert werden. Statt WallpaperManager für Farbänderungen zu verwenden, haben wir OnWatchFaceColorsListener zu InteractiveWatchFaceClient hinzugefügt. (I490bc)
  • Wir haben die Klasse WatchFaceColors hinzugefügt, die die drei wichtigsten Zifferblattfarben enthält, und dem Renderer die offenen Methoden watchfaceColors und notifyWatchFaceColorsChanged hinzugefügt. So kann das System die Farben des Zifferblatts über WallpaperManager.getWallpaperColors abrufen. (I3d611)
  • ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData (und die experimentellen DiscreteRangedValueComplicationData, GoalProgressComplicationData und WeightedElementsComplicationData) unterstützen jetzt alle SmallImages. Wenn auf einem Zifferblatt eine Zusatzfunktion in mehreren Farben gerendert werden soll, kann jetzt ein mehrfarbiges SmallImage verwendet werden. Bisher war nur ein einfarbiges Bild möglich. (I257df)
  • PreviewImageUpdateRequestedListener in eine Consumer<> umwandeln (Ia875d)
  • Benutzerdefinierten SAM-Typ (Single Abstract Method, einzelne abstrakte Methode) OnWatchfaceColorsListener durch generischen Java-SAM-Typ (Consumer) ersetzen (I0c489)
  • Die alten getOrCreateInteractiveWatchFaceClient- und listenableGetOrCreateInteractiveWatchFaceClient-Methoden, für die keine PreviewImageUpdateRequestedListener angegeben wird, wurden eingestellt. (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 veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Wir haben die experimentelle Unterstützung für verschiedene neue Zusatzfunktionen hinzugefügt. Dieser Bereich befindet sich in aktiver Entwicklung. Diese neuen Formate können sich ohne vorherige Ankündigung ändern. Derzeit gibt es keine Renderer-Unterstützung von CanvasComplicationDrawable.
  • Außerdem haben wir den Zusatzoptionen für Zusatzfunktionen 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 sind manchmal schwer zu antippen. Um dies zu vermeiden, haben wir die Unterstützung für Ränder eingeführt, die den berührbaren Bereich vergrößern, ohne das Rendering zu beeinträchtigen. Sofern nicht anders angegeben (entweder im Code oder über XML), haben ComplciationSlots keine Ränder. (I14089)
  • Die Signatur von getComplicationSlotInflationFactory(CurrentUserStyleRepository) wurde geändert, um eine nicht nullwertige Instanz der Standardklasse zurückzugeben. Es war ein Fehler, vorher „null“ zurückzugeben. Dadurch wird der API-Vertrag nur klarer. (I0fcc0)
  • Wir haben der Methode WatchFaceService.getComplicationSlotInflationFactory das Argument currentUserStyleRepository hinzugefügt, um sie mit createComplicationSlotsManager in Einklang zu bringen. (I2ddd2)
  • UserStyleFlavors sind keine experimentellen Funktionen mehr. (I69cdc)
  • Wir haben die experimentelle ValueType aus RangedValueComplicationData entfernt und stattdessen die experimentelle DiscreteRangedValueComplicationData eingeführt. Diese entspricht RangedValueComplicationData mit Ausnahme des Ganzzahlbereichs und des Ganzzahlwerts. Außerdem haben wir die experimentelle Funktion GoalProgressComplicationData eingeführt. Sie ähnelt RangedValueComplicationData, bezieht sich aber auf den Fortschritt bei einem Zielvorhaben, wobei der Mindestwert implizit null ist und der Wert größer als targetValue sein darf. Hinweis: Für alle RangedValue-Varianten muss mindestens eine der folgenden Optionen angegeben werden: „monochromeImage“, „text“ oder „title“. (I9590c)
  • Wir haben boundsWithMargins aus ComplicationSlotState entfernt, da es für Systemsoftware keinen Anwendungsfall gibt. (I42e26)
  • Wir haben experimentelle Unterstützung für WeightedElementsComplicationData hinzugefügt, die aus einer Reihe von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text/Titel/Bild besteht. Diese können als Kreisdiagramm dargestellt werden, wobei die Farben im Kontext aussagekräftig sein müssen, da in einer Zusatzfunktion in der Regel kein Platz für Labels vorhanden ist. (I87eea)
  • Mit dem experimentellen ColorRamps, das optional von RangedValueComplicationData und GoalProgressComplicationData verwendet wird, können Sie jetzt eine Sequenz von bis zu sieben Farben und ein Flag angeben, das angibt, ob die Farben weich überblendet oder gleich große Farbschritte gerendert werden sollen. (I9f5bf)
  • RangedValueComplicationData.drawSegmented wurde in valueType geändert. Dies ist ein Ganzzahltyp mit einer entsprechenden ValueType IntDef, die dem Bereichswert eine semantische Bedeutung verleiht und vom Komplikations-Renderer verwendet werden kann, um das Styling zu beeinflussen. (I0616b)
  • Wir haben RangedValueComplicationData die experimentelle Unterstützung für optionale ColorRanges hinzugefügt. Normalerweise werden Zusatzfunktionen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben über die ComplicationDataSource festzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot nach Blau für die Temperatur. (I5153a)
  • Wir haben RangedValueComplicationData einen experimentellen drawSegmented-Hinweis hinzugefügt. Dies signalisiert Renderern, den Bereichsindikator mit Segmenten zu zeichnen, wobei 1 Segment = 1 Einheit entspricht. (I7d7c1)

Fehlerkorrekturen

  • Sie können ComplicationSlotBounds jetzt relativ zu einem vordefinierten Bildschirmkoordinatensystem definieren. (I0985d)

Version 1.1

Version 1.1.1

10. August 2022

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

  • Diese Version enthält Fehlerkorrekturen. Nutzern von Version 1.1.0 wird dringend empfohlen, ein Upgrade durchzuführen.

Fehlerkorrekturen

  • Die Initialisierung des Zifferblatts erfolgt asynchron. Wenn eine Zusatzfunktion empfangen wird, bevor das Zifferblatt bereit ist, wird sie in die Liste pendingInitialComplications aufgenommen und später angewendet. Leider wurde pendingInitialComplications zu früh angewendet. Das bedeutet, dass während der Initialisierung des Zifferblatts noch einige Zeit vergangen ist, in der Zusatzfunktionen auf pendingInitialComplications angewendet und ignoriert wurden. Dieses Problem wurde inzwischen behoben. Außerdem behebt dieser Patch einen Fehler, bei dem ComplicationRenderer fälschlicherweise versuchte, Platzhalter asynchron zu laden, was fehlschlug und dazu führte, dass die Grafik für die Zusammenstellung nie aktualisiert wurde. Außerdem behebt dieser Patch einen hoffentlich theoretischen Fehler, bei dem mehrere pendingInitialComplications zusammengeführt werden müssen. (0d03ba3)

  • Behebung eines potenziellen Deadlocks in InteractiveInstanceManager, bei dem getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance den Sperrmechanismus länger als nötig gehalten hat. Normalerweise sollte engine.setUserStyle schnell ausgeführt werden. Wenn das aus irgendeinem Grund nicht der Fall ist, kann es zu einem Deadlock oder einer ANR kommen. Mit diesem Patch wird unnötige Arbeit aus dem Sperrmechanismus entfernt, wodurch das Risiko einer Deadlock-Situation verringert wird.(5a2adca)

  • Behebung mehrerer Probleme, bei denen WatchFaceService beibehalten wurde Der WakeLock kann manchmal die WatchFaceService beibehalten. Durch Hinzufügen eines release()-Aufrufs lässt sich das Problem beheben. Außerdem kann StateFlows WatchFaceService beibehalten, wodurch das zugrunde liegende CoroutineScopes aufgehoben wird.(fd48138)

  • Fügen Sie awaitDeferredWatchFace* Zeitüberschreitungen hinzu und korrigieren Sie watchfaceOverlayStyle NullPointerException. Unter normalen Umständen sollte es nicht zu einem Zeitüberschreitungsfehler kommen, auch nicht nach einer Neuinstallation und in DirectBoot-Szenarien, in denen die CPU stark ausgelastet ist. Außerdem wurde ein Null-Objekt-Pointer behoben, der auftrat, wenn getWatchfaceOverlayStyle nach close() aufgerufen wurde.(a4c3a5a)

Version 1.1.0

15. Juni 2022

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

Wichtige Änderungen seit Version 1.0.0

Verbesserte Bearbeitung:

  • Wir haben die Unterstützung für hierarchische Schemas hinzugefügt, mit denen eine Stilhierarchie über die Benutzeroberfläche des Editors beschrieben werden kann. Sie können jetzt separate Symbole für die Verwendung im Zifferblatt und im Companion-Editor angeben.
  • Es gibt eine optionale Unterstützung für mehrere Instanzen eines Zifferblatts. Jede Instanz hat eine eindeutige ID, die für alle API-Oberflächen verfügbar ist.
  • Sie können jetzt für ComplicationSlots visuell lesbare Namen für die Verwendung in Editoren angeben.
  • Experimentelle Unterstützung für Stilvarianten, eine ausgewählte Sammlung von Stilen, die im Companion-Editor angezeigt werden.
  • Wenn beim Bearbeiten zwei Zifferblattinstanzen geladen werden, können sie jetzt Ressourcen gemeinsam nutzen und so Speicher sparen.
  • Wenn Sie im Zifferblatt-Editor eine Zusatzfunktion auswählen, ist der aktuelle Anbieter jetzt vorausgewählt.

Verbesserte Zusatzfunktionen:

  • Sie können jetzt die ComplicationType für die primäre und sekundäre Datenquelle angeben, was Entwicklern mehr Flexibilität bei der sofort einsatzbereiten Nutzung bietet.
  • Wir haben ComplicationDataTimeline hinzugefügt, das eine Sequenz von zeitgesteuerten Daten bereitstellt, die an das Zifferblatt gesendet werden. Diese Daten können im Cache gespeichert und automatisch aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine.
  • Die ComponentName des Zusatzanbieters ist Teil der ComplicationData.
  • Zusatzfunktionen werden jetzt im Cache gespeichert, was den Wechsel zwischen Zifferblättern erleichtert.

Weitere Änderungen:

  • UserStyleSchema und ComplicationSlots können jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern und ermöglicht schnellere Metadatenabfragen vom 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 wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Neue Funktionen

  • Wir haben die Nutzerfreundlichkeit der XML-Unterstützung für Zifferblätter optimiert, sodass sich ComplicationSlotBounds und unterstützende Referenzen jetzt einfacher angeben lassen. Die Tests mit der Zusatzfunktion „Ränder“ BoundingArc werden fortgesetzt und die Funktion wird bis drawHighlight weitergeleitet. Die Verwendung wird derzeit jedoch nicht empfohlen.

API-Änderungen

  • Wir haben eine experimentelle Überladung von drawHighlight hinzugefügt, die einen BoundingArc-Parameter akzeptiert. (I705f8)
  • In der XML-Datei für Zifferblätter werden jetzt Ressourcenverweise unterstützt. So können Sie dieselben Konstanten sowohl in XML als auch in Ihrem Code verwenden. (I3ef61)
  • Sie können ComplicationSlotBounds jetzt in Form von center_x, center_y, size_x und size_y definieren. Mithilfe von Ressourcenreferenzen können jetzt auch andere Einheiten (z.B. dp) verwendet werden. (Iace98)

Fehlerkorrekturen

  • Behebung eines Problems bei runBlockingWithTracing, bei dem Aufgaben im falschen Kontext ausgeführt wurden (4f595fe)
  • Machen Sie BaseEditorSession.close synchron. Das Problem bei der asynchronen Ausführung von BaseEditorSession.close ist, dass wir die ComplicationDataSourceInfoRetriever zu spät freigeben, was zu Warnspam in logcat führt. Dies war wahrscheinlich harmlos, aber Logcat-Spam ist ablenkend und sollte vermieden werden.(35a5308)

Version 1.1.0-beta02

11. Mai 2022

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

Neue Funktionen

  • Wir haben experimentellen Support für neue ComplicationData-Typen hinzugefügt. Diese sind noch nicht einsatzbereit, aber wir arbeiten daran.

API-Änderungen

  • Wir haben BoundingArc hinzugefügt, eine experimentelle Klasse, die die Geometrie eines Zusatzbereichs an der Seite beschreibt. Dieser wurde ComplicationSlot hinzugefügt und an ComplicationSlotState und WatchFaceMetadataClient angeschlossen. (I61a40)
  • Es ist jetzt möglich, Einstellungen in UserStyleSetting-XML-Dateien zu übernehmen. So können Sie die Ausführlichkeit reduzieren und eine Einstellung für mehrere Zifferblätter verwenden. (Ief841)
  • Wir haben zwei neue experimentelle Typen von ComplicationData hinzugefügt: ListComplicationData und ProtoLayoutComplicationData. Derzeit gibt es keine Renderingunterstützung für diese beiden Typen und WearOS erkennt sie nicht, wenn sie einem ComplicationDataSource's-Manifest hinzugefügt werden. (I1811c)

Fehlerkorrekturen

  • Fehler bei der Serialisierung des Typs TimeLineEntry behoben Der Typ TimeLineEntry wurde nicht serialisiert. Das bedeutete, dass im Cache gespeicherte TimeLineEntries vom Typ „NoData“ fälschlicherweise als vom Typ der übergeordneten Zusatzfunktion interpretiert wurden, was zu NPEs führte, wenn auf nicht vorhandene erforderliche Felder zugegriffen wurde. (55ffdf5)
  • Fehler behoben, durch den in setComplicationData Zeitachsenfelder gelöscht wurden(fb392f5)
  • Ein Fehler wurde behoben, durch den runBlockingWithTracing sehr selten zu einem Null-Pointer-Fehler führte(12ca62e).
  • Es wurde ein Fehler behoben, durch den manchmal ClassNotFoundException: android.support.wearable.complications.ComplicationText angezeigt wurde, wenn eine Zusatzfunktion empfangen wurde.(217942d9)
  • Ein Fehler in GlesRenderer.backgroundThreadInitInternal wurde behoben, bei dem onBackgroundThreadGlContextCreated nur aufgerufen wurde, wenn EGL14.eglCreateContext aufgerufen wurde. Ein weiterer Fehler wurde behoben, bei dem ein visueller Fehler im Screenshot durch verticalFlip verursacht wurde.(c674ad2)
  • Korrektur der WatchFaceService-XML-Versionsprüfung, da die Daten aus dem falschen Paket geladen wurden (dfa06f3)
  • Für das Platzhalter-Leiterformat wird jetzt ein inneres Bündel verwendet. Wir möchten nicht, dass durch Platzhalter vorhandene Zifferblätter beschädigt werden, die die ausgeblendete innere a.s.w.c.ComplicationData verwenden. Bisher wurde der Platzhalter im Wireformat von NoDataComplication-Daten in den üblichen Feldern gespeichert. Das war problematisch, da alte Zifferblätter den Platzhalter-String renderten, was nicht beabsichtigt war. Stattdessen verwenden wir jetzt ein internes 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 veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

API-Änderungen

  • Jetzt werfen WatchFaceMetadataClient-Methoden (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) und HeadlessWatchFaceClient.getUserStyleFlavors eine nicht geprüfte RuntimeException anstelle von WatchFaceException. (I0718a)
  • WatchFaceMetadataClient.WatchFaceException wurde aus der Klasse entfernt, damit es wiederverwendet werden kann. (I4e869)

Fehlerkorrekturen

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

Version 1.1.0-alpha05

6. April 2022

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

Neue Funktionen

  • Sie können jetzt anhand von ComplicationData.dataSource sehen, welche Datenquelle eine ComplicationData gesendet hat. Einige Zifferblätter können diese Informationen verwenden, um die Anzeige von Zusatzfunktionen anzupassen. (I44a73)

API-Änderungen

  • Renderer.CanvasRenderer und Renderer.GlesRenderer wurden zugunsten von Renderer.CanvasRenderer2 und Renderer.GlesRenderer2 eingestellt. Diese unterstützen SharedAssets, das an die Rendermethoden übergeben wird. Für die Java-Interoperabilität haben wir ListenableCanvasRenderer2 und ListenableGlesRenderer2 eingeführt. (I31ffa)
  • @WatchFaceFlavorsExperimental kann jetzt Varianten definieren – vorkonfigurierte Liste mit stilisierten Zifferblättern (I04dd0)
  • Renderer.sharedAssets ist jetzt ein StateFlow und wir haben die nicht verwendete Renderer.SharedAssetsFactory (I12ac5) entfernt.
  • UserStyleSchema.userStyleSettings ist nicht mehr eingestellt (Iba7e3)
  • Wir haben HeadlessWatchFaceClient.getUserStyleSchemaDigestHash hinzugefügt, mit dem ein HeadlessWatchFaceClient den relativ geringen Overhead vermeiden kann, der durch das Übergeben des Schemas über AIDL vor dem Berechnen des Hashwerts entsteht. (I33597)
  • Wir haben isUserStyleSchemaStatic zu WatchFaceMetadataClient hinzugefügt. Dieser Wert ist nur dann „wahr“, wenn sich UserStyleSchema nur dann ändert, wenn das Zifferblatt-APK aktualisiert wird. (I45a3f)
  • Wir haben getDigestHash zu UserStyleSchema hinzugefügt, wodurch ein Hashwert für das Schema berechnet wird. So lässt sich effizient feststellen, ob sich UserStyleSchema geändert hat. (I2063d)
  • METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED in METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED umbenannt (I9ba5d)
  • UserStyleSetting.OnWatchEditorData wurde in UserStyleSetting.WatchFaceEditorData umbenannt. Es 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 wird veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.

API-Änderungen

  • Aktuelle ComplicationData-Daten sind möglicherweise nicht immer verfügbar (z. B. abgelaufene zwischengespeicherte Zusatzdaten). Deshalb haben wir NoDataComplication um einen optionalen Platzhalter für Zusatzdaten erweitert und ComplicationText.PLACEHOLDER, MonochromaticImage.PLACEHOLDER, SmallImage.PLACEHOLDER und PhotoImage.PLACEHOLDER hinzugefügt, die nur im Kontext eines NoDataComplicationData-Platzhalters verwendet werden dürfen. Wenn diese Option ausgewählt ist, werden diese Platzhalter mit grauen Rechtecken/Bogen gerendert. (I6285d)
  • Wir haben ComplicationData.getNextChangeInstant hinzugefügt. Dieser Wert gibt an, wann nach dem Referenzzeitpunkt das nächste Feld der Zusatzfunktion geändert werden kann. Dieser Wert wird intern verwendet, um Frames für Zusatzfunktionsupdates zu planen. Wenn sich ein Zifferblatt beispielsweise normalerweise einmal pro Minute aktualisiert, wird es durch die Einstellung der Stoppuhr-Komplikation einmal pro Sekunde aktualisiert. (I7ceb2)
  • EditorSession.watchFaceId kann jetzt auf allen API-Ebenen verwendet werden. Außerdem stimmt der Wert jetzt immer mit WatchState.watchFaceInstanceId überein. (I323b9)
  • Die getPendingIntentForTouchEvent API ist nicht mehr erforderlich, da das zugrunde liegende Problem im Framework behoben wurde. Alle zugehörigen APIs wurden daher entfernt. Bei Zifferblättern muss nichts Besonderes getan werden, damit PendingIntents ausgelöst wird, auch wenn die Startbildschirmtaste vor Kurzem gedrückt wurde. (I1f2e8)
  • Wir haben RendererParameters.isForScreenShot hinzugefügt, das „wahr“ ist, wenn das Rendern für einen Screenshot erfolgt. Einige Zifferblätter mit Animationen benötigen diese Informationen, um Anpassungen vorzunehmen und so die besten Ergebnisse zu erzielen. (I96d99)
  • Wir haben WatchFaceExceptionReason zu WatchFaceException hinzugefügt, um Ihnen einen besseren Überblick über das Problem zu geben. (I01d15)
  • ComplicationDataSourceService.onImmediateComplicationRequest wurde entfernt und stattdessen ComplicationRequest.immediateResponseRequired hinzugefügt, um anzuzeigen, dass der Anbieter schnell reagieren muss (idealerweise in weniger als 100 ms). Diese Funktion ist durch die Berechtigung com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE geschützt. (Ie6b23)
  • Die Nullbarkeit in „core“ und „appcompat“ wurde an Tiramisu DP2 (I0cbb7) angepasst.

Fehlerkorrekturen

  • Die Smartwatch-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 veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.

API-Änderungen

  • Wir haben experimentelle Unterstützung für hierarchische Stilschemata hinzugefügt. Wir haben androidx.wear.watchface.style.UserStyleSetting.Option die neue Property „childSettings“ hinzugefügt, die anfangs nur von ListOption verwendet wird. So kann eine Stilhierarchie für die Verwendung in Editor-Benutzeroberflächen 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 als neuen optionalen Konstruktorparameter für CanvasRenderer eingeführt (Standardwert ist „false“). Wenn dieser Parameter auf „true“ gesetzt wird, wird der Canvas mit der Hintergrundtonfarbe gelöscht. (Ie01e5)
  • Der Metadatenschlüssel androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED wurde hinzugefügt, mit dem Datenquellen für Zusatzfunktionen angeben können, dass sie ohne Konfiguration einen Standardwert bereitstellen können (Icc0d4)
  • Beim Bearbeiten eines Zifferblatts gibt es häufig sowohl eine interaktive als auch eine headless-Instanz. Um Speicherplatz 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 sind nicht mehr unterstützt. Sie sollten nicht festgelegt werden, da dies zu undefiniertem Verhalten führen würde. (I0d9e7)
  • Wir haben ComplicationSlot.Builder die Variablen setNameResourceId und setScreenReaderNameResourceId hinzugefügt, die auf Stringressourcen verweisen, sowie die entsprechenden Getter in androidx.wear.watchface.client.ComplicationSlotState. So kann das System die Namen von ComplicationSlots abrufen, um sie in Editoren und Screenreadern zu verwenden. (If6c6a)
  • WatchfaceMetadataClient.getUserStyleSchema und getComplicationSlotMetadataMap geben jetzt WatchFaceException statt RemoteException zurück. (I86f11)
  • onSynchronousComplicationRequest und zugehörige Funktionen in ComplicationDataSourceService wurden in onImmediateComplicationRequest umbenannt usw. (I87ba0)
  • Zifferblatt-Editoren haben viel weniger Bildschirmfläche als Companion-Editoren. Daher ist es sinnvoll, unterschiedliche Symbole für Zifferblatt-Editoren zu unterstützen. Mit diesem Patch wird allen UserStyleSettings und gegebenenfalls ihren Optionenklassen OnWatchEditorData hinzugefügt, das derzeit nur ein Symbol enthält. (If1886)
  • Wir haben dem Konstruktor von ListenableGlesRenderer die Variable @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)
  • Fehler behoben, bei dem die „tapAction“-Funktion von PhotoImageComplicationData nicht richtig verarbeitet wurde (I1cc30)

Version 1.1.0-alpha02

12. Januar 2022

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

Neue Funktionen

  • Zur Unterstützung von Debugging und Tests wurden die Methoden „hashcode“, „equals“ und „toString“ von ComplicationData und den zugehörigen Unterklassen überschrieben, um die Arbeit mit ihnen zu erleichtern.

API-Änderungen

  • WatchfaceMetadataClient-Methoden werfen bei Bedarf wieder RemoteExceptions, was es für den Clientcode einfacher macht, Fehler vom Zifferblatt zu erfassen. (I78785)
  • ComplicationData und die untergeordneten Klassen haben jetzt die Methoden „hashcode“, „equals“ und „toString“. (I24bc6)

Version 1.1.0-alpha01

15. Dezember 2021

androidx.wear.watchface:watchface-*:1.1.0-alpha01 wird 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 die Erstellung von Zifferblättern. Außerdem sind WatchFaceMetadataClient-Abfragen schneller, da sie nicht an den Dienst gebunden werden müssen, um die Metadaten abzurufen. WatchFaceMetadataClient und ListenableWatchFaceMetadataClient sind nicht mehr experimentell und werden Teil der stabilen API. Das System kann optional mehrere Instanzen eines Zifferblatts mit jeweils unterschiedlichen benutzerdefinierten Stiloptionen unterstützen. Sie werden in der Zifferblattauswahl angezeigt. Wenn Sie diese Funktion aktivieren möchten, muss das 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 der UserStyle erfasst wird. Um diesen 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 Komplikationen sofort nach dem Laden angezeigt werden können. Manchmal wird ComplicationData vom System im Arbeitsspeicher im Cache gespeichert und manchmal von den Zifferblattbibliotheken serialisiert. Wenn die Komplikationen bei der Serialisierung nicht gespeichert werden, wird ComplicationData.tapActionLostDueToSerialization true zurückgegeben. Das Zifferblatt sollte die Zusatzfunktion dann anders darstellen (z. B. ausgegraut oder halbtransparent), um anzuzeigen, dass sie nicht angetippt werden kann. Das System sendet so schnell wie möglich eine aktualisierte ComplicationData mit einer tapAction.

  • Einige ComplicationData sollten nicht lange im Cache gespeichert werden. Dazu haben wir eine allgemeinere Funktion ComplicationDataTimeline hinzugefügt. So können Sie eine Sequenz von zeitverzögerten ComplicationData bereitstellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine. ComplicationRequestListener wurde um die neue 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 die 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 sichtbar und nicht im Modus „Im Hintergrund“ ist. Hinweis:Die Verwendung von Anbietern für synchrone Zusatzfunktionen ist aufgrund von Speicherproblemen möglicherweise eingeschränkt.

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

API-Änderungen

  • ComplicationData.isCached wurde in tapActionLostDueToSerialization geändert. Dieser Wert ist hilfreicher, um zu bestimmen, ob der Zusatzbereich anders dargestellt werden soll, um anzuzeigen, dass er nicht angetippt werden kann. (I6de2f)
  • ComplicationDataTimeline wurde zu wear-complication-data-source hinzugefügt. So können Sie eine Sequenz von zeitgesteuerten ComplicationData bereitstellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine. ComplicationRequestListener wurde um die neue 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 bei Zifferblättern hilfreich sein, bei denen Intents als Reaktion auf Tippen gestartet werden müssen, um ein Problem zu umgehen, bei dem das Framework das Starten neuer Aktivitäten nach dem Drücken der Startbildschirmtaste für 5 Sekunden blockiert. (I98074)
  • Einführung eines ComplicationData-Caches pro Zifferblatt. So kann das Zifferblatt beim Laden die letzten bekannten Datenwerte der Zusatzfunktionen anzeigen, bis das System sie aktualisiert hat. Es gibt eine neue API-Methode WatchFaceControlClient.hasComplicationCache für OEMs. Dies kann sich auf die Strategie des Systems für das Senden von Zusatzfunktionen an ein Zifferblatt auswirken. Außerdem hat ComplicationData eine isCached-Eigenschaft. Es wird empfohlen, zwischengespeicherte Zusatzfunktionen anders zu rendern, da die tapAction nicht zwischengespeichert werden kann und in einer zwischengespeicherten Zusatzfunktion null ist. (I404b0)
  • Die Instanz-ID des Zifferblatts ist jetzt über WatchState.watchFaceInstanceId verfügbar. Bei den meisten Zifferblättern ist das nicht erforderlich. Wenn es jedoch einen Zustand pro Zifferblatt gibt, der nicht im Schema gespeichert ist, ist dies der Schlüssel, mit dem die Zifferblattinstanz identifiziert wird. Sie können jetzt beim Anrufen von WatchFaceControlClient.createHeadlessWatchFaceClient eine ID angeben, um uns dabei zu helfen. (I1ff98)
  • DefaultComplicationDataSourcePolicy wurde erweitert, um die Standard-ComplicationTypes für den primären, sekundären Anbieter und den Fallback-Systemanbieter festlegen zu können. ComplicationSlot.defaultDataSourceType ist jetzt eingestellt. (If0ce3)
  • ComplicationSlot.configExtras ist jetzt veränderbar und kann vor dem Aufruf von EditorSession.openComplicationDataSourceChooser() aktualisiert werden. (I6f852)
  • WatchFace.setComplicationDeniedDialogIntent und setComplicationRationaleDialogIntent wurden hinzugefügt. Diese Intents werden gestartet, um vor dem Anfordern von Berechtigungen für Zusatzfunktionen einen Dialog mit einer Begründung anzuzeigen. Wenn Berechtigungen abgelehnt wurden, wird beim Versuch, eine Zusatzfunktion zu bearbeiten, ein weiterer Dialog angezeigt, in dem erklärt wird, dass eine Berechtigung für die Zusatzfunktion erforderlich ist. Die Auswahl des Anbieters wird nicht geöffnet, daher ist der Dialog erforderlich. (I3a29c)
  • UserStyleSchema und ComplicationSlots können jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern und beschleunigt WatchFaceMetadataClient-Abfragen, 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 damit effizient Zifferblattmetadaten abrufen, nach Möglichkeit ohne einen Binder für das Zifferblatt zu öffnen. (Ibb827)
  • Unterstützung für synchrone Anbieter von Zusatzfunktionen hinzugefügt, bei denen die Zusatzfunktion häufiger als normal aktualisiert wird, bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht im Modus „Im Hintergrund“ ist. Dazu 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, um Benachrichtigungen zu erhalten, wenn die Zusatzfunktion in den interaktiven Modus wechselt und wieder herauskommt. (I8fe9d)

Version 1.0

Version 1.0.1

9. Februar 2022

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

Fehlerkorrekturen

  • Fehler behoben, bei dem die „tapAction“-Funktion von PhotoImageComplicationData nicht richtig verarbeitet wurde (I1cc30)

Version 1.0.0

1. Dezember 2021

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

Wichtige Funktionen von 1.0.0

Das androidx.wear.watchface-Paket ist die neue empfohlene Bibliothek für die Entwicklung von WearOS-Zifferblättern. Sie bietet eine Reihe neuer Funktionen im Vergleich zur alten Wearable Support Library.

  • Die Bibliothek unterstützt direkt das Anpassen von Zifferblättern (z. B. die Farbpalette, den Stil der Zeiger oder das Aussehen der Stundenmarkierungen) (siehe androidx.wear.watchface.style). Mit androidx.wear.watchface.editor ist es jetzt viel einfacher, einen Editor für Zifferblätter zu entwickeln. Ihr Zifferblatt kann über die System-Companion-App bearbeitet werden, ohne dass Sie zusätzlichen Code schreiben müssen.
  • Best Practices sind bereits integriert. Die Bibliothek generiert automatisch Screenreader-Inhaltslabels für Zusatzfunktionen (Sie können auch eigene hinzufügen). Außerdem wird die Framerate automatisch gesenkt, wenn der Akkustand niedrig ist und nicht geladen wird, um die Akkulaufzeit zu verlängern.
  • Für die Entwicklung eines Zifferblatts ist weniger Code erforderlich, insbesondere für Zusatzfunktionen, bei denen ein Großteil des Boilerplates in die Bibliothek verschoben wurde.

Fehlerkorrekturen

  • Fehler bei EditorSession.userStyle.compareAndSet beheben (I6f676)
  • Behebung sehr kurzer Verzögerungen bei Zifferblättern Iffb97
  • InteractiveWatchFaceImpl.onDestroy im UI-Thread zuweisen (I83340)
  • Mehrere Probleme mit Broadcastempfängern behoben (I7d25f)

Version 1.0.0-rc01

3. November 2021

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

Fehlerkorrekturen

  • Fehlerbehebung bei dump(), das von adb shell dumpsys aufgerufen wird und durch Ablaufmigrationen beschädigt wurde. (087cf9e)

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

  • Renderer.onDestroy muss aufgerufen werden. Wenn der Renderer erstellt wurde, die WF-Initialisierung aber noch nicht abgeschlossen ist und Engine.onDestroy aufgerufen wird, müssen wir Renderer.onDestroy aufrufen. (f9952dc)

  • Optimierung/Fehlerbehebung bei „isBatteryLowAndNotCharging“ Mit diesem Patch wird die Ersteinrichtung von „isBatteryLowAndNotCharging“ vorverlegt, sodass sie parallel zu „createWatchFace“ erfolgen kann. Außerdem wird jetzt ACTION_POWER_DISCONNECTED überwacht. (ddffd80

  • InteractiveWatchFaceClientImpl.isConnectionAlive muss nach dem Schließen auf „false“ gesetzt werden (ab9774e)

Version 1.0.0-beta01

27. Oktober 2021

androidx.wear.watchface:watchface-*:1.0.0-beta01 wird 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 wird 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. Das bedeutet, dass Sie diese Bibliothek und keine vorherige Alphaversion von wear:watchface:watchface-complications-data einschließen können, da Sie Fehlermeldungen zu doppelten Klassen erhalten. (I97195)
  • Renderer.dump wurde in Renderer.onDump umbenannt und mit @UiThread annotiert. (I44845)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener wurde in addOnWatchFaceReadyListener und removeWatchFaceReadyListener in removeOnWatchFaceReadyListener umbenannt. (I48fea)
  • EditorSession getComplicationsPreviewData und getComplicationsDataSourceInfo sind keine Sperrfunktionen mehr, sondern StateFlow<>-Properties, deren Wert anfangs null ist. In ListenableEditorSession wurden getListenableComplicationPreviewData und getListenableComplicationsProviderInfo zugunsten der neuen StateFlow<>-Objekte aus der Basisklasse entfernt. Wenn Sie Änderungen am Java-Code beobachten möchten, können Sie androidx.lifecycle.FlowLiveDataConversions.asLiveData verwenden, um zu LiveData<> zu konvertieren. (Ic5483)

Version 1.0.0-alpha23

29. September 2021

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

Neue Funktionen

Die Smartwatch-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 Zifferblätter und Zusatzfunktionen in die Bibliotheksgruppe androidx.wear.watchface. (b25f3c0)
  • „EditorRequest.canWatchFaceSupportHeadlessEditing“ wurde hinzugefügt, um einem Client mitzuteilen, ob ein Zifferblatt-Editor die headless-Bearbeitung unterstützt. Hinweis: Es kann zu einigen Falschnegativ-Ergebnissen kommen, da die Unterstützung in asop/1756809 hinzugefügt wurde. Für alle zukünftigen Zifferblätter wird jedoch der richtige Wert zurückgegeben. (ca55590)
  • Der Renderer hat jetzt eine dump()-Methode, die überschrieben werden kann, um den vom ABD-Shell-Dumpsys-Aktivitätsdienst „WatchFaceService“ generierten Informationen benutzerdefinierte Daten hinzuzufügen. (95235f9)
  • Bei InteractiveWatchFaceClient.addWatchFaceReadyListener wird jetzt zuerst der Executor angegeben. (563ac2f)
  • StateFlowCompatHelper wurde entfernt. Stattdessen sollte asLiveData (androidx.lifecycle.asLiveData) verwendet werden. (bd35d3)
  • CurrentUserStyleRepository.userStyle ist nicht mehr veränderbar. (I44889)
  • „WatchFaceReadyListener“ wurde in „OnWatchFaceReadyListener“ umbenannt. (Ic12a9)

Fehlerkorrekturen

  • InteractiveInstanceManager.deleteInstance, um onDestroy aufzurufen. Dies ist erforderlich, damit InteractiveWatchFaceImpl vom Garbage Collector erfasst wird.(fce4af8, b/199485839)