Noszenie tarczy zegarka
Najnowsza aktualizacja | Wersja stabilna | Kandydat do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
17 kwietnia 2024 r. | 1.2.1 | - | - | 1.3.0-alfa03 |
Deklarowanie zależności
Aby dodać zależność na Wear, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.
W pliku build.gradle
aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:
Odlotowy
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" }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.3
Wersja 1.3.0-alfa03
17 kwietnia 2024 r.
Aplikacja androidx.wear.watchface:watchface-*:1.3.0-alpha03
została zwolniona. Wersja 1.3.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy
EditorSession#setOverrideComplications
, który podczas edycji tymczasowo ustawiaComplicationData
wystąpienia tarczy zegarka. Jeśli widżety zmieniają się rzadko, jest to skuteczniejsze niż przekazywanie zastąpień przezEditorSession#renderWatchFaceToBitmap
. (I19384)
Poprawki błędów
- Wcześniej funkcja
selectComplicationDataForInstant
wywoływała funkcjętoApiComplicationData
w przypadku dowolnych osi czasu, co oznacza, że kolejny test równości w odniesieniu do referencji zawsze kończył się niepowodzeniem. Oznaczało to, że widżety były odświeżane przy każdej klatce, co prowadziło do wyczerpywania się baterii. (717406)
Wersja 1.3.0-alfa02
3 kwietnia 2024 r.
Aplikacja androidx.wear.watchface:watchface-*:1.3.0-alpha02
została zwolniona. Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Teraz używamy równości odniesienia do porównania najlepszych i funkcji
selectedData
, ponieważ operator równa się jest drogi. (446b00)
Zmiany w interfejsie API
- Dodaliśmy niezastępczy interfejs API dynamiczny dla:
GoalProgressComplicationData
. (C33264)
Wersja 1.3.0-alfa01
7 lutego 2024 r.
Aplikacja androidx.wear.watchface:watchface-*:1.3.0-alpha01
została zwolniona. Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
WatchFaceServices
można zainicjować równocześnie, więc powinny być bezstanowe. Na potrzeby tej funkcji dodaliśmyStatefulWatchFaceService
, w którym dodatkowy utworzony przez użytkownika elementcreateExtra()
jest przekazywany do wszystkich zastąpień wywoływanych podczas inicjowania.GlesRenderer2
zawiera teraz przeciążenie konstruktora, które umożliwia określenie listy atrybutów do wypróbowania za pomocąeglChooseConfig
.
Zmiany w interfejsie API
StatefulWatchFaceService
obsługuje teraz zastąpienie wartościgetComplicationSlotInflationFactory
, do którego przekazywany jest zdefiniowany przez użytkownika dodatek utworzony przezcreateExtra()
. (I82d9f)- Niektóre tarcze zegarka muszą udostępniać dane pomocnicze utworzone podczas
createUserStyleSchema
za pomocą innych metod inicjowania. Nie było lepszej alternatywy, dlategoWatchFaceServices
dla deweloperów jest zwykle ustawiany jako stanowy. Jest to niebezpieczne, ponieważ równocześnie może być tworzonych wiele instancji, co może powodować błędy. Aby rozwiązać ten problem, wprowadziliśmy zasadyStatefulWatchFaceService
iStatefulWatchFaceRuntimeService
, w których typ zdefiniowany przez użytkownika jest tworzony przezcreateExtra()
i jest przekazywany do różnych metod tworzenia jako parametr. (If8a99) - Dodaliśmy
getUserStyleFlavors
do pakietuInteractiveWatchFaceClient
, który jest przeznaczony przede wszystkim dla OEM. (I0f5d8) GlesRenderer2
zawiera teraz przeciążenie konstruktora, które umożliwia określenie listy atrybutów do wypróbowania za pomocąeglChooseConfig
. Dzięki temu możesz na przykład najpierw wypróbować konfigurację z antyaliasem, a w razie potrzeby zastąpić ją inną. (I1ba74)- Od Androida U funkcja
SystemDataSources.DATA_SOURCE_HEART_RATE
zostanie dodana do Wear OS. Gwarantujemy, że ten widżet będzie obsługiwać tylko widżetySHORT_TEXT
. Zalecamy jednak, aby aplikacjaComplicationSlot
akceptowała równieżSMALL_IMAGE
, ponieważ OEM może zdecydować się na wyświetlanie skrótu do aplikacji związanej ze zdrowiem zamiast rzeczywistej wartości. (I34223) - Dodaliśmy aplikację
METADATA_KEY_CONFIG_RESTORE_SUPPORTED
, która od Androida U określa, co się stanie, gdy system zostanie przywrócony z kopii zapasowej źródła danych widżetu zMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
. Domyślnie system zakłada, że usługa źródła danych widżetu obsługuje tworzenie kopii zapasowych dowolnych danych konfiguracyjnych. Jeśli jednak tak się nie stanie, może dodać ustawienie metadanychMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
na wartość Fałsz, co spowoduje oznaczenie przedziału widżetu jako nieskonfigurowanego. (I6c505)
Wersja 1.2
Wersja 1.2.1
24 stycznia 2024 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.1
została zwolniona. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono awarię na zegarku Samsung Galaxy Watch 4, 5 i 6. (43f0b0)
Wersja 1.2.0
29 listopada 2023 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0
została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Dodaliśmy obsługę kilku nowych typów widżetów dostępnych na Androidzie T:
GoalProgressComplicationData
, który jest podobny doRangedValueComplicationData
, ale dotyczy postępu w realizacji celu, w którym domyślnie wartość minimalna wynosi 0, a wartość może być większa niżtargetValue
.WeightedElementsComplicationData
, który składa się z tablicy Elementów (pary wagi i koloru) oraz opcjonalnego tekstu, tytułu i obrazu. Te dane mogą być wyświetlane w formie wykresu kołowego, gdzie kolory muszą być istotne w danym kontekście, ponieważ zazwyczaj nie ma miejsca na widżety na renderowanie etykiet.
- Dodaliśmy obsługę opcjonalnie
ColorRanges
wRangedValueComplicationData
. Zwykle widżety są renderowane w kolorach wybranych przez tarczę zegarka, ale czasami lepiej użyć parametruComplicationDataSource
, aby określić kolory, np. gdy mają one określone znaczenie semantyczne. np. kolor od czerwonego do niebieskiego oznaczający temperaturę. - Prawie każdy typ zasobu
ComplicationData
obsługuje terazSmallImages
. - Dodaliśmy
ComplicationDisplayPolicy
, gdzieDO_NOT_SHOW_WHEN_DEVICE_LOCKED
informuje zgodną tarczę zegarka, by nie wyświetlała widżetu, gdy urządzenie jest zablokowane. - Na podstawie Androida T OEM może określić, czy żądanie widżetu pochodzi z tarczy zegarka wymienionego na liście metadanych
android.support.wearable.complications.SAFE_WATCH_FACES
w pliku manifestu dostawcy przezComplicationRequest#isForSafeWatchFace
. Dostawca potrzebuje uprawnieniacom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
, aby otrzymywać coś innego niż TargetWatchFaceSafety.UNKNOWN`. - Funkcja
UserStyleFlavors
jest teraz funkcją nieeksperymentalną.
Wersja 1.2.0-rc01
18 października 2023 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-rc01
została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Wersja 1.2.0-beta02
6 września 2023 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-beta02
została zwolniona. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Restauracja
SuspendingComplicationDataSourceService#onDestroy
jest teraz otwarta. Uwaga: obsługa domyślnego widżetu pogodowego w systemie została usunięta.
Zmiany w interfejsie API
- Przywróć opcję „Udostępnij nowe źródło danych na potrzeby widżetów pogodowych”. (I6f335)
Wersja 1.2.0-beta01
23 sierpnia 2023 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-beta01
została zwolniona. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Od Androida T Wear OS będzie obsługiwać domyślny widżet systemu pogody.
Zmiany w interfejsie API
- Dodaj domyślną aplikację pogodową dla widżetów. (Ia0994)
- Ta poprawka dodaje tagi
WatchFaceRuntimeService
iWatchFaceControlClient.createWatchFaceRuntimeControlClient
oraz opakowania z gujawą. Dodaliśmy obsługę czasu działania tarczy, czyli specjalnego rodzaju tarczy, która wczytuje definicję z innego pakietu. Obecnie Wear OS obsługuje tylko środowisko wykonawcze formatu tarczy zegarka z Androidem. (I2799f) - Ta poprawka jest kontynuacją normy aosp/2636578, w której zmieniamy nazwę wartości int, tak aby żaden kod zależny od
WatchFaceType
,CanvasType
,TapType
lubComplicationsSlotBoundsType
nie wymagał zmian. (I4098b) - Zaktualizowano pliki interfejsu API, aby dodać adnotacje do pomijania zgodności. (I8e87a, b/287516207)
- Ta poprawka udostępnia stałe
WatchFaceType
wWatchFaceTypes
, stałeCanvasType
wCanvasTypes
, stałeTapType
w stałychTapTypes
iComplicationsSlotBoundsType
wComplicationsSlotBoundsType
. (I3b85a, b/288750666) - System
WatchFace.OverlayStyle
jest używany w bardzo niewielkim stopniu i nie jest dobrze obsługiwany przez OEM, dlatego wycofujemy go z myślą o późniejszym usunięciu. (I7344a)
Wersja 1.2.0-alfa09
21 czerwca 2023 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha09
została zwolniona. Wersja 1.2.0-alpha09 zawiera te zatwierdzenia.
Nowe funkcje
RangedValueComplicationData.Builder
akceptuje terazDynamicFloat
, a nowa podklasaDynamicComplicationText
jest dostępna jako podklasaComplicationText
. Oba modele mogą korzystać z wyrażeń dynamicznych, a także powiązań platform aktualizowane co 1 Hz na obsługiwanych urządzeniach z Wear 4.
Zmiany w interfejsie API
- Dodano dynamiczne typy przebytego dystansu, dziennej liczby kalorii i pięter. Klucze dla źródeł stanu platformy znajdują się teraz w lokalizacji
PlatformHealthSources.Keys
(Ib7637) - Zaimplementuj aplikację
PlatformDataProvider
, aby otrzymywać informacje o tętnie i dziennej liczbie kroków. InterfejsSensorGateway
został usunięty z publicznego interfejsu API. (I55b84) - Zmień nazwę
StateEntryValue
naDynamicDataValue
i zaktualizuj interfejsy API stanu w taki sposób, aby używały interfejsuDynamicDataKey
. (If1c01) - Dodaj
AppDataKey
, aby uzyskać dostęp do stanu przekazanego aplikacji; dodajPlatformDataKey
, aby uzyskać dostęp do danych platformy; dodaj obsługę przestrzeni nazw wStateStore
. (I7985e) - Z:
DynamicTypeEvaluator
usuniętoenable
/disablePlatformSource
metod. Osoba wywołująca powinna być odpowiedzialna za aktualizacje. (I78c6d) - Zezwalaj na ograniczanie rozmiaru powiązanych typów danych. (Ie2966)
Wersja 1.2.0-alfa08
19 kwietnia 2023 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha08
została zwolniona. Wersja 1.2.0-alpha08 zawiera te zatwierdzenia.
Nowe funkcje
- Na Androidzie T dostawcy widżetów z podwyższonymi uprawnieniami
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
mogą rejestrować metadaneandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
, które zastępująandroid.support.wearable.complications.SUPPORTED_TYPES
w przypadku bezpiecznych tarcz zegarka. Oznacza to, że dostawca widżetów może wyświetlać różne rodzaje widżetów zaufanym, a niezaufanym.
Zmiany w interfejsie API
- Przenoszenie klasy
@Deprecated
do usługi (I882d1, b/271441831) - Zmieniono nazwę parametru wartości pola
Enum.valueOf
(Ia9b89) - Więcej zgłoszonych wyjątków od wartości enum (I818fe)
- Usunęliśmy typ
renderWatchFaceToSurface
na rzeczcreateRemoteWatchFaceView
, który jest oparty na SurfaceControlViewHost i umożliwia rozmówcy umieszczenie widoku z tarczy zegarka, który jest renderowany, gdy klient wywołuje metodęRemoteWatchFaceViewHost#renderWatchFace
. (Ib311d) - Dodaliśmy
renderWatchFaceToSurface
do aplikacjiInteractiveWatchFaceClient
,HeadlessWatchFaceClient
iEditorSession
. Zwykle będzie to skuteczniejsze niż renderowanie na bitmapie. (Ieacad). - Nazwa usługi
ObservableStateStore
została zmieniona naStateStore
. (Ieb0e2) - Dodano
DynamicTypeEvaluator.Builder
zamiast argumentów konstruktora, aby umożliwić więcej opcjonalnych argumentów, w tym argumentObservableStateStore
, który teraz domyślnie przyjmuje pusty magazyn. (I6f832) - Zrefaktoryzowana kolejność parametrów w funkcji
DynamicTypeEvaluator
. (Ic1ba4). - Wykonawca został dodany do metod
DynamicTypeEvaluator.bind
. (I346ab) - Do interfejsu
BoundDynamicType
dodaliśmy metodęstartEvaluation
, która uruchamia ocenę po powiązaniu typu dynamicznego. (I19908) - Dostawcy widżetów z podwyższonymi uprawnieniami
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
mogą rejestrować metadaneandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
, które zastępująandroid.support.wearable.complications.SUPPORTED_TYPES
w przypadku bezpiecznych tarcz zegarka. (Id1c73). - Zmieniliśmy nazwę grupy
CustomValueUserStyleSettings2
naLargeCustomValueUserStyleSettings
. (Ic17ac)
Poprawki błędów
DynamicTypeValueReceiver#onPreUpdate
został(a) usunięty(a). (I2dc35)
Wersja 1.2.0-alfa07
22 lutego 2023 roku
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha07
została zwolniona. Wersja 1.2.0-alpha07 zawiera te zatwierdzenia.
Nowe funkcje
Na podstawie Androida T OEM może określić, czy żądanie widżetu pochodzi z tarczy zegarka wymienionego na liście metadanych
android.support.wearable.complications.SAFE_WATCH_FACES
w pliku manifestu dostawcy przezComplicationRequest#isForSafeWatchFace
. Aby otrzymywać inne dane niżTargetWatchFaceSafety.UNKNOWN
, dostawca musi mieć uprawnieniecom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
.Dostępna jest też aplikacja z Androida T
CustomValueUserStyleSetting2
, która może pomieścić do 12,5 KB. Poprzedni limit w usłudzeCustomValueUserStyleSetting
wynosił 1 KB. Pomimo zwiększonych limitów rozmiaru, zalecamy deweloperom tarcz zegarka, aby ilość danych była niewielka, ponieważ podczas edytowania ustawienia są wysyłane przez Bluetooth, a przepustowość Bluetootha jest ograniczona.
Zmiany w interfejsie API
- Do parametrów
GlesRenderer
iGlesRenderer2
dodaliśmy opcjonalny parametreglContextAttribList
, który umożliwia ustawienie wartościEGL14.EGL_CONTEXT_CLIENT_VERSION
przekazanej do wartościEGL14.eglCreateContext
. (I2a83e) - Przenieśliśmy biblioteki tarcz zegarka do
androidx.core.util.Consumer
, a niejava.util.function.Consumer
. (I273f5) - Więcej zgłoszonych wyjątków od metod dostępu właściwości KT (Iff9d9)
- Dodaliśmy
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
, aby klient mógł określić, czy musi emulować obsługę starych tarcz zegarka. (I24c89) - Uznaliśmy, że pole
isForSafeWatchFace
powinno być trójstanowym elementemIntDef
. (Ief2f7) - W przypadku Androida T wprowadziliśmy aplikację
ComplicationRequest.isForSafeWatchFace
, która jest przeznaczona dla OEM i wymagacom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
. W przypadku źródeł danych w obrazie systemu zwracana jest wartość „true” (prawda), jeśli tarcza, która wysłała żądanie, znajduje się na liście bezpiecznych tarcz zegarka określonych przez źródło danych w jego pliku manifestu. (I0cbb6) - W przypadku Androida T dodaliśmy pakiet
CustomValueUserStyleSetting2
, który może pomieścić do 12,5 KB. Poprzedni limit w usłudzeCustomValueUserStyleSetting
wynosił 1 KB. (I0b100).
Wersja 1.2.0-alfa06
25 stycznia 2023 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha06
została zwolniona. Wersja 1.2.0-alpha06 zawiera te zatwierdzenia.
Nowe funkcje
- Cały czas pracujemy nad dodaniem obsługi widżetów związanych z platformami. Ta funkcja nie jest jeszcze gotowa. Więcej informacji już wkrótce.
- Dodaliśmy obsługę XML
ComplicationSlot
dla nowych typów widżetów: GOAL_PROGRESS i WEIGHTED_ELEMENTS.
Poprawki błędów
- Rozwiązano problem polegający na tym, że edytor tarcz zegarka nie był prawidłowo aktywowany na urządzeniach Samsung. (3b5987)
- Usunięto błąd, który powodował, że widżety nie wyświetlały się prawidłowo podczas przełączania się między tarczą zegarka z wieloma ulubionymi. (B38ece)
- Naprawiono błąd serializacji z wartością perOptionScreenReaderNames, który powodował awarie tarczy zegarka. (E9f466)
Wersja 1.2.0-alfa05
7 grudnia 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha05
została zwolniona. Wersja 1.2.0-alpha05 zawiera te zatwierdzenia.
Nowe funkcje
Jakiś czas temu dodaliśmy obsługę hierarchicznych elementów
UserStyleSettings
, a w Androidzie T można teraz mieć w hierarchii więcej niż 1 elementComplicationSlotsUserStyleSetting
. W zależności od stylu wybranego przez użytkownika aktywna będzie tylko 1 elementComplicationSlotsUserStyleSetting
.Ulepszamy obsługę czytnika ekranu w
ListOption
iComplicationSlotsOption
, dodając polescreenReaderName
. Pamiętaj, że przed Androidem T to pole będzie ignorowane przez edytory towarzyszące.
Zmiany w interfejsie API
- Do usług
ListOption
iComplicationSlotsOption
dodaliśmy nowe opcjonalne polescreenReaderName
do wykorzystania przez edytorów – będzie ono ignorowane przez edytorów towarzyszących na urządzeniach przed Androidem T. (I75326) - W Androidzie T wiele elementów
ComplicationSlotsUserStyleSettings
jest teraz obsługiwanych w hierarchii stylów, o ile tylko jeden z nich może być w danym momencie aktywny. Dodaliśmy funkcję narzędziowąfindComplicationSlotsOptionForUserStyle
do interfejsuUserStyleSchema
, aby pomóc w znalezieniu aktywnegoComplicationSlotsOption
(jeśli istnieje). (Ic2b06) - Element
RangedValuesTypes
został pobrany do obiektu towarzyszącegoRangedValueComplicationData
i jego nazwa została zmieniona naTYPE_UNDEFINED
TYPE_RATING
. Dodano nowy elementTYPE_PERCENTAGE
. (I55d02) - Zmieniliśmy nazwę eksperymentu
DynamicFloat
naFloatExpression
i oznaczono go jako@hide
. (Idf4f1). - Dodawanie adnotacji
@JvmDefaultWithCompatibility
(I8f206)
Wersja 1.2.0-alfa04
9 listopada 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha04
została zwolniona. Wersja 1.2.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
- W przypadku Androida T dodaliśmy obsługę 2 nowych typów widżetów:
GoalProgressComplicationData
iWeightedElementsComplicationData
. GoalProgressComplicationData
jest podobny doRangedValueComplicationData
, ale jego wartość może przekraczać wartość docelową (w przypadkuRangedValueComplicationData
wartość jest ograniczona do zakresu [min .. max]), co ma wpływ na wygląd, który może nie pasować do niektórych tarcz zegarka.GoalProgressComplicationData
dodaje obsługę wykresów kołowych i podobnych podziałów prostych danych.- Dodaliśmy opcjonalną obsługę języka
ColorRamps
w wersjiRangedValueComplicationData
. - W przypadku Androida T dodaliśmy do aplikacji
ComplicationData
ComplicationPersistencePolicy
isetCachePolicy
, które obecnie pozwalają dostawcy określić, czy widżet ma być trwały (tj. czy po ponownym uruchomieniu jest przechowywany w pamięci podręcznej). Większość widżetów nie wymaga konfigurowania ustawień pamięci podręcznej, ale może to naprawić narożne przypadki z nieaktualnymi danymi w przypadku niektórych często aktualizowanych widżetów (np. powikłań związanych z danymi dotyczącymi zdrowia). Dodaliśmy teżComplicationDisplayPolicy
, w którymDO_NOT_SHOW_WHEN_DEVICE_LOCKED
informuje zgodną tarczę zegarka, by nie wyświetlała widżetu, gdy urządzenie jest zablokowane. (Ic9574)
Zmiany w interfejsie API
GoalProgressComplicationData
,WeightedElementsComplicationData
iColorRamp
nie są już eksperymentalne. (Ica9e2)- Interfejsy
ComplicationPersistencePolicy
iComplicationDisplayPolicy
są teraz prawidłowo oznaczone jako interfejsy API T. (I31d88) - Przestarzały konstruktor
ComplicationSlotOverlay
ma teraz komponentDeprecationLevel.WARNING
, który umożliwia ponowne wywołanie go z języka Java. (Ib308c) - Rozwiązaliśmy niektóre problemy z kompatybilnością z Javą w językach
ComplicationRequestListener
,CanvasComplication
,ComplicationTapFilter
iInteractiveWatchFaceClient
przez dodanie do nich adnotacji@JvmDefaultWithCompatibility
(Id94fc) - Usunęliśmy funkcje eksperymentalne
ProtoLayoutComplicationData
iListComplicationData
. Historia dewelopera tych treści była niejasna. Mamy nadzieję, że wrócimy do niej w przyszłości. (I9df05) - Dodaliśmy
ValueType
ponownie do listyRangedValueComplicationData
.WeightedElementsComplicationData
obsługuje teraz kolor tła. UsunęliśmyDiscreteRangedValueComplicationData
, ponieważ jego funkcjonalność jest podzbioremWeightedElementsComplicationData
. (I6446c)
Poprawki błędów
- Umieść
isForScreenShot
w polu równości i kodu skrótu. Sprawdź, czyonRenderParametersChanged
ma prawidłową wartośćisForScreenshot
(I04a41) - Usunięto wycieki pliku
WatchFaceControlService
z klientów bez interfejsu graficznego. (E90e00)
Wersja 1.2.0-alfa03
5 października 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha03
została zwolniona. Wersja 1.2.0-alpha03 zawiera te zatwierdzenia.
Nowe funkcje
- Brak nowych funkcji, ale naprawiliśmy kilka błędów w edytorze tarcz zegarka.
Zmiany w interfejsie API
- Wycofano
UserStyleSchema.userStyleSettings
, ponieważrootUserStyleSettings
nie ma wersji eksperymentalnej (Ie96e3) - Przenieś
rootUserStyleSettings
z eksperymentu (I8d6b3) - Oznaczyliśmy aplikację
WatchFaceColors
jako eksperymentalną, ponieważ nie jest obsługiwany przez niektóre systemy (I6d75d) - Udostępnij
DisconnectReasons
w publicznym interfejsie API, aby działał zIntDef
. (I791f8)
Poprawki błędów
- Jeśli
SysUI
umiera, zamknij wszystkie otwarte w edytorze zegarka. JeśliSysUI
umiera i edytor tarczy zegarka nie zostanie zamknięty, tarcza zegarka może pozostać w niespójnym stanie, ponieważ system polega na obiekcieSysUI
, aby zachować wszystkie zmiany stylu użytkownika.(ba762a - Naprawianie wycieku pamięci w
ComplicationDataSourceInfoRetriever
, w którym kontynuacja kohorty kotlin działała jako root i zachowywała aktywność edytora.(33ee06)
Wersja 1.2.0-alfa02
21 września 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha02
została zwolniona. Wersja 1.2.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
Niektóre tarcze zegarka mają konfigurację poza
UserStyle
, co wpływa na jej wygląd (np. wybór zdjęcia tła). DodaliśmyRenderer.sendPreviewImageNeedsUpdateRequest
, który umożliwia zegarkowi wysyłanie próśb o zaktualizowanie obrazu podglądu. Pamiętaj, że wymaga to aktualizacji systemu.Dodaliśmy również interfejs API dla tarcz zegarka, aby pokazać ich kolory systemowi, który na tej podstawie może wybrać swoją paletę kolorów. Uwaga: ta funkcja została wprowadzona w wersji eksperymentalnej w ramach kolejnych poprawek.
Prawie każdy typ
ComplicationData
obsługuje terazSmallImages
.
Zmiany w interfejsie API
- Menedżer tapet może czasami odłączać się od silnika i tworzyć nowe. Dodano int definicję
DisconnectReason
i rozszerzonoClientDisconnectListener
o nową metodę, która obejmuje właściwośćDisconnectReason
, która umożliwia detektorowi obserwowanie rozłączania silnika. (I45cce) - Do konstruktora
ComplicationSlotOverlay
dodano 2 opcjonalne parametrynameResourceId
iscreenReaderResourceId
(I157e8) - Dodaliśmy otokę gujawy w przypadku nowego przeciążenia:
getOrCreateInteractiveWatchFaceClient
zPreviewImageUpdateRequestedListener
. (Ic31f0) - Dodaliśmy
Renderer.sendPreviewImageNeedsUpdateRequest
, który przydaje się w przypadku tarcz zegarka spoza zakresuUserStyleSchema
, który wpływa na wygląd (np. tarczy zegarka z obrazem tła do wyboru). Po stronie klienta dodaliśmyPreviewImageUpdateRequestedListener
jako opcjonalny parametr dogetOrCreateInteractiveWatchFaceClient
, aby umożliwić obserwację tych żądań. (Iff44a) - Uprościliśmy interfejs API na potrzeby ujawniania właściwości
WatchFaceColors
. W mechanizmie renderowania dostępna jest teraz prosta właściwość o nazwiewatchFaceColors
, którą może ustawiać tarcza zegarka. W razie potrzeby należy ją zaktualizować w odpowiedzi na wszelkie zmiany stylu. Zamiast narzędziaWallpaperManager
do obserwowania zmian kolorów dodaliśmy kolorOnWatchFaceColorsListener
do aplikacjiInteractiveWatchFaceClient
. (I490bc) - Dodaliśmy klasę
WatchFaceColors
, która posiada 3 najbardziej widoczne kolory tarcz zegarka, i dodaliśmy do mechanizmu renderowania metody otwartewatchfaceColors
inotifyWatchFaceColorsChanged
, które umożliwiają systemowi uzyskiwanie kolorów tarczy zegarka za pomocąWallpaperManager.getWallpaperColors
. (I3d611) ShortTextComplicationData
,RangedValueComplicationData
,NoPermissionComplicationData
(oraz eksperymentalne wersjeDiscreteRangedValueComplicationData
,GoalProgressComplicationData
iWeightedElementsComplicationData
) obsługują terazSmallImages
. Jeśli tarcza zegarka renderuje widżet w wielu kolorach, może teraz korzystać z wielokolorowego elementuSmallImage
– wcześniej trzeba było używać obrazu monochromatycznego. (I257df)- Zrefaktoryzuj
PreviewImageUpdateRequestedListener
naConsumer<>
(Ia875d) - Zastąp niestandardowy typ pojedynczej metody abstrakcyjnej (SAM)
OnWatchfaceColorsListener
ogólnym typem SAM Java (konsument) (I0c489) - Wycofaliśmy stare metody
getOrCreateInteractiveWatchFaceClient
ilistenableGetOrCreateInteractiveWatchFaceClient
, które nie określają właściwościPreviewImageUpdateRequestedListener
. (Iec502)
Poprawki błędów
- Nazwa konta
DisconnectReason.BINDER_DIED
została zmieniona naDisconnectReason.ENGINE_DIED
. (I4eb0e)
Wersja 1.2.0-alfa01
10 sierpnia 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.2.0-alpha01
została zwolniona. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy eksperymentalną obsługę różnych nowych formatów widżetów. Jest to obszar, w którym pracujemy. Te nowe formaty mogą ulec zmianie bez powiadomienia. Obecnie
CanvasComplicationDrawable
nie obsługuje mechanizmu renderowania. - Dodaliśmy też opcjonalne marginesy do widżetów, dzięki czemu małe widżety są łatwiejsze do kliknięcia.
Zmiany w interfejsie API
- Eksperymentalnej klasy
BoundingArc
nie można teraz zmienić. (If624a) - Małe widżety może być trudne do kliknięcia. Aby temu zaradzić, wprowadziliśmy obsługę marginesów, które zwiększają dostępny obszar bez wpływu na renderowanie. O ile nie określono inaczej (w kodzie lub w pliku XML),
ComplciationSlots
ma zerowy rozmiar marginesów. (I14089) - Zmieniono podpis
getComplicationSlotInflationFactory(CurrentUserStyleRepository)
, aby zwrócić niepustą instancję fabryczną. Wcześniej zwracanie wartości null było wynikiem błędu, dlatego tym razem wyjaśniamy, na czym polega umowa dotycząca interfejsu API. (I0fcc0) - Dodaliśmy argument
currentUserStyleRepository
do metodyWatchFaceService.getComplicationSlotInflationFactory
, aby zapewnić spójność zcreateComplicationSlotsManager
. (I2ddd2) UserStyleFlavors
nie jest już eksperymentem. (I69cdc)- Usunęliśmy eksperymentalną funkcję
ValueType
z funkcjiRangedValueComplicationData
, a zamiast tego wprowadziliśmy eksperymentalną funkcjęDiscreteRangedValueComplicationData
, która jest podobna doRangedValueComplicationData
oprócz zakresu i wartości całkowitych. Oprócz tego wprowadziliśmy eksperymentalną funkcjęGoalProgressComplicationData
, która jest podobna do funkcjiRangedValueComplicationData
, ale wskazuje postęp w realizacji celu, w którym domyślnie wynosi 0, a wartość może być większa niżtargetValue
. Uwaga: w przypadku wszystkich wariantówRangedValue
należy określić co najmniej 1 obraz monochromatyczny, tekst lub tytuł. (I9590c) - Usunęliśmy element
boundsWithMargins
z elementuComplicationSlotState
, ponieważ nie ma go dla oprogramowania systemowego. (I42e26) - Dodaliśmy eksperymentalną obsługę dla
WeightedElementsComplicationData
, która składa się z tablicy elementów (wagów wagi i koloru) oraz opcjonalnego tekstu, tytułu i obrazu. Te dane mogą być wyświetlane w formie wykresu kołowego, gdzie kolory muszą być istotne w danym kontekście, ponieważ zazwyczaj nie ma miejsca na widżety na renderowanie etykiet. (I87eea) - Eksperymentalny
ColorRamps
używany opcjonalnie przezRangedValueComplicationData
iGoalProgressComplicationData
pozwala teraz określić sekwencję maksymalnie 7 kolorów oraz flagę wskazującą, czy kolory powinny być płynnie przełączone między kolorami, czy też mają być renderowane ciągi jednolite w równych rozmiarach. (I9f5bf) - Parametr
RangedValueComplicationData.drawSegmented
został zmieniony navalueType
. Jest to liczba całkowita z odpowiednim elementemValueType IntDef
, która nadaje znaczenie wartości z zakresu zakresu i może być używana przez mechanizm renderowania widżetu do wpływania na styl. (I0616b) - Do wersji
RangedValueComplicationData
dodaliśmy eksperymentalną obsługę opcjonalnych metodColorRanges
. Zwykle widżety są renderowane w kolorach wybranych przez tarczę zegarka, ale czasami lepiej użyć parametruComplicationDataSource
, aby określić kolory, np. gdy mają one określone znaczenie semantyczne. np. kolor od czerwonego do niebieskiego oznaczający temperaturę. (I5153a) - Do interfejsu
RangedValueComplicationData
dodaliśmy eksperymentalną wskazówkę dotyczącą funkcjidrawSegmented
. Informuje to mechanizmu renderowania, że mają narysować wskaźnik wartości z zakresu zakresu z segmentami, gdzie 1 segment = 1 jednostka. (I7d7c1)
Poprawki błędów
- Dodaliśmy możliwość definiowania funkcji
ComplicationSlotBounds
względem wstępnie zdefiniowanego układu współrzędnych ekranu. (I0985d)
Wersja 1.1
Wersja 1.1.1
10 sierpnia 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.1.1
została zwolniona. Wersja 1.1.1 zawiera te zatwierdzenia.
- Zawiera ona poprawki błędów. Zdecydowanie zalecamy użytkownikom wersji 1.1.0 jej uaktualnienie.
Poprawki błędów
Inicjowanie tarczy zegarka jest asynchroniczne. Jeśli widżet otrzyma widżet, zanim będzie gotowy, zostanie umieszczony na liście
pendingInitialComplications
i stosowany później. Niestety narzędziependingInitialComplications
zostało zastosowane zbyt szybko, co oznacza, że podczas inicjowania tarczy zegarka występowało pewne opóźnienie, w którym widżety nadal były umieszczane na urządzeniupendingInitialComplications
i ignorowane. Problem został już rozwiązany. Ta poprawka zawiera też poprawkę błędu polegającego na tym, że interfejsComplicationRenderer
nieprawidłowo próbował asynchronicznie wczytywać obiekty zastępcze, co powodowało brak aktualizacji grafiki kompilacji. Ta poprawka zawiera również teoretyczny błąd polegający na scalaniu większej liczbypendingInitialComplications
. (0d03ba3)Napraw potencjalne zakleszczenie w miejscu
InteractiveInstanceManager
, w którym urządzeniegetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance
trzymało blokadę dłużej niż było to konieczne. Zazwyczaj przyjmujemy, żeengine.setUserStyle
będzie działać szybko, ale jeśli z jakiegoś powodu nie jest to możliwe, kończy się zakleszczeniem lub błędem ANR. Ta poprawka pozwala wyeliminować niepotrzebne prace, eliminując ryzyko zakleszczenia.(5a2adca)Rozwiąż kilka problemów, które nie zakłócały działania aplikacji
WatchFaceService
. WakeLock może czasami zachowywaćWatchFaceService
. Dodanie wywołaniarelease()
rozwiązuje ten problem.StateFlows
może też zachowaćWatchFaceService
, anulując wcześniejsze poprawkiCoroutineScopes
.(fd48138)Dodaj czasy oczekiwania do
awaitDeferredWatchFace
* i naprawwatchfaceOverlayStyle
(NullPointerException
). W normalnych okolicznościach ten czas nie powinien przekraczać czasu oczekiwania, także po nowej instalacji i w przypadkachDirectBoot
, gdy obciążenie procesora jest duże. Naprawiliśmy też NPE, jeśli funkcjagetWatchfaceOverlayStyle
jest wywoływana poclose()
.(a4c3a5a)
Wersja 1.1.0
15 czerwca 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.1.0
została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.0.0
Ulepszone edytowanie:
- Dodaliśmy obsługę schematów hierarchicznych, które pozwalają na tworzenie hierarchii stylów przez interfejsy edytora. Możesz teraz określić osobne ikony do używania na tarczy zegarka i w edytorach towarzyszących.
- Istnieje możliwość akceptowania wielu wystąpień tarczy zegarka, a każde z nich ma unikalny identyfikator dostępny na wszystkich platformach API.
- Teraz możesz określić w edytorze zrozumiałe dla człowieka nazwy elementu
ComplicationSlots
. - Eksperymentalna obsługa „smaków” – wyselekcjonowanych stylów, które będą widoczne w edytorze towarzyszącym.
- Podczas edycji dwóch wystąpień tarczy zegarka możliwe jest współużytkowanie zasobów, oszczędzając pamięć
- Gdy wybierzesz widżet w edytorze tarcz zegarka, obecny dostawca będzie teraz wstępnie wybrany.
Ulepszone widżety:
- Możesz teraz określić
ComplicationType
dla podstawowych i dodatkowych źródeł danych, co zapewnia deweloperom większą elastyczność działania, które będzie gotowe do użytku. - Dodaliśmy funkcję
ComplicationDataTimeline
, która zawiera sekwencję danych ograniczonych czasowo, które są przesyłane na tarczę zegarka, a następnie zapisywane w pamięci podręcznej i automatyczne aktualizowane. Może to być na przykład prognoza pogody na dziś o różnych porach lub wiele nadchodzących wydarzeń w kalendarzu. ComponentName
dostawcy widżetu jest częściąComplicationData
.- Widżety są teraz zapisywane w pamięci podręcznej, co ułatwia przełączanie się między tarczami zegarka.
Inne zmiany:
- Elementy
UserStyleSchema
iComplicationSlots
można teraz definiować w formacie XML. Upraszcza to konstrukcję tarczy zegarka i pozwala na szybsze zapytania o metadane z systemu. - Tarcze zegarka mogą teraz wpływać na kolory używane do renderowania nakładki systemowej.
Wersja 1.1.0-rc01
18 maja 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-rc01
została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadziliśmy kilka poprawek w obsłudze kodu XML tarczy zegarka, aby ułatwić określanie
ComplicationSlotBounds
i odwołań. Trwają eksperymenty z komplikacją na krawędziach:BoundingArc
, przenoszę ją dodrawHighlight
, ale obecnie nie zalecamy korzystania z niej.
Zmiany w interfejsie API
- Dodaliśmy eksperymentalne przeciążenie wynoszące
drawHighlight
, które akceptuje parametrBoundingArc
. (I705f8) - Kod XML tarczy zegarka obsługuje odwołania do zasobów. Pozwala używać tych samych stałych w kodzie XML i w kodzie. (I3ef61)
- Dodaliśmy możliwość definiowania ciągu
ComplicationSlotBounds
w formularzachcenter_x
,center_y
,size_x
isize_y
. Obecnie można też używać różnych jednostek (np. dp) za pomocą odwołań do zasobów. (Iace98)
Poprawki błędów
- Napraw plik
runBlockingWithTracing
, który uruchamiał zadania w niewłaściwym kontekście.(4f595fe) - Włącz synchronizację pliku
BaseEditorSession.close
. Problem z asynchronizacją funkcjiBaseEditorSession.close
polega na tym, że interfejsComplicationDataSourceInfoRetriever
jest udostępniany zbyt późno, co powoduje ostrzeżenie o spamie w logcat. Prawdopodobnie nie było to nic groźnego, ale spam logcat jest rozpraszający, dlatego należy go unikać.(35a5308)
Wersja 1.1.0-beta02
11 maja 2022 roku
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-beta02
została zwolniona. Wersja 1.1.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy eksperymentalną obsługę nowych typów
ComplicationData
. Nie są one jeszcze gotowe do użycia, ale zachęcamy do obejrzenia tego pokoju.
Zmiany w interfejsie API
- Dodaliśmy eksperymentalną klasę
BoundingArc
opisującą geometrię przedziału komplikacji brzegowej. Ten dźwięk został dodany doComplicationSlot
i podłączony doComplicationSlotState
iWatchFaceMetadataClient
. (I61a40) - Dodaliśmy możliwość dziedziczenia ustawień w pliku XML
UserStyleSetting
. Pozwala zmniejszyć szczegółowość i udostępniać ustawienia dla różnych tarcz zegarka. (Ief841) - Dodaliśmy 2 nowe eksperymentalne typy funkcji
ComplicationData
:ListComplicationData
iProtoLayoutComplicationData
. Obecnie nie ma obsługi renderowania w przypadku żadnego z tych typów, a Wear OS nie rozpoznaje obecnie tych typów po dodaniu do pliku manifestuComplicationDataSource's
. (I1811c)
Poprawki błędów
- Napraw serializację typu
TimeLineEntry
. Nie zserializowaliśmy typuTimeLineEntry
, co oznacza, że zapisane w pamięci podręcznejTimeLineEntries
typu NoData zostało błędnie zinterpretowane jako typ komplikacji nadrzędnej prowadzącej do NPE w przypadku uzyskania dostępu do nieistniejących pól wymaganych. (55ffdf5) - Naprawiono błąd, przez który usługa
setComplicationData
pomijała pola osi czasu(fb392f5) - Poprawki błędu, który sporadycznie
runBlockingWithTracing
prowadzi do NPE(12ca62e) - Poprawiono błąd, który powodował, że podczas wyświetlania widżetu czasami wyświetlał się komunikat
ClassNotFoundException: android.support.wearable.complications.ComplicationText
.(217942d9) - Naprawiono błąd w funkcji
GlesRenderer.backgroundThreadInitInternal
, który powodował wywoływanie funkcjionBackgroundThreadGlContextCreated
tylko wtedy, gdy wywoływano funkcjęEGL14.eglCreateContext
. Usunięto inny błąd, w którym na zrzucie ekranu widoczna była widoczna usterka wywołana przez parametrverticalFlip
.(c674ad2) - Poprawiono sprawdzanie wersji XML (
WatchFaceService
) – ładowanie odbywało się z niewłaściwego pakietu. (dfa06f3). - Zastępczy format przewodu korzysta teraz z pakietu wewnętrznego. Nie chcemy, by symbole zastępcze zakłócały działanie istniejących tarcz zegarka, które mogą korzystać z ukrytych wewnętrznych elementów a.s.w.c.ComplicationData. Wcześniej format przewodów danych
NoDataComplication
zawierał obiekt zastępczy w zwykłych polach (problematyczne było to, że stare tarcze zegarka renderowały niezamierzony ciąg zastępczy). Teraz w pełni wyizolujemy to pole, używając wewnętrznego pakietu (d5e7bd2).
Wersja 1.1.0-beta01
20 kwietnia 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-beta01
została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Teraz metody
WatchFaceMetadataClient
(getUserStyleSchema
,getComplicationSlotMetadataMap
,getUserStyleFlavors
) iHeadlessWatchFaceClient.getUserStyleFlavors
zgłaszają odznaczone zdarzenie wykonawcze klasy wykonawczej zamiastWatchFaceException
. (I0718a) - Szkolenie
WatchFaceMetadataClient.WatchFaceException
zostało przeniesione z zajęć, aby można było go użyć ponownie. (I4e869)
Poprawki błędów
WatchFaceMetadataClient
nie będzie już ulegać awarii po wysłaniu częściowej wiadomościComplicationSlotBounds
.(Iaafd)
Wersja 1.1.0-alfa05
6 kwietnia 2022 roku
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-alpha05
została zwolniona. Wersja 1.1.0-alpha05 zawiera te zatwierdzenia.
Nowe funkcje
- Możesz teraz określić, z którego źródła danych pochodzi
ComplicationData
, sprawdzając wskaźnikComplicationData.dataSource
. Niektóre tarcze zegarka mogą wykorzystać tę informację do dostosowania wyświetlania widżetu. (I44a73)
Zmiany w interfejsie API
- Metody
Renderer.CanvasRenderer
iRenderer.GlesRenderer
zostały wycofane i zastąpione elementamiRenderer.CanvasRenderer2
iRenderer.GlesRenderer2
, które obsługująSharedAssets
, które są przekazywane do metod renderowania. Do interoperacyjności z Javą wprowadziliśmyListenableCanvasRenderer2
iListenableGlesRenderer2
. (I31ffa) - Dodano możliwość definiowania smaków w usłudze
@WatchFaceFlavorsExperimental
– wstępnie skonfigurowana lista tarcz o stylu zegarka (I04dd0) Renderer.sharedAssets
to teraz StateFlow i usunęliśmy nieużywaneRenderer.SharedAssetsFactory
(I12ac5)- Usługa
UserStyleSchema.userStyleSettings
nie jest już wycofana (Iba7e3) - Dodaliśmy funkcję
HeadlessWatchFaceClient.getUserStyleSchemaDigestHash
, która pozwalaHeadlessWatchFaceClient
uniknąć stosunkowo niskiego nakładu pracy związanego z przekazywaniem schematu przez AIDL przed obliczeniem skrótu skrótu. (I33597) - Do zasady
WatchFaceMetadataClient
dodaliśmy ustawienieisUserStyleSchemaStatic
. Dzieje się tak tylko wtedy, gdyUserStyleSchema
można polegać, aby nie wprowadzać zmian, dopóki plik APK z tarczem zegarka nie zostanie zaktualizowany. (I45a3f) - Do interfejsu
UserStyleSchema
dodaliśmy poleceniegetDigestHash
, które oblicza hasz skrótu schematu. Dzięki temu można skutecznie określić, czyUserStyleSchema
uległ zmianie. (I2063d) - Nazwa konta
METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED
została zmieniona naMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED
(I9ba5d) - Nazwa aplikacji
UserStyleSetting.OnWatchEditorData
została zmieniona naUserStyleSetting.WatchFaceEditorData
. Zawiera ona dane używane wyłącznie przez edytor tarcz zegarka. (If3afb)
Wersja 1.1.0-alfa04
9 marca 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-alpha04
została zwolniona. Wersja 1.1.0-alpha04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Aktualne ustawienie
ComplicationData
może nie zawsze być dostępne (np. dane ComplicationData, które utraciły ważność w pamięci podręcznej), dlatego dodaliśmy w poluNoDataComplication
opcjonalne zastępcze dane ComplicationData i dodaliśmy te uprawnienia:ComplicationText.PLACEHOLDER
,MonochromaticImage.PLACEHOLDER
,SmallImage.PLACEHOLDER
,PhotoImage.PLACEHOLDER
, których można używać tylko w kontekście obiektu zastępczegoNoDataComplicationData
. Jeśli wybierzesz te symbole zastępcze, będą one wyświetlane z szarymi polami lub łukami. (I6285d) - Dodaliśmy
ComplicationData.getNextChangeInstant
, który informuje o następnym wyszukiwaniu dynamicznym po referencyjnym wyszukiwaniu dynamicznym, w którym dowolne pole widżetu może ulec zmianie. Jest ona używana wewnętrznie do planowania ramek do aktualizacji widżetów. Na przykład jeśli tarcza zegarka zwykle aktualizuje się raz na minutę, widżet zatrzymuje aktualizację tylko raz na sekundę. (I7ceb2) EditorSession.watchFaceId
można teraz używać na wszystkich poziomach interfejsu API. Dodatkowo jego wartość będzie teraz zawsze zgodna z wartościąWatchState.watchFaceInstanceId
. (I323b9)- Interfejs
getPendingIntentForTouchEvent
API nie jest już potrzebny, ponieważ problem został rozwiązany w ramach platformy, więc wszystkie powiązane z nim interfejsy API zostały usunięte. Tarcze zegarka nie muszą wykonywać żadnych specjalnych czynności, aby urządzeniePendingIntents
się uruchamiało, nawet jeśli niedawno został naciśnięty przycisk ekranu głównego. (I1f2e8) - Dodaliśmy parametr
RendererParameters.isForScreenShot
, który będzie się wyświetlać, jeśli renderowanie będzie dotyczyć zrzutu ekranu. Niektóre tarcze zegarka z animacjami muszą o tym wiedzieć, by wprowadzić poprawki i uzyskać jak najlepsze wyniki. (I96d99) - Dodaliśmy
WatchFaceExceptionReason
do aplikacjiWatchFaceException
, aby przybliżyć nieco kontekstu tego, co poszło nie tak. (I01d15) - Aplikacja
ComplicationDataSourceService.onImmediateComplicationRequest
została usunięta, a zamiast niej dodanoComplicationRequest.immediateResponseRequired
, aby zasygnalizować, że dostawca musi szybko odpowiedzieć (najlepiej, aby odpowiadał w czasie krótszym niż 100 ms). Pamiętaj, że ta funkcja jest chroniona za uprawnieniemcom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE
. (Ie6b23) - Zaktualizowana wartość null w Core i appcompat, aby dopasować ją do Tiramisu DP2 (I0cbb7).
Poprawki błędów
- Teraz aplikacja tarczy zegarka ulega awarii, jeśli weryfikacja schematu nie powiedzie się (Ia400f)
Wersja 1.1.0-alfa03
9 lutego 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-alpha03
została zwolniona. Wersja 1.1.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy eksperymentalną obsługę schematów stylów hierarchicznych. Do aplikacji
androidx.wear.watchface.style.UserStyleSetting.Option
dodaliśmy nową usługę:childSettings, z której początkowo korzysta tylkoListOption
. Dzięki temu można opisywać hierarchię stylów do użycia w interfejsach Edytora. Podstawowy element UserStyle pozostaje bez zmian i nadal ma wartośćMap<String, ByteArray>
. (Iaf6f4) - Dodaliśmy
WatchFace.OverlayStyle
, który umożliwia skonfigurowanie renderowania systemowej nakładki stanu na tarczy zegarka. (I8520d) - Wprowadziliśmy
clearWithBackgroundTintBeforeRenderingHighlightLayer
nowy opcjonalny parametr konstruktora dla elementuCanvasRenderer
(domyślnie jest to false). Ustawienie wartości „true” (prawda) powoduje usunięcie obszaru roboczego z odcieniem tła. (Ie01e5) - Dodano klucz metadanych
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED
, który umożliwia źródłom komplikacji wskazywanie, że mogą podawać wartość domyślną bez żadnej konfiguracji (Icc0d4). - Podczas edytowania tarczy zegarka często pojawia się zarówno instancja interaktywna, jak i bez interfejsu graficznego. Aby oszczędzać pamięć, wprowadziliśmy
Renderer.SharedAssets
, który umożliwia mechanizmowi renderowania tarcz zegarka udostępnianie stałych danych (np. tekstur i cieniowania) między instancjami. RegułyGlesRenderer.setEglConfig
iGlesRenderer.setEglDisplay
zostały wycofane. Nigdy nie było to przeznaczone do skonfigurowania, co doprowadziłoby do niezdefiniowanego zachowania. (I0d9e7) - Do obiektu
ComplicationSlot.Builder
dodaliśmy metodysetNameResourceId
isetScreenReaderNameResourceId
(które odwołują się do zasobów w postaci ciągu znaków) oraz odpowiednie metody pobierania wandroidx.wear.watchface.client.ComplicationSlotState
. Dzięki temu system będzie mógł pobierać nazwy ComplicationSlots do wykorzystania w edytorach i czytnikach ekranu. (If6c6a) WatchfaceMetadataClient.getUserStyleSchema
igetComplicationSlotMetadataMap
zgłaszają terazWatchFaceException
zamiastRemoteException
. (I86f11)- Nazwa usługi
onSynchronousComplicationRequest
i powiązanych funkcji w aplikacjiComplicationDataSourceService
została zmieniona naonImmediateComplicationRequest
itp. (I87ba0) - Edytory tarcz zegarka mają znacznie mniej miejsca na ekranie niż edytory towarzyszące, dlatego warto obsługiwać w tych edytorach różne ikony. Ta poprawka dodaje klasy
OnWatchEditorData
(zawierające obecnie tylko ikonę) do wszystkich UserStyleSettings oraz tam, gdzie to konieczne, do ich klas opcji. (If1886) - Dodaliśmy
@JvmOverloads
do konstruktora ListenableGlesRenderer, aby zapewnić lepsze współdziałanie z Javą. (I2974a)
Poprawki błędów
- Konstruktor
ListenableGlesRenderer
jest teraz poprawnie oznaczony jako@Throws(GlesException::class)
i można rozszerzać tę klasę w języku Java. (Iac6d0) - Poprawiono błąd związany z nieprawidłowym obsługą funkcji
PhotoImageComplicationData
tapAction (I1cc30)
Wersja 1.1.0-alfa02
12 stycznia 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-alpha02
została zwolniona. Wersja 1.1.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Aby ułatwić debugowanie i testowanie, w klasach
ComplicationData
i powiązanych z nimi zostały zastąpione metody „równa się”, „równa się” i „toString”, co ułatwia korzystanie z nich.
Zmiany w interfejsie API
- Metody
WatchfaceMetadataClient
ponownie zwracają parametrRemoteExceptions
w odpowiednich miejscach, co ułatwia kod klienta wychwytywanie błędów z tarczy zegarka. (I78785) - Klasy
ComplicationData
i podrzędne mają teraz kod skrótu, równa się i toString. (I24bc6)
Wersja 1.1.0-alfa01
15 grudnia 2021 roku
Aplikacja androidx.wear.watchface:watchface-*:1.1.0-alpha01
została zwolniona. Wersja 1.1.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
Elementy
UserStyleSchema
iComplicationSlots
można teraz definiować w formacie XML. Upraszcza to konstrukcję tarczy zegarka. ZapytaniaWatchFaceMetadataClient
są też szybsze, ponieważ nie wymagają powiązania z usługą w celu pobrania metadanych.WatchFaceMetadataClient
iListenableWatchFaceMetadataClient
nie są już eksperymentalne i staną się częścią stabilnego interfejsu API. System będzie opcjonalnie obsługiwać wiele wystąpień tarczy zegarka, z których każda będzie mieć własne opcje stylu zdefiniowane przez użytkownika. Będą one widoczne w selektorze tarczy zegarka. Aby można było włączyć tę tarczę, w pliku manifestu musi znaleźć się ten metatag danych.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />
Niektóre tarcze zegarka mają stan, który nie jest zarejestrowany w usłudze
UserStyle
. Aby umożliwić obsługę tego i wielu wystąpień, identyfikator instancji tarczy zegarka jest teraz dostępny w usłudzeWatchState.watchFaceInstanceId
.Aplikacja
ComplicationData
jest teraz przechowywana w pamięci podręcznej, aby widżety mogły wyświetlać się od razu po wczytaniu. CzasamiComplicationData
jest zapisywany w pamięci podręcznej przez system, a czasem jest zserializowany przez biblioteki tarcz zegarka. Po zserializowaniu wszelkie powiązane funkcje TapAction zostaną utracone, aComplicationData.tapActionLostDueToSerialization
zwróci wartośćtrue
, a tarcza zegarka powinna renderować widżet inaczej (np. wyszarzony lub półprzezroczysty), aby zasygnalizować, że nie można go kliknąć. System jak najszybciej wyśle zaktualizowane daneComplicationData
z atrybutemtapAction
.Niektóre pliki
ComplicationData
nie powinny być przechowywane w pamięci podręcznej przez długi czas. W związku z tym dodaliśmy bardziej ogólną funkcjęComplicationDataTimeline
. Pozwala to zapewnić wyświetlanie na tarczy zegarka sekwencjiComplicationData
ograniczonej czasowo, która może być przechowywana w pamięci podręcznej i aktualizowana automatycznie. Może to być na przykład prognoza pogody na dziś o różnych porach lub wiele nadchodzących wydarzeń w kalendarzu. RozszerzenieComplicationRequestListener
zostało rozszerzone o nową metodęonComplicationDataTimeline
, której możesz użyć do zwrócenia tych danych.Rozszerzyliśmy zakres
DefaultComplicationDataSourcePolicy
, dzięki czemu możesz określićComplicationType
dla podstawowego i dodatkowego źródła danych.Dodaliśmy obsługę widżetów synchronicznych w przypadku dostawców, w przypadku których widżet jest aktualizowany z większą częstotliwością niż zwykle – maksymalnie raz na sekundę, gdy tarcza zegarka jest widoczna, ale nie jest w tle. Uwaga: dostawcy widżetów synchronicznych mogą być używane w ograniczonym zakresie z powodu problemów z obciążeniem pamięci.
Zmiany w usłudze
PendingIntentTapListener
prawdopodobnie zostaną cofnięte, ponieważ rozwiązaliśmy podstawowy problem (tarcza zegarka nie może uruchamiać działań przez 5 sekund po naciśnięciu przycisku ekranu głównego) w ramach platformy.
Zmiany w interfejsie API
- Funkcja
ComplicationData.isCached
została zmieniona natapActionLostDueToSerialization
, co jest bardziej przydatne przy określaniu, czy przedział widżetu powinien być renderowany inaczej, aby zasygnalizować, że nie można go kliknąć. (I6de2f) - Element
ComplicationDataTimeline
został dodany do listywear-complication-data-source
. Pozwala to zapewnić wyświetlanie na tarczy zegarka sekwencjiComplicationData
ograniczonej czasowo, która może być przechowywana w pamięci podręcznej i aktualizowana automatycznie. Może to być na przykład prognoza pogody na dziś o różnych porach lub wiele nadchodzących wydarzeń w kalendarzu. RozszerzenieComplicationRequestListener
zostało rozszerzone o nową metodęonComplicationDataTimeline
, której możesz użyć do zwrócenia tych danych. Zastosowano nową otokę kotlinSuspendingTimelineComplicationDataSourceService
do zawieszania usług źródeł danych. (Idecdc) - Dodano
PendingIntentTapListener
iWatchFaceControlClient.getPendingIntentForTouchEvent
. Może to pomóc w rozwiązaniu problemu polegającego na tym, że platforma blokuje uruchamianie nowych aktywności przez 5 sekund po naciśnięciu przycisku ekranu głównego. (I98074) - Wprowadzono pamięć podręczną
ComplicationData
dla poszczególnych tarcz zegarka. Dzięki temu po wczytaniu tarczy zegarka będą mogły wyświetlać ostatnie znane wartości danych widżetu, dopóki system ich nie zaktualizuje. Istnieje nowa metoda interfejsu APIWatchFaceControlClient.hasComplicationCache
dla producentów OEM. Może to wpłynąć na strategię systemu dotyczącą wysyłania widżetów na tarczę zegarka. DodatkowoComplicationData
ma właściwośćisCached
i zalecamy, aby widżety z pamięci podręcznej były renderowane w inny sposób, ponieważtapAction
nie może być przechowywana w pamięci podręcznej i będzie miała wartośćnull
w pamięci podręcznej. (I404b0) - Identyfikator instancji tarczy zegarka jest teraz dostępny w
WatchState.watchFaceInstanceId
. Większość tarcz zegarka nie musi z niej korzystać, ale jeśli istnieje stan tarczy, który nie jest zapisany w schemacie, jest to klucz do identyfikacji wystąpienia tarczy. W tym celu możesz teraz podać identyfikator podczas nawiązywania połączenia z numeremWatchFaceControlClient.createHeadlessWatchFaceClient
. (I1ff98) - Rozszerzona funkcja
DefaultComplicationDataSourcePolicy
z możliwością ustawienia domyślnej wartościComplicationTypes
dla głównego, dodatkowego dostawcy oraz zastępczego dostawcy systemu. InterfejsComplicationSlot.defaultDataSourceType
został wycofany. (If0ce3) - Działanie
ComplicationSlot.configExtras
jest teraz zmienne i można je zaktualizować, zanim wywołasz funkcjęEditorSession.openComplicationDataSourceChooser()
. (I6f852) - Dodano
WatchFace.setComplicationDeniedDialogIntent
isetComplicationRationaleDialogIntent
. Te intencje są uruchamiane, aby wyświetlić okno z uzasadnieniem przed zażądaniem uprawnień do widżetu, a drugie okno wyjaśniające, że podczas próby edytowania widżetu po odmowie uprawnień potrzebne są uprawnienia do widżetu (lista wyboru dostawcy się nie otworzy, więc potrzebne jest okno). (I3a29c) - Elementy
UserStyleSchema
iComplicationSlots
można teraz definiować w formacie XML. Upraszcza to konstrukcję tarczy zegarka i przyspiesza zapytaniaWatchFaceMetadataClient
, ponieważ nie musi łączyć się z usługą w celu pobrania metadanych. (I85bfa) - Dodano element
InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent
, aby klient mógł określić, czy tarcza zegarka obsługujegetPendingIntentForTouchEvent
. (I0b917) - Wersje
WatchFaceMetadataClient
iListenableWatchFaceMetadataClient
nie są już eksperymentalne. Można ich używać do wydajnego uzyskiwania metadanych tarczy zegarka tam, gdzie jest to możliwe, bez otwierania segregatora z tarczą zegarka. (Ibb827) - Dodaliśmy obsługę widżetów synchronicznych, w przypadku których widżet jest aktualizowany z większą częstotliwością niż zwykle – maksymalnie raz na sekundę, gdy tarcza zegarka jest widoczna i nie wykonuje ją w tle. Aby można było korzystać z tego pliku, dostawca musi umieścić w swoim pliku manifestu nowy tag metadanych
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS
i zastąpić parametronSynchronousComplicationRequest
. W zależności od charakteru źródła danych może być również konieczne zastąpienieonStartSynchronousComplicationRequests
ionStopInteractiveComplicationRequests
, aby otrzymywać powiadomienia o tym, że widżet przechodzi do trybu interaktywnego, a kiedy z niego wychodzi. (I8fe9d)
Wersja 1.0
Wersja 1.0.1
9 lutego 2022 r.
Aplikacja androidx.wear.watchface:watchface-*:1.0.1
została zwolniona. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiono błąd związany z nieprawidłowym obsługą funkcji
PhotoImageComplicationData
tapAction (I1cc30)
Wersja 1.0.0
Grudzień 1, 2021
Aplikacja androidx.wear.watchface:watchface-*:1.0.0
została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje wersji 1.0.0
Pakiet androidx.wear.watchface
to nowa zalecana biblioteka do tworzenia tarcz zegarka z Wear OS. Udostępnia wiele nowych funkcji zamiast starej biblioteki pomocy dotyczącej urządzeń do noszenia.
- Styl użytkownika (np.zmiana palety kolorów, stylu wskazówek zegarka, wyglądu wskazówek godzin itp.) jest bezpośrednio obsługiwana przez bibliotekę (patrz
androidx.wear.watchface.style
). Teraz znacznie łatwiej można opracować edytor tarcz zegarka za pomocą aplikacji androidx.wear.watchface.editor, a tarczę zegarka można edytować w systemowej aplikacji towarzyszącej bez konieczności pisania dodatkowego kodu. - Sprawdzone metody Biblioteka automatycznie generuje etykiety treści czytnika ekranu na widżety (możesz też dodać własne), a liczba klatek na sekundę automatycznie spada, gdy bateria jest bliska rozładowania, i nie się ładuje, aby wydłużyć czas pracy na baterii.
- Do opracowania tarczy zegarka potrzeba mniej kodu, szczególnie w przypadku widżetów, które zawierają dużo treści przeniesionej do biblioteki.
Poprawki błędów
- Napraw
EditorSession.userStyle.compareAndSet
(I6f676) - Naprawianie bardzo krótkich opóźnień tarczy zegarka (Iffb97)
- Wyślij
InteractiveWatchFaceImpl.onDestroy
w wątku UI (I83340) - Naprawianie kilku problemów z odbiornikami (I7d25f)
Wersja 1.0.0-rc01
3 listopada 2021 r.
Aplikacja androidx.wear.watchface:watchface-*:1.0.0-rc01
została zwolniona. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
Napraw parametr dump() (wywoływany przez adb shell dumpsys), który nie działa w wyniku migracji przepływu. (087cf9e)
Zadbaj o prawidłową kolejność operacji writeDirectBootPrefs. Chcemy, aby parametr writeDirectBootPrefs był zawsze uruchamiany po initStyleAndComplications. W przeciwnym razie istnieje ryzyko opóźnienia w inicjowaniu wątku UI.(37650ac)
Sprawdź, czy wywoływana jest metoda Renderer.onDestroy. Jeśli mechanizm renderowania został utworzony, ale inicjowanie WF nie zostało ukończone i wywołuje mechanizm Engine.onDestroy, musimy wywołać metodę Renderer.onDestroy. (F9952dc)
Optymalizacja/poprawka: isBatteryLowAndNotCharge. Ta poprawka przenosi na wcześniejszą wcześniejszą konfigurację funkcji isBatteryLowAndNotCharge, co oznacza, że można ją przeprowadzić równolegle z funkcją createWatchFace. Dodatkowo słuchamy teraz: ACTION_POWER_DISCONNECTED. (ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive ma wartość false po zamknięciu (ab9774e)
Wersja 1.0.0-beta01
27 października 2021 roku
Aplikacja androidx.wear.watchface:watchface-*:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Wersja 1.0.0-alfa24
13 października 2021 r.
Aplikacja androidx.wear.watchface:watchface-*:1.0.0-alpha24
została zwolniona. Wersja 1.0.0-alfa24 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zajęcia z pakietu
androidx.wear.watchface.complications
zostały przeniesione do nowego projektuwear:watchface:watchface-complications
. Oznacza to, że nie możesz dołączyć tej biblioteki oraz wszystkich poprzednich wersji alfa usługiwear:watchface:watchface-complications-data
, ponieważ pojawią się błędy dotyczące zduplikowanych zajęć. (I97195) - Nazwa pliku Renderer.dump została zmieniona na Renderer.onDump, a do niej dodano adnotację @UiThread. (I44845)
- Nazwa konta
InteractiveWatchFaceClient.addWatchFaceReadyListener
została zmieniona naaddOnWatchFaceReadyListener
, a nazwaremoveWatchFaceReadyListener
została zmieniona naremoveOnWatchFaceReadyListener
. (I48fea) - EdytorSesja
getComplicationsPreviewData
igetComplicationsDataSourceInfo
nie zawieszają już funkcji. Zamiast tego są właściwościamiStateFlow<>
, których wartość jest początkowo równa zero. W sekcji ListenableEditorSession usunięto elementygetListenableComplicationPreviewData
igetListenableComplicationsProviderInfo
, które zostały zastąpione nowymi obiektamiStateFlow<>
z klasy podstawowej. Jeśli chcesz wychwytywać zmiany w kodzie Java, rozważ przekonwertowanie kodu naLiveData<>
przy użyciuandroidx.lifecycle.FlowLiveDataConversions.asLiveData
. (Ic5483)
Wersja 1.0.0-alfa23
29 września 2021 r.
Aplikacja androidx.wear.watchface:watchface-*:1.0.0-alpha23
została zwolniona. Wersja 1.0.0-alpha23 zawiera te zatwierdzenia.
Nowe funkcje
Biblioteka tarcz zegarka to teraz jedna grupa bibliotek, w związku z czym biblioteki zostały przeniesione i musisz zaktualizować importy Gradle w ten sposób:
Stary | Nowość |
---|---|
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 |
Zmiany w interfejsie API
- Przenieś oddzielną bibliotekę tarczy zegarka i widżet
androidx.wear
do grupy bibliotekandroidx.wear.watchface
. (b25f3c0) - Dodano element EditorRequest.canWatchFaceSupportHeadlessEditing, aby poinformować klienta, czy edytor tarczy zegarka obsługuje edytowanie bez interfejsu graficznego. Może to spowodować występowanie pewnych wyników fałszywie negatywnych, ponieważ obsługa rozszerzenia asop/1756809 będzie zwracać prawidłową wartość dla wszystkich przyszłych tarcz zegarka. (CA55590)
- Mechanizm renderowania udostępnia teraz metodę dump(), którą można zastąpić, by dodać dane niestandardowe do informacji generowanych przez WatchFaceService w usłudze aktywności ABD shell dumpsys. (95235f9)
- InteractiveWatchFaceClient.addWatchFaceReadyListener teraz określa wykonawcę jako pierwszy. (563ac2f)
- Usunięto parametr StateFlowCompatHelper. Zamiast niego należy użyć asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- Nie można już zmienić elementu CurrentUserStyleRepository.userStyle. (I44889)
- Nazwa zegarka WatchFaceReadyListener została zmieniona na OnWatchFaceReadyListener. (Ic12a9).
Poprawki błędów
- InteractiveInstanceManager.deleteInstance to call onDestroy Jest to wymagane, aby InteractiveWatchFaceImpl mógł zbierać śmieci.(fce4af8, b/199485839)