Tarcza zegarka
Uwaga: od 10 lipca 2024 r. tarcze zegarka muszą używać funkcji Obejrzyj format twarzy, aby na nowych zegarkach z zainstalowaną fabrycznie systemem Wear OS 5. Więcej informacji o zmianach, które widzimy dla użytkowników Centrum pomocy .
Dodatkowo na początku 2025 r. (dokładna data zostanie ogłoszona podczas w IV kwartale 2024 r.), wszystkie nowe tarcze zegarka opublikowane w Google Play muszą używać tarczy zegarka. Formatuj.
Najnowsza aktualizacja | Wersja stabilna | Kandydat do wydania | Wersja Beta | Wydanie alfa |
---|---|---|---|---|
17 kwietnia 2024 r. | 1.2.1 | - | - | 1.3.0-alfa03 |
Deklarowanie zależności
Aby dodać zależność w Wear, musisz dodać repozytorium Google Maven do swojego w projektach AI. Zapoznaj się z repozytorium Google Maven. .
Dodaj zależności artefaktów, których potrzebujesz w pliku build.gradle
aplikacji lub modułu:
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" }
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 odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.
Zobacz dokumentację narzędzia Issue Tracker. .
Wersja 1.3
Wersja 1.3.0-alfa03
17 kwietnia 2024 r.
Usługa androidx.wear.watchface:watchface-*:1.3.0-alpha03
została zwolniona. Wersja 1.3.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano element
EditorSession#setOverrideComplications
, który podczas edytowania tymczasowo ustawiaComplicationData
instancji tarczy zegarka. Jeśli widżety zmieniają się rzadko, jest to lepsze rozwiązanie niż przekazywanie zastąpień przezEditorSession#renderWatchFaceToBitmap
. (I19384).
Poprawki błędów
- Wcześniej funkcja
selectComplicationDataForInstant
wywoływała metodętoApiComplicationData
w przypadku dowolnych osi czasu, co oznacza, że kolejny test równości referencyjnej === zawsze kończył się niepowodzeniem. Oznaczało to, że widżety były odświeżane w każdej ramce, co doprowadzało do wyczerpania baterii. (717406).
Wersja 1.3.0-alfa02
3 kwietnia 2024 r.
Usługa androidx.wear.watchface:watchface-*:1.3.0-alpha02
została zwolniona. Wersja 1.3.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
- Używamy teraz równości odwołań do porównania najlepszych i
selectedData
, ponieważ operator „równa się” jest drogi. (446b00)
Zmiany interfejsu API
- Dodaliśmy do
GoalProgressComplicationData
dynamiczny interfejs API, który nie działa w trybie awaryjnym. (C33264)
Wersja 1.3.0-alpha01
7 lutego 2024 r.
Usługa androidx.wear.watchface:watchface-*:1.3.0-alpha01
została zwolniona. Wersja 1.3.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Obiekt
WatchFaceServices
może być inicjowany jednocześnie, dlatego powinien być bezstanowy. W związku z tym dodaliśmy w tym celu funkcjęStatefulWatchFaceService
, w której dodatkowy element utworzony przez użytkownika utworzony przezcreateExtra()
jest przekazywany do wszystkich zastąpień wywoływanych podczas inicjowania. - W
GlesRenderer2
jest teraz przeciążenie konstruktora, dzięki czemu możesz określić listę atrybutów do wypróbowania zeglChooseConfig
.
Zmiany interfejsu API
StatefulWatchFaceService
obsługuje teraz zastąpienie regułygetComplicationSlotInflationFactory
, do której jest przekazywany zdefiniowany przez użytkownika dodatek utworzony przez użytkownikacreateExtra()
. (I82d9f)- Niektóre tarcze zegarka muszą udostępniać dane pomocnicze utworzone w
createUserStyleSchema
innym metodom inicjowania. Ponieważ nie było lepszej alternatywy, deweloperzy zwykle ustawiali wersjęWatchFaceServices
jako stanową. Jest to niebezpieczne, ponieważ jednocześnie można utworzyć wiele instancji, co może prowadzić do błędów. Aby rozwiązać ten problem, wprowadziliśmy metodyStatefulWatchFaceService
iStatefulWatchFaceRuntimeService
, w których typ zdefiniowany przez użytkownika jest tworzony przez funkcjęcreateExtra()
i przekazywany do różnych metod tworzenia jako parametr. (If8a99). - Do pakietu
InteractiveWatchFaceClient
dodaliśmy funkcjęgetUserStyleFlavors
, która jest interesująca głównie dla producentów OEM. (I0f5d8) - W
GlesRenderer2
jest teraz przeciążenie konstruktora, dzięki czemu możesz określić listę atrybutów do wypróbowania zeglChooseConfig
. Dzięki temu na przykład możesz najpierw wypróbować konfigurację z antyaliasingiem i w razie potrzeby przełączyć się na inną. (I1Ba74) - Na Androidzie U obsługa
SystemDataSources.DATA_SOURCE_HEART_RATE
zostanie dodana do Wear OS. Ten widżet z pewnością będzie obsługiwać tylko widżetySHORT_TEXT
, ale zalecamy, abyComplicationSlot
akceptował równieżSMALL_IMAGE
, ponieważ OEM może zdecydować się na wyświetlanie skrótu do aplikacji do dbania o zdrowie zamiast wartości aktywnej. (I34223) - Dodaliśmy funkcję
METADATA_KEY_CONFIG_RESTORE_SUPPORTED
, która od Androida U określa, co się stanie po przywróceniu systemu z kopii zapasowej źródła danych do widżetu wMETADATA_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 nie jest, może dodać ustawienie metadanychMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
na Fałsz, co spowoduje oznaczenie miejsca widżetu jako nieskonfigurowanego. (I6c505)
Wersja 1.2
Wersja 1.2.1
24 stycznia 2024 r.
Usługa androidx.wear.watchface:watchface-*:1.2.1
została zwolniona. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto awarię zegarka Samsung Galaxy Watch 4, 5 6. (43f0b0)
Wersja 1.2.0
29 listopada 2023 r.
Usługa 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ę nowych typów widżetów, które są dostępne na Androidzie T:
GoalProgressComplicationData
, który jest podobny doRangedValueComplicationData
, ale służy do realizacji celu, w którym minimalna wartość minimalna domyślnie 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 zdjęcia. Można je wyświetlać w postaci wykresu kołowego, w którym kolory muszą mieć znaczenie w kontekście, ponieważ zazwyczaj nie ma już miejsca na dodawanie etykiet.
- Do usługi
RangedValueComplicationData
dodaliśmy obsługę opcjonalnejColorRanges
. Normalnie widżety są renderowane w kolorach wybranych przez tarczę zegarka, ale czasami najlepiej ustawić kolory, np.ComplicationDataSource
, gdy mają one określone znaczenie semantyczne. Na przykład: od czerwonego do niebieskiego, aby określić temperaturę. - Prawie każdy typ
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. - Od Androida T dostawcy OEM będą mogli do
ComplicationRequest#isForSafeWatchFace
określić, czy żądanie widżetu pochodzi z tarczy zegarka wymienionej na liście zdefiniowanej przez metadaneandroid.support.wearable.complications.SAFE_WATCH_FACES
w pliku manifestu dostawcy. Dostawca musi mieć uprawnieniecom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
, aby otrzymywać informacje inne niż TargetWatchFaceSafety.UNKNOWN. - Funkcja
UserStyleFlavors
jest obecnie funkcją nieeksperymentalną.
Wersja 1.2.0-rc01
18 października 2023 r.
Usługa 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.
Usługa androidx.wear.watchface:watchface-*:1.2.0-beta02
została zwolniona. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- To miejsce (
SuspendingComplicationDataSourceService#onDestroy
) jest teraz otwarte. Uwaga: wycofaliśmy obsługę domyślnego widżetu pogodowego w systemie.
Zmiany interfejsu API
- Przywróć opcję „Udostępnij nowe źródło danych dla widżetów pogodowych”. (I6f335)
Wersja 1.2.0-beta01
23 sierpnia 2023 r.
Usługa 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 pogodowego.
Zmiany interfejsu API
- Dodaj opcję zastępczą domyślnego systemu pogody na potrzeby widżetów. (IA0994).
- Ta poprawka dodaje
WatchFaceRuntimeService
iWatchFaceControlClient.createWatchFaceRuntimeControlClient
oraz owijki gujawy. Dodają one obsługę środowisk wykonawczych tarczy zegarka, które są specjalnym rodzajem tarczy, która wczytuje jej definicję z innego pakietu. Obecnie Wear OS obsługuje tylko środowisko wykonawcze dla Formatu tarczy zegarka Android. (I2799f) - Ta poprawka jest kontynuacją do aosp/2636578, gdzie zmieniamy nazwy int defs, więc nie trzeba zmieniać kodu w zależności od wartości
WatchFaceType
,CanvasType
,TapType
lubComplicationsSlotBoundsType
. (I4098B) - Zaktualizowaliśmy pliki interfejsu API, aby dodać adnotacje o pomijaniu zgodności. (I8e87a, b/287516207)
- Ta poprawka ujawnia stałe
WatchFaceType
wWatchFaceTypes
, stałeCanvasType
wCanvasTypes
, stałeTapType
wTapTypes
iComplicationsSlotBoundsType
wComplicationsSlotBoundsType
. (I3b85a, b/288750666) - Funkcja
WatchFace.OverlayStyle
jest bardzo rzadko używana i nie jest dobrze obsługiwana przez OEM, dlatego ją wycofujemy z zamiarem usunięcia w późniejszym czasie. (I7344a)
Wersja 1.2.0-alpha09
21 czerwca 2023 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha09
została zwolniona. Wersja 1.2.0-alfa09 zawiera te zatwierdzenia.
Nowe funkcje
RangedValueComplicationData.Builder
akceptuje terazDynamicFloat
, a nowa klasaDynamicComplicationText
jest dostępna jako podklasa klasyComplicationText
. Oba te elementy mogą wykorzystywać wyrażenia dynamiczne oraz powiązania platformy aktualizowane z częstotliwością 1 Hz na obsługiwanych urządzeniach z Wear 4.
Zmiany interfejsu API
- Dodano dynamiczne typy danych dotyczących dziennego dystansu, dziennych kalorii i dziennej liczby pięter. Klucze do źródeł informacji o stanie platformy są teraz dostępne pod adresem
PlatformHealthSources.Keys
(Ib7637) - Zastosuj funkcję
PlatformDataProvider
, aby widzieć tętno i dzienną liczbę kroków. InterfejsSensorGateway
został usunięty z publicznego interfejsu API. (I55b84) - Zmień nazwę
StateEntryValue
naDynamicDataValue
i zaktualizuj interfejsy API stanu doDynamicDataKey
. (If1c01). - Dodanie
AppDataKey
umożliwiającego dostęp do stanu przekazanego aplikacji; dodaniePlatformDataKey
na potrzeby dostępu do danych platformy, Dodano obsługę przestrzeni nazw wStateStore
. (I7985e) enable
/disablePlatformSource
metod zostało usuniętych zDynamicTypeEvaluator
. Rozmówca powinien być odpowiedzialny za aktualizacje. (I78c6D)- Zezwalaj na ograniczanie rozmiaru powiązanych typów danych. (IE2966).
Wersja 1.2.0-alpha08
19 kwietnia 2023 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha08
została zwolniona. Wersja 1.2.0-alfa08 zawiera te zatwierdzenia.
Nowe funkcje
- Od Androida T dostawcy widżetów z 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 zaufanych i niezaufanych tarcz zegarka.
Zmiany interfejsu API
- Propagacja klasy
@Deprecated
do usługi (I882d1, b/271441831) - Zmieniono nazwę parametru wartości dla:
Enum.valueOf
(Ia9b89) - Więcej zgłoszonych wyjątków od wartości enum (I818fe)
- Usunęliśmy
renderWatchFaceToSurface
na rzeczcreateRemoteWatchFaceView
, który jest oparty na SurfaceControlViewHost i umożliwia wywołującemu osadzenie widoku z tarczy zegarka, który jest renderowany, gdy klient wywołujeRemoteWatchFaceViewHost#renderWatchFace
. (IB311d) - Dodaliśmy
renderWatchFaceToSurface
do aplikacjiInteractiveWatchFaceClient
,HeadlessWatchFaceClient
iEditorSession
. Ta metoda jest zwykle wydajniejsza niż renderowanie na bitmapie. (Ieacad). - Nazwa
ObservableStateStore
została zmieniona naStateStore
. (Ieb0e2). - Zamiast argumentów konstruktora dodano
DynamicTypeEvaluator.Builder
, aby umożliwić użycie większej liczby opcjonalnych argumentów, w tym argumentObservableStateStore
, który teraz domyślnie ustawia pusty magazyn. (I6f832) - Zrefaktoryzowana kolejność parametrów w polu
DynamicTypeEvaluator
. (IC1ba4). - Wykonawca został dodany do metod
DynamicTypeEvaluator.bind
. (I346ab) - Do obiektu
BoundDynamicType
dodaliśmy metodęstartEvaluation
, która aktywuje ocenę po powiązaniu typu dynamicznego. (I19908). - Dostawcy widżetów z uprawnieniami
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
mogą zarejestrować metadaneandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
, które zastąpiąandroid.support.wearable.complications.SUPPORTED_TYPES
w przypadku bezpiecznych tarcz zegarka. (Id1c73). - Zmieniliśmy nazwę z
CustomValueUserStyleSettings2
naLargeCustomValueUserStyleSettings
. (IC17ac).
Poprawki błędów
DynamicTypeValueReceiver#onPreUpdate
został(a) usunięty(a). (I2dc35)
Wersja 1.2.0-alpha07
22 lutego 2023 roku
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha07
została zwolniona. Wersja 1.2.0-alfa07 zawiera te zatwierdzenia.
Nowe funkcje
Od Androida T dostawcy OEM będą mogli do
ComplicationRequest#isForSafeWatchFace
określić, czy żądanie widżetu pochodzi z tarczy zegarka wymienionej na liście zdefiniowanej przez metadaneandroid.support.wearable.complications.SAFE_WATCH_FACES
w pliku manifestu dostawcy. Aby otrzymywać informacje inne niżTargetWatchFaceSafety.UNKNOWN
, dostawca musi mieć uprawnieniecom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
.Możesz też używać Androida T
CustomValueUserStyleSetting2
o rozmiarze do 12,5 KB. Poprzedni limit dla plikuCustomValueUserStyleSetting
wynosił 1 KB. Pomimo zwiększonych limitów rozmiaru zalecamy programistom, by używali niewielkich ilości danych, ponieważ podczas edytowania ustawienia są przesyłane przez Bluetooth, a przepustowość Bluetootha jest ograniczona.
Zmiany interfejsu API
- Do
GlesRenderer
& dodaliśmy opcjonalny parametreglContextAttribList
GlesRenderer2
, który umożliwia ustawienieEGL14.EGL_CONTEXT_CLIENT_VERSION
przekazywanej doEGL14.eglCreateContext
. (I2a83e) - Przenieśliśmy biblioteki tarcz zegarka do
androidx.core.util.Consumer
zamiastjava.util.function.Consumer
. (I273f5) - Więcej zgłoszonych wyjątków od metody dostępu właściwości KT (Iff9d9)
- Dodaliśmy
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
, aby klient mógł określić, czy musi emulować obsługę w imieniu starych tarcz zegarka. (I24c89) - Zdecydowaliśmy, że pole
isForSafeWatchFace
powinno być elementemIntDef
trójstanowym. (Ief2f7). - W przypadku Androida T wprowadziliśmy pakiet
ComplicationRequest.isForSafeWatchFace
, który jest przeznaczony do użytku OEM i wymagacom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
. W przypadku źródeł danych w obrazie systemu ta wartość będzie ustawiona na „prawda”, jeśli tarcza zegarka, która wysłała żądanie, jest na liście bezpiecznych tarcz wskazanej przez źródło danych w pliku manifestu. (I0cbb6) - Na Androida T dodaliśmy pakiet
CustomValueUserStyleSetting2
o rozmiarze do 12,5 KB. Poprzedni limit dla plikuCustomValueUserStyleSetting
wynosił 1 KB. (I0B100)
Wersja 1.2.0-alpha06
25 stycznia 2023 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha06
została zwolniona. Wersja 1.2.0-alfa06 zawiera te zatwierdzenia.
Nowe funkcje
- Pracujemy nad dodaniem obsługi powiązań platform do komplikacji. Ta funkcja nie jest jeszcze gotowa do użycia, ale wkrótce zostanie dodana.
- Dodaliśmy obsługę XML
ComplicationSlot
dla nowych typów widżetów: GOAL_PROGRESS i WEIGHTED_ELEMENTS.
Poprawki błędów
- Naprawia wyciek, w wyniku którego edytor tarczy zegarka nie był prawidłowo uruchamiany na urządzeniach Samsung. (3B5987).
- Naprawia błąd, który powodował, że widżety nie wyświetlały się prawidłowo przy przełączaniu się między tarczą zegarka z wieloma ulubionymi. (B38ECE)
- Naprawia błąd serializacji z parametrem perOptionScreenReaderNames, który powodował awarię tarczy zegarka. (E9f466)
Wersja 1.2.0-alpha05
7 grudnia 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha05
została zwolniona. Wersja 1.2.0-alfa05 zawiera te zatwierdzenia.
Nowe funkcje
Jakiś czas temu dodaliśmy obsługę hierarchicznej klasy
UserStyleSettings
, a w Androidzie T można mieć więcej niż 1 elementComplicationSlotsUserStyleSetting
w hierarchii. W zależności od stylu wybranego przez użytkownika aktywna będzie tylko 1 funkcjaComplicationSlotsUserStyleSetting
.Zwiększamy obsługę czytników ekranu w językach
ListOption
iComplicationSlotsOption
, dodając polescreenReaderName
. Pamiętaj, że przed Androidem T to pole będzie ignorowane przez edytorów towarzyszących.
Zmiany interfejsu API
- Do pól
ListOption
iComplicationSlotsOption
dodaliśmy nowe opcjonalne polescreenReaderName
, które będzie dostępne dla edytorów. Będzie ono ignorowane przez edytorów towarzyszących na urządzeniach przed Androidem T. (I75326) - Od Androida T wiele elementów typu
ComplicationSlotsUserStyleSettings
jest teraz obsługiwanych w hierarchii stylów, ale tylko jeden z nich może być aktywny w danym momencie. Do elementuUserStyleSchema
dodaliśmy funkcję narzędziowąfindComplicationSlotsOptionForUserStyle
, aby ułatwić znalezienie aktywnego obiektuComplicationSlotsOption
, jeśli taki istnieje. (IC2b06) - Obiekt
RangedValuesTypes
został przeniesiony do obiektu towarzyszącego użytkownikaRangedValueComplicationData
i zmienił nazwę naTYPE_UNDEFINED
,TYPE_RATING
oraz dodano nowy obiektTYPE_PERCENTAGE
. (I55d02) - Zmieniliśmy nazwę eksperymentu
DynamicFloat
naFloatExpression
i oznaczyliśmy go jako@hide
. (Idf4f1) - Dodawanie adnotacji
@JvmDefaultWithCompatibility
(I8f206)
Wersja 1.2.0-alfa04
9 listopada 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha04
została zwolniona. Wersja 1.2.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
- W Androidzie T dodaliśmy obsługę 2 nowych typów widżetów:
GoalProgressComplicationData
iWeightedElementsComplicationData
. - Metoda
GoalProgressComplicationData
jest podobna doRangedValueComplicationData
, ale jej wartość może przekraczać wartość docelową (w przypadkuRangedValueComplicationData
wartość jest ograniczona do zakresu [min.. maks.]), co ma wpływ na wygląd strony, ponieważ może nie pasować do wszystkich tarcz zegarka. - Funkcja
GoalProgressComplicationData
obsługuje wykresy kołowe i podobne zestawienia prostych danych. - Dodaliśmy do usługi
RangedValueComplicationData
opcjonalną pomoc dotyczącą kategoriiColorRamps
. - W przypadku Androida T dodaliśmy do pakietu
ComplicationData
funkcjeComplicationPersistencePolicy
isetCachePolicy
, które obecnie pozwalają dostawcy określić, czy widżet ma być utrwalony (tzn. czy jest zapisany w pamięci podręcznej po ponownym uruchomieniu). Większość powikłań nie wymaga ustawienia kontroli pamięci podręcznej, ale dzięki temu można rozwiązać problemy z nieaktualnymi danymi w przypadku niektórych komplikacji, które często się aktualizują (np. komplikacji dotyczących danych zdrowotnych). Dodaliśmy teżComplicationDisplayPolicy
, gdyDO_NOT_SHOW_WHEN_DEVICE_LOCKED
informuje zgodną tarczę zegarka, by nie wyświetlała widżetu, gdy urządzenie jest zablokowane. (IC9574)
Zmiany interfejsu API
GoalProgressComplicationData
,WeightedElementsComplicationData
iColorRamp
nie są już w fazie eksperymentalnej. (Ica9e2).- Interfejsy
ComplicationPersistencePolicy
iComplicationDisplayPolicy
są teraz prawidłowo oznaczone jako interfejsy API typu T. (I31d88) - Wycofany konstruktor
ComplicationSlotOverlay
ma teraz konstrukcjęDeprecationLevel.WARNING
, która umożliwia ponowne wywołanie go z poziomu Javy. (IB308C) - Rozwiązaliśmy problemy ze zgodnością z pakietem
ComplicationRequestListener
,CanvasComplication
,ComplicationTapFilter
iInteractiveWatchFaceClient
, dodając do nich adnotacje@JvmDefaultWithCompatibility
(Id94fc). - Usunęliśmy eksperymentalne
ProtoLayoutComplicationData
iListComplicationData
. Historia dewelopera nie była jasna. Być może wrócimy tu w przyszłości. (I9df05) - Wróćmy do aplikacji
RangedValueComplicationData
:ValueType
.WeightedElementsComplicationData
obsługuje teraz kolor tła. Usunęliśmy usługęDiscreteRangedValueComplicationData
, ponieważ jest ona podzbiorem funkcjiWeightedElementsComplicationData
. (I6446C)
Poprawki błędów
- W kodzie równości i skrótu umieść
isForScreenShot
. Sprawdź, czyonRenderParametersChanged
otrzymuje prawidłową wartośćisForScreenshot
(I04a41). - Usunięto wyciek danych
WatchFaceControlService
z klientów bez interfejsu graficznego. (E90E00)
Wersja 1.2.0-alfa03
5 października 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha03
została zwolniona. Wersja 1.2.0-alfa03 zawiera te zatwierdzenia.
Nowe funkcje
- Nie wprowadziliśmy żadnych nowych funkcji, ale naprawiliśmy kilka błędów w edytorze tarcz zegarka.
Zmiany interfejsu API
- Wycofano
UserStyleSchema.userStyleSettings
, ponieważrootUserStyleSettings
nie jest już eksperymentem (Ie96e3) - Przenieś
rootUserStyleSettings
z eksperymentu (I8d6b3) - Oznaczyliśmy aplikację
WatchFaceColors
jako eksperymentalną, ponieważ nie jest obsługiwana przez wszystkie systemy (I6d75d) - Udostępnij
DisconnectReasons
w publicznym interfejsie API, aby działał z nimIntDef
. (I791f8)
Poprawki błędów
- Jeśli
SysUI
umrze, zamknij wszystkie otwarte edytory zegarka. JeśliSysUI
umrze, a edytor tarczy zegarka się nie zamknie, tarcza może pozostać w niespójnym stanie, ponieważ do zachowania wszelkich zmian stylu użytkownika system polega na funkcjiSysUI
.(ba762a - Napraw wyciek pamięci w
ComplicationDataSourceInfoRetriever
, w którym kontynuacja zgodności kotlinu działała jako poziom główny Gc i zachowywała aktywność edytora.(33ee06)
Wersja 1.2.0-alfa02
21 września 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha02
została zwolniona. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
Niektóre tarcze zegarka mają konfigurację inną niż
UserStyle
, która wpływa na nią wizualnie (np. wybiera zdjęcie w tle). DodaliśmyRenderer.sendPreviewImageNeedsUpdateRequest
, który umożliwia tarczę zegarka wysyłanie próśb o aktualizację obrazu podglądu. Pamiętaj, że do działania tej funkcji jest wymagany odpowiedni aktualny system.Dodaliśmy również interfejs API dla tarcz zegarka, dzięki któremu system może określić ich kolory na podstawie ich palety. Uwaga: ta funkcja została wprowadzona w wersji eksperymentalnej – po wprowadzeniu poprawki.
Prawie każdy typ
ComplicationData
obsługuje terazSmallImages
.
Zmiany interfejsu API
- Menedżer tapet może czasami zostać odłączony od wyszukiwarki i utworzony w inny. Dodaliśmy
DisconnectReason
int def i rozszerzonyClientDisconnectListener
z nową metodą, która obejmujeDisconnectReason
, pozwalając detektorowi obserwować odłączanie silnika. (45cce) - Dodano 2 opcjonalne parametry
nameResourceId
iscreenReaderResourceId
do konstruktoraComplicationSlotOverlay
(I157e8). - W przypadku nowego obciążenia typu
getOrCreateInteractiveWatchFaceClient
dodaliśmy opakowanie gujawy z elementemPreviewImageUpdateRequestedListener
. (Ic31f0). - Dodaliśmy
Renderer.sendPreviewImageNeedsUpdateRequest
, który jest przydatny w przypadku tarcz zegarka w innym stanie niżUserStyleSchema
, co wpływa na ich wygląd (np. tarcz z obrazem tła, który można wybrać). Po stronie klienta dodaliśmy dogetOrCreateInteractiveWatchFaceClient
jako opcjonalny parametrPreviewImageUpdateRequestedListener
, który pozwala obserwować te żądania. (Iff44a). - Uprościliśmy interfejs API do ujawniania funkcji
WatchFaceColors
. Teraz w mechanizmie renderowania dostępna jest prosta właściwość o nazwiewatchFaceColors
, którą można ustawić na tarczy zegarka. W razie potrzeby należy ją aktualizować w odpowiedzi na wszelkie zmiany stylu. Zamiast używaćWallpaperManager
do obserwowania zmian kolorów, dodaliśmyOnWatchFaceColorsListener
doInteractiveWatchFaceClient
. (I490bc) - Dodaliśmy klasę
WatchFaceColors
, która zawiera 3 najbardziej widoczne kolory tarczy zegarka, oraz dodaliśmy metody otwartewatchfaceColors
inotifyWatchFaceColorsChanged
do mechanizmu renderowania, pozwalają one systemowi uzyskać kolory tarczy zegarka za pomocąWallpaperManager.getWallpaperColors
. (I3d611) ShortTextComplicationData
,RangedValueComplicationData
,NoPermissionComplicationData
(oraz eksperymentalneDiscreteRangedValueComplicationData
,GoalProgressComplicationData
iWeightedElementsComplicationData
) obsługują terazSmallImages
. Jeśli tarcza zegarka zdecyduje się wyrenderować widżet w wielu kolorach, ma teraz możliwość użycia wielokolorowego elementuSmallImage
, tam gdzie wcześniej trzeba było używać obrazu monochromatycznego. (I257df)- Refaktoryzacja
PreviewImageUpdateRequestedListener
naConsumer<>
(Ia875d) - Zastąp niestandardowy typ pojedynczej abstrakcyjnej metody (SAM)
OnWatchfaceColorsListener
ogólnym typem SAM Java (konsument, I0c489) - Wycofaliśmy stare metody
getOrCreateInteractiveWatchFaceClient
ilistenableGetOrCreateInteractiveWatchFaceClient
, które nie określająPreviewImageUpdateRequestedListener
. (Iec502).
Poprawki błędów
- Nazwa konta
DisconnectReason.BINDER_DIED
została zmieniona naDisconnectReason.ENGINE_DIED
. (I4eb0e).
Wersja 1.2.0-alpha01
10 sierpnia 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.2.0-alpha01
została zwolniona. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy eksperymentalną obsługę różnych nowych formatów widżetów. To obszar aktywnego rozwoju. te nowe formaty mogą ulec zmianie bez powiadomienia.
CanvasComplicationDrawable
nie obsługuje obecnie mechanizmu renderowania. - Dodaliśmy też opcjonalne marginesy do boksów widżetów, które ułatwiają klikanie małych widżetów.
Zmiany interfejsu API
- Eksperymentalnej klasy
BoundingArc
nie można teraz zmienić. (If624a). - Małe widżety mogą być trudne do kliknięcia. Aby temu zaradzić, wprowadziliśmy obsługę marginesów, które zwiększają klikalny obszar bez wpływu na renderowanie. O ile nie określono inaczej (w kodzie lub w formacie XML),
ComplciationSlots
ma zerowe marginesy. (I14089) - Zmieniono podpis
getComplicationSlotInflationFactory(CurrentUserStyleRepository)
, aby zwracał niepustą instancję fabryczną. Zwracanie wartości null wcześniej powodowało błąd, więc umowa dotycząca interfejsu API jest bardziej zrozumiała. (I0fcc0) - Dodaliśmy argument
currentUserStyleRepository
do metodyWatchFaceService.getComplicationSlotInflationFactory
, aby zapewnić spójność zcreateComplicationSlotsManager
. (I2ddd2) - Funkcja
UserStyleFlavors
nie jest obecnie funkcją eksperymentalną. (I69cdc). - Usunęliśmy eksperymentalną
ValueType
zRangedValueComplicationData
i zamiast niej wprowadziliśmy eksperymentalnąDiscreteRangedValueComplicationData
, która jest podobna doRangedValueComplicationData
, z wyjątkiem zakresu liczb całkowitych & . Wprowadziliśmy również eksperymentalnąGoalProgressComplicationData
, która jest podobna doRangedValueComplicationData
, z tą różnicą, że chodzi o postęp w dążeniu do celu, w którym minimalnie domyślnie wynosi zero, a wartość może być większa niżtargetValue
. Uwaga: dla wszystkich wariantów atrybutuRangedValue
należy podać co najmniej jeden element monochromeImage, tekst lub tytuł. (I9590C) - Usunęliśmy pakiet
boundsWithMargins
z kategoriiComplicationSlotState
, ponieważ w oprogramowaniu systemowym nie ma żadnego przypadku użycia. (I42e26) - Dodaliśmy eksperymentalną obsługę elementu
WeightedElementsComplicationData
, która obejmuje tablicę Elementów (pary wagi i koloru) oraz opcjonalny tekst, tytuł i obraz. Można je wyświetlać w postaci wykresu kołowego, w którym kolory muszą mieć znaczenie w kontekście, ponieważ zazwyczaj nie ma już miejsca na dodawanie etykiet. (I87eea). - Eksperymentalne pole
ColorRamps
używane opcjonalnie przez funkcjeRangedValueComplicationData
iGoalProgressComplicationData
umożliwia teraz określenie sekwencji maksymalnie 7 kolorów oraz flagi informującej, czy kolory powinny być płynne, czy też należy renderować kolory jednolitego koloru o jednakowej wielkości. (I9f5bf) - Parametr
RangedValueComplicationData.drawSegmented
został zmieniony navalueType
, który jest liczbą całkowitą z odpowiednią wartościąValueType IntDef
, która nadaje znaczenie semantycznemu zakresowi wartości i może być używana przez mechanizm renderowania widżetu do wpływania na styl. (I0616B) - Do usługi
RangedValueComplicationData
dodaliśmy eksperymentalną obsługę opcjiColorRanges
. Normalnie widżety są renderowane w kolorach wybranych przez tarczę zegarka, ale czasami najlepiej ustawić kolory, np.ComplicationDataSource
, gdy mają one określone znaczenie semantyczne. Na przykład: od czerwonego do niebieskiego, aby określić temperaturę. (I5153a) - W aplikacji
RangedValueComplicationData
dodaliśmy eksperymentalną wskazówkę dotyczącądrawSegmented
. Wskazuje to mechanizmom renderowania, że muszą narysować wskaźnik zakresu wartości z segmentami, gdzie 1 segment = 1 jednostka. (I7d7c1)
Poprawki błędów
- Dodaliśmy możliwość definiowania obiektu
ComplicationSlotBounds
w odniesieniu do wstępnie zdefiniowanego układu współrzędnych ekranu. (I0985D)
Wersja 1.1
Wersja 1.1.1
10 sierpnia 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.1.1
została zwolniona. Wersja 1.1.1 zawiera te zatwierdzenia.
- Jest to wersja z poprawką błędów i zdecydowanie zachęcamy użytkowników do uaktualnienia do wersji 1.1.0.
Poprawki błędów
Inicjowanie tarczy zegarka jest asynchroniczne. Jeśli otrzymasz widżet, zanim tarcza będzie gotowa, zostanie ona umieszczona na liście
pendingInitialComplications
i zastosuje się później. FunkcjapendingInitialComplications
została zastosowana zbyt wcześnie, co oznaczało, że podczas inicjowania tarczy zegarka widżety nadal były umieszczane na urządzeniupendingInitialComplications
i ignorowane. Rozwiązaliśmy już ten problem. Oprócz tego ta poprawka zawiera błąd, który powodował, że usługaComplicationRenderer
niewłaściwie próbowała asynchronicznie wczytywać obiekty zastępcze, co powodowało, że grafika kompilacji się nie aktualizowała. Ta poprawka ma nadzieję, że rozwiązuje ten teoretyczny błąd polegający na tym, że należy scalić wiele elementówpendingInitialComplications
. (0d03ba3)Napraw potencjalną blokadę zakleszczeń w regionie
InteractiveInstanceManager
, w której systemgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance
blokował blokadę dłużej, niż było to konieczne. Zazwyczaj zwykle oczekujemy, że interfejsengine.setUserStyle
będzie szybko działać, ale jeśli z jakiegoś powodu nie jest, może dojść do zakleszczenia lub błędu ANR. Ta poprawka pozwala wyeliminować niepotrzebną pracę, eliminując ryzyko zakleszczeń.(5a2adca)Napraw kilka błędów, które spowodowały, że witryna
WatchFaceService
została zachowana. WakeLock może czasem zachowaćWatchFaceService
. Dodanie wywołaniarelease()
rozwiązuje ten problem.StateFlows
może też zachowaćWatchFaceService
, anulując podstawowe poprawkiCoroutineScopes
.(fd48138)Dodaj limity czasu oczekiwania do
awaitDeferredWatchFace
* i naprawwatchfaceOverlayStyle
NullPointerException
. W normalnych okolicznościach nie powinno to przekraczać limitu czasu, łącznie z sytuacjamiDirectBoot
po nowej instalacji i sytuacjach, w których obciążenie procesora jest wysokie. Naprawiliśmy też, jeśli funkcjagetWatchfaceOverlayStyle
została wywołana po funkcjiclose()
.(a4c3a5a).
Wersja 1.1.0
15 czerwca 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.1.0
została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.0.0
Ulepszona edycja:
- Dodaliśmy obsługę schematów hierarchicznych, co umożliwia opisywania hierarchii stylów przez interfejsy użytkownika edytora. Możesz teraz określić oddzielne ikony do użycia na tarczy zegarka i w edytorach towarzyszących.
- Istnieje możliwość akceptacji dla wielu wystąpień tarczy zegarka – każda instancja ma unikalny identyfikator dostępny na wszystkich platformach API.
- Możesz teraz określać czytelne nazwy dla użytkownika
ComplicationSlots
, które będą używane w edytorach. - Eksperymentalna obsługa stylów „smaków” i wyselekcjonowane style, które będą widoczne w edytorze towarzyszącym.
- Podczas edytowania 2 instancji tarczy zegarka możesz teraz współdzielić zasoby, oszczędzając pamięć
- Podczas wybierania widżetu w edytorze tarczy zegarka wstępnie wybierany jest obecny dostawca.
Ulepszone widżety:
- Możesz teraz określić
ComplicationType
dla podstawowych i dodatkowych źródeł danych, co daje deweloperom większą elastyczność podczas gotowego działania. - Dodaliśmy funkcję
ComplicationDataTimeline
, która zapewnia sekwencję ograniczonych czasowo danych, które są wysyłane do tarczy zegarka, które mogą być buforowane i aktualizowane automatycznie. Na przykład prognoza pogody na dziś o różnych porach lub nadchodzących wydarzeniach w kalendarzu. - Komponent
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 zdefiniować w pliku XML. Upraszcza to tworzenie tarczy zegarka i pozwala systemowi szybciej wysyłać zapytania o metadane. - Tarcze zegarka mogą teraz wpływać na kolory używane do renderowania nakładki systemowej.
Wersja 1.1.0-rc01
18 maja 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.1.0-rc01
została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadziliśmy kilka ulepszeń w obsłudze obsługi kodu XML tarczy zegarka, aby ułatwić określenie elementu
ComplicationSlotBounds
i pomocnych odwołań. Trwają eksperymenty z wiodącym widżetemBoundingArc
. Przesyłamy go do usługidrawHighlight
, ale nie zalecamy jej na razie używać.
Zmiany interfejsu API
- Dodaliśmy eksperymentalne przeciążenie
drawHighlight
, które akceptuje parametrBoundingArc
. (I705f8) - Kod XML tarczy zegarka obsługuje teraz odwołania do zasobów. Pozwala na używanie tych samych stałych zarówno w pliku XML, jak i w kodzie. (I3ef61).
- Dodaliśmy możliwość definiowania
ComplicationSlotBounds
w formularzachcenter_x
,center_y
,size_x
,size_y
. Teraz można też używać różnych jednostek (np. dp), korzystając z odwołań do zasobów. (IAce98).
Poprawki błędów
- Napraw problem
runBlockingWithTracing
, który uruchamiał zadania w niewłaściwym kontekście.(4f595fe) - Włącz synchronizację synchroniczną
BaseEditorSession.close
. Problem z asynchronizacją funkcjiBaseEditorSession.close
polega na tym, że za późno udostępniliśmyComplicationDataSourceInfoRetriever
, co spowodowało spam ostrzegawczy w dzienniku logcat. Było to prawdopodobnie nieszkodliwe, ale spamowanie logcat jest uciążliwe i należy go unikać.(35a5308)
Wersja 1.1.0-beta02
11 maja 2022 roku
Usługa 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
, które nie są jeszcze gotowe do użycia, ale zachęcamy do zaglądania w to miejsce.
Zmiany interfejsu API
- Dodaliśmy
BoundingArc
, eksperymentalną klasę opisującą geometrię boksu do widżetów brzegowych. Zostało ono dodane do:ComplicationSlot
i przeprowadzone przez firmyComplicationSlotState
iWatchFaceMetadataClient
. (I61a40) - Dodaliśmy możliwość dziedziczenia ustawień w pliku XML
UserStyleSetting
. Pozwala zmniejszyć szczegółowość i udostępniać ustawienia między tarczami zegarka. (Ief841). - Dodaliśmy 2 nowe typy eksperymentalne
ComplicationData
:ListComplicationData
orazProtoLayoutComplicationData
Obecnie żaden z tych typów nie obsługuje renderowania, a Wear OS ich obecnie nie rozpoznaje po dodaniu do pliku manifestuComplicationDataSource's
. (I1811C).
Poprawki błędów
- Napraw serializację typu
TimeLineEntry
. Nie zserializowaliśmy typuTimeLineEntry
, co oznaczało, żeTimeLineEntries
typu NoData przechowywane w pamięci podręcznej byłyby błędnie interpretowane, ponieważ typ widżetu nadrzędnego prowadzi do NPE w przypadku uzyskania dostępu do nieistniejących wymaganych pól. (55ffdf5). - Naprawianie błędu, który powodował, że użytkownik
setComplicationData
usunął pola osi czasu(fb392f5) - Naprawia błąd, który powodował, że bardzo sporadycznie funkcja
runBlockingWithTracing
prowadziła do NPE(12ca62e). - Usunęliśmy błąd, który powodował, że czasem po otrzymaniu widżetu pojawia się
ClassNotFoundException: android.support.wearable.complications.ComplicationText
.(217942d9) - Naprawia błąd w trybie
GlesRenderer.backgroundThreadInitInternal
, który powodował, że wywołanieonBackgroundThreadGlContextCreated
odbywało się tylko w przypadku wywołania funkcjiEGL14.eglCreateContext
. Naprawiono inny błąd związany z wizualną usterką na zrzucie ekranu spowodowanym przez regułęverticalFlip
(c674ad2). - Popraw sprawdzanie wersji XML (
WatchFaceService
), ponieważ ładował się on z niewłaściwego pakietu.(dfa06f3) - Format przewodu zastępczego używa teraz pakietu wewnętrznego. Nie chcemy, aby obiekty zastępcze zepsuły istniejące tarcze zegarka, które mogą korzystać z ukrytego wewnętrznego pliku a.s.w.c.ComplicationData. Dotychczas format drutu danych
NoDataComplication
zapisywał obiekt zastępczy w zwykłych polach (problematyczny, ponieważ stare tarcze zegarków renderowałyby ciąg zastępczy, co nie było zamierzone). Zamiast tego do pełnego wyizolowania takiego obiektu używamy teraz pakietu wewnętrznego (d5e7bd2).
Wersja 1.1.0-beta01
20 kwietnia 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.1.0-beta01
została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Teraz metody
WatchFaceMetadataClient
(getUserStyleSchema
,getComplicationSlotMetadataMap
,getUserStyleFlavors
) iHeadlessWatchFaceClient.getUserStyleFlavors
zgłaszają niezaznaczony wyjątek RuntimeException zamiastWatchFaceException
. (I0718a) - Element
WatchFaceMetadataClient.WatchFaceException
został przeniesiony poza zajęcia, aby można było go ponownie użyć. (I4e869).
Poprawki błędów
WatchFaceMetadataClient
nie będzie już ulegać awarii po wysłaniu częściComplicationSlotBounds
.(Iaafd)
Wersja 1.1.0-alpha05
6 kwietnia 2022 roku
Usługa androidx.wear.watchface:watchface-*:1.1.0-alpha05
została zwolniona. Wersja 1.1.0-alfa05 zawiera te zatwierdzenia.
Nowe funkcje
- Możesz teraz określić, z którego źródła danych został wysłany
ComplicationData
, sprawdzając elementComplicationData.dataSource
. Niektóre tarcze zegarka mogą korzystać z tego do dostosowywania wyświetlacza widżetów. (I44a73)
Zmiany interfejsu API
- Metody
Renderer.CanvasRenderer
iRenderer.GlesRenderer
zostały wycofane i zastąpione elementamiRenderer.CanvasRenderer2
orazRenderer.GlesRenderer2
, które obsługująSharedAssets
przekazywane do metod renderowania. W przypadku interoperacyjności języka Java wprowadziliśmyListenableCanvasRenderer2
iListenableGlesRenderer2
. (I31ffa). - Dodano możliwość definiowania smaków w
@WatchFaceFlavorsExperimental
– wstępnie skonfigurowana lista tarcz zegarka (I04dd0) Renderer.sharedAssets
to teraz StateFlow i usunęliśmy nieużywany parametrRenderer.SharedAssetsFactory
(I12ac5)- Interfejs
UserStyleSchema.userStyleSettings
nie jest już wycofany (Iba7e3) - Dodaliśmy funkcję
HeadlessWatchFaceClient.getUserStyleSchemaDigestHash
, która pozwalaHeadlessWatchFaceClient
uniknąć stosunkowo niewielkiego narzutu związanego z przekazywaniem schematu przez AIDL przed obliczeniem haszu skrótu. (I33597) - Do zasady
WatchFaceMetadataClient
dodaliśmy wartośćisUserStyleSchemaStatic
. Ma ona wartość prawda tylko wtedy, gdy pakietUserStyleSchema
może się zmieniać, chyba że pakiet APK tarczy zegarka zostanie zaktualizowany. (I45a3f) - Do elementu
UserStyleSchema
dodaliśmy funkcjęgetDigestHash
, która oblicza hasz skrótu schematu. Może to służyć do efektywnego sprawdzania, czy w elemencie typuUserStyleSchema
uległy zmianie. (I2063D) - Nazwa tematu zmieniona z
METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED
naMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED
(I9ba5d) - Nazwa
UserStyleSetting.OnWatchEditorData
została zmieniona naUserStyleSetting.WatchFaceEditorData
. Zawiera dane, które są używane wyłącznie przez edytor tarczy zegarka. (If3afb)
Wersja 1.1.0-alfa04
9 marca 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.1.0-alpha04
została zwolniona. Wersja 1.1.0-alfa04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Aktualne
ComplicationData
może nie być dostępne (np. wygasło ComplicationData w pamięci podręcznej), dlatego wzbogaciliśmyNoDataComplication
o opcjonalny obiekt zastępczy ComplicationData oraz dodaliśmyComplicationText.PLACEHOLDER
,MonochromaticImage.PLACEHOLDER
,SmallImage.PLACEHOLDER
iPhotoImage.PLACEHOLDER
, których można używać tylko wewnątrz kontekstu zmiennejNoDataComplicationData
. Jeśli wybierzesz te obiekty zastępcze, sugerowane będzie renderowanie z szarą ramką lub łukami. (I6285D) - Dodaliśmy
ComplicationData.getNextChangeInstant
, który informuje o kolejnym wyszukiwaniu dynamicznym, przy którym dowolne pole widżetu może się zmienić. Jest używana wewnętrznie do planowania klatek na potrzeby aktualizacji widżetów. Na przykład: Jeśli tarcza zegarka zwykle aktualizuje się raz na minutę, ustawienie widżetu zatrzymania spowoduje, że będzie się ona aktualizować 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 zasadąWatchState.watchFaceInstanceId
. (I323b9)- Interfejs API
getPendingIntentForTouchEvent
nie jest już potrzebny, ponieważ problem został już rozwiązany w ramach platformy, więc wszystkie powiązane interfejsy API zostały usunięte. Tarcze zegarka nie muszą robić nic szczególnego, aby aplikacjaPendingIntents
się uruchomiła, nawet jeśli niedawno został naciśnięty przycisk ekranu głównego. (I1f2e8) - Dodaliśmy wartość
RendererParameters.isForScreenShot
, która ma wartość Prawda, jeśli renderowanie dotyczy zrzutu ekranu. Niektóre tarcze z animacjami muszą o tym wiedzieć, aby móc wprowadzać odpowiednie poprawki. (I96d99) - Dodaliśmy
WatchFaceExceptionReason
do dokumentuWatchFaceException
, by wyjaśnić, co poszło nie tak. (I01d15). - Usunięto reakcję
ComplicationDataSourceService.onImmediateComplicationRequest
. Zamiast niej dodaliśmy ciągComplicationRequest.immediateResponseRequired
, który zasygnalizuje, że dostawca musi odpowiedzieć szybko (najlepiej w czasie < 100 ms). Pamiętaj, że ta funkcja jest chroniona przez uprawnieniecom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE
z podwyższonymi uprawnieniami. (IE6b23) - Zaktualizowano wartość null w podstawowej i kompatybilnej aplikacji, aby dopasować ją do Tiramisu DP2 (I0cbb7)
Poprawki błędów
- Teraz aplikacja tarczy zegarka ulega awarii (z wyjątkiem w przypadku niepowodzenia weryfikacji schematu (Ia400f)
Wersja 1.1.0-alfa03
9 lutego 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.1.0-alpha03
została zwolniona. Wersja 1.1.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaliśmy eksperymentalną obsługę schematów stylów hierarchicznych. Do aplikacji
androidx.wear.watchface.style.UserStyleSetting.Option
dodaliśmy nową usługę. Są to ustawienia podrzędne, których początkowo używa tylkoListOption
. Pozwala to opisywać hierarchię stylów do wykorzystania w interfejsach edytora. Bazowy styl UserStyle nie uległ zmianie i nadal toMap<String, ByteArray>
. (Iaf6f4). - Dodaliśmy
WatchFace.OverlayStyle
, który pozwala tarczy zegarka skonfigurować renderowanie nakładki stanu systemu. (I8520D) - Wprowadziliśmy
clearWithBackgroundTintBeforeRenderingHighlightLayer
nowy opcjonalny parametr konstruktora dlaCanvasRenderer
(domyślnie jest to false). Jeśli ustawisz wartość prawda, obszar roboczy zostanie wyczyszczony z kolorem tła. (IE01e5). - Dodano klucz metadanych
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED
, który pozwala źródłom danych widżetów sygnalizowanie, że mogą podać wartość domyślną bez konieczności konfigurowania (Icc0d4). - Podczas edytowania tarczy zegarka często pojawia się zarówno instancja interaktywna, jak i bez interfejsu graficznego. Aby pomóc oszczędzać pamięć, wprowadziliśmy
Renderer.SharedAssets
, który umożliwia mechanizmowi renderowania tarczy zegarka udostępnianie stałych danych (np. tekstur i cieniowań) między instancjami. MetodyGlesRenderer.setEglConfig
iGlesRenderer.setEglDisplay
zostały wycofane i nigdy nie powinny być możliwe do skonfigurowania, a jego działanie spowodowałoby nieokreślone zachowanie. (I0d9e7) - Dodaliśmy
setNameResourceId
isetScreenReaderNameResourceId
(które odwołują się do zasobów w postaci ciągu znaków) doComplicationSlot.Builder
i odpowiednich mechanizmów pobierania wandroidx.wear.watchface.client.ComplicationSlotState
. Dzięki temu system może pobierać nazwy obiektów ComplicationSlots do wykorzystania w edytorach i czytnikach ekranu. (If6c6a). WatchfaceMetadataClient.getUserStyleSchema
igetComplicationSlotMetadataMap
przesyłają terazWatchFaceException
zamiastRemoteException
. (I86f11)- Nazwy funkcji
onSynchronousComplicationRequest
i powiązanych z nimi funkcji w aplikacjiComplicationDataSourceService
zostały zmienione naonImmediateComplicationRequest
itp... (I87Ba0) - Edytory tarcz zegarka oferują znacznie mniej miejsca na ekranie niż edytory towarzyszące, dlatego warto obsługiwać różne ikony w edytorach tarcz zegarka. Ta poprawka dodaje element
OnWatchEditorData
(obecnie zawierający tylko ikonę) do wszystkich klas UserStyleSettings, a także tam, gdzie jest to konieczne, do ich klas Option. (If1886). - Do konstruktora ListenableGlesRenderer dodaliśmy element
@JvmOverloads
, aby zapewnić lepszą współpracę w języku Java. (I2974a)
Poprawki błędów
- Konstruktor
ListenableGlesRenderer
jest teraz prawidłowo oznaczony jako@Throws(GlesException::class)
i można teraz rozszerzyć tę klasę w kodzie Java. (Iac6d0). - Naprawia błąd związany z nieprawidłowym działaniem kliknięcia (
PhotoImageComplicationData
) jest prawidłowo obsługiwany (I1cc30)
Wersja 1.1.0-alfa02
12 stycznia 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.1.0-alpha02
została zwolniona. Wersja 1.1.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
- Aby ułatwić debugowanie i testowanie,
ComplicationData
i powiązane podklasy mają teraz zastąpione metody haszcode, równości i toString, co ułatwia ich pracę.
Zmiany interfejsu API
- Metody
WatchfaceMetadataClient
ponownie powodują wywołanie metodyRemoteExceptions
w odpowiednich miejscach. Ułatwia to kodowi klienta wychwycenie błędów na tarczy zegarka. (I78785) ComplicationData
i klasy podrzędne mają teraz kod skrótu, równa się i toString. (I24Bc6)
Wersja 1.1.0-alpha01
15 grudnia 2021 roku
Usługa androidx.wear.watchface:watchface-*:1.1.0-alpha01
została zwolniona. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
Elementy
UserStyleSchema
iComplicationSlots
można teraz zdefiniować w pliku XML. Upraszcza to tworzenie tarczy zegarka. Poza tym zapytaniaWatchFaceMetadataClient
są szybsze, ponieważ nie muszą być powiązane z usługą, aby uzyskać metadane.WatchFaceMetadataClient
iListenableWatchFaceMetadataClient
nie są już eksperymentalne i stają się częścią stabilnego interfejsu API. System będzie mógł opcjonalnie obsługiwać wiele wystąpień tarczy zegarka, z których każda będzie mieć inny styl zdefiniowany przez użytkownika. Będą one widoczne w selektorze tarcz zegarka. Aby można było włączyć tę funkcję, tarcza musi zawierać w pliku manifestu ten metatag, który zawiera ten tag.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />
Niektóre tarcze zegarka mają stan, którego nie rejestruje
UserStyle
. W związku z tym identyfikator instancji tarczy zegarka jest teraz dostępny w usłudzeWatchState.watchFaceInstanceId
.Plik
ComplicationData
jest teraz buforowany, aby widżety mogły być wyświetlane od razu po wczytaniu. CzasamiComplicationData
jest przechowywany w pamięci podręcznej systemu przez system, a czasem jest szeregowany przez biblioteki tarczy zegarka. Po zserializacji powiązane działanie TapAction zostanie utracone, jeśli tak się stanie,ComplicationData.tapActionLostDueToSerialization
zwróci wartośćtrue
, a tarcza zegarka powinna inaczej renderować widżet (np. wyszarzony lub półprzezroczysty), aby zasygnalizować, że nie można go kliknąć. System jak najszybciej wyśle zaktualizowany plikComplicationData
z atrybutemtapAction
.Niektóre
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
. Przy jego użyciu można utworzyć sekwencję ograniczonych czasowo wartościComplicationData
, które mają być wysyłane do tarczy zegarka, która może być buforowana i aktualizowana automatycznie. Na przykład prognoza pogody na dziś o różnych porach lub nadchodzących wydarzeniach w kalendarzu. MetodaComplicationRequestListener
została rozszerzona o nową metodęonComplicationDataTimeline
, której możesz użyć do zwrócenia tych danych.Źródło
DefaultComplicationDataSourcePolicy
zostało rozszerzone, możesz więc określićComplicationType
dla podstawowych i dodatkowych źródeł danych.Dodaliśmy obsługę aplikacji z widżetami synchronicznymi, w przypadku których widżet jest aktualizowany częściej niż zwykle, do raz na sekundę, gdy tarcza zegarka jest widoczna bez otoczenia. Uwaga: dostawcy widżetów synchronicznych mogą mieć ograniczone wykorzystanie ze względu na potencjalne problemy z obciążeniem pamięci.
Zmiany w usłudze
PendingIntentTapListener
prawdopodobnie zostaną cofnięte, ponieważ rozwiązaliśmy podstawowy problem (nie jest możliwe, aby tarcza uruchamiała aktywności przez 5 sekund po naciśnięciu przycisku ekranu głównego) w ramach platformy.
Zmiany interfejsu API
- Komponent
ComplicationData.isCached
został zmieniony natapActionLostDueToSerialization
. Jest to bardziej przydatne przy określaniu, czy boks widżetu ma być renderowany inaczej, by zasygnalizować, że nie można go kliknąć. (I6de2f). - Dodano
ComplicationDataTimeline
do listywear-complication-data-source
. Przy jego użyciu można utworzyć sekwencję ograniczonych czasowo wartościComplicationData
, które mają być wysyłane do tarczy zegarka, która może być buforowana i aktualizowana automatycznie. Na przykład prognoza pogody na dziś o różnych porach lub nadchodzących wydarzeniach w kalendarzu. MetodaComplicationRequestListener
została rozszerzona o nową metodęonComplicationDataTimeline
, której możesz użyć do zwrócenia tych danych. Udostępniliśmy nowy kod kotlinSuspendingTimelineComplicationDataSourceService
do zawieszania usług źródła danych. (Idecdc) - Dodano
PendingIntentTapListener
iWatchFaceControlClient.getPendingIntentForTouchEvent
. Może to pomóc w rozwiązaniu problemu polegającego na tym, że platforma blokuje uruchamianie nowych działań przez 5 sekund po naciśnięciu przycisku ekranu głównego. (I98074) - Wprowadziliśmy pamięć podręczną
ComplicationData
dla poszczególnych tarcz zegarka. Dzięki temu tarcza zegarka może wyświetlać ostatnie znane wartości widżetów podczas wczytywania, dopóki system nie zdołał ich zaktualizować. Dostępna jest nowa metoda interfejsu APIWatchFaceControlClient.hasComplicationCache
przeznaczona 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ż elementutapAction
nie można buforować i znajduje się on w takim widżetie jakonull
. (I404b0) - Identyfikator instancji tarczy zegarka jest teraz dostępny w
WatchState.watchFaceInstanceId
. Większość tarcz zegarka nie musi z niego korzystać, ale jeśli istnieje stan tarczy zegarka, który nie jest przechowywany w schemacie, klucz ten jest niezbędny do rozpoznania wystąpienia tarczy zegarka. Aby Ci w tym pomóc, możesz teraz podać identyfikator podczas rozmowy z firmąWatchFaceControlClient.createHeadlessWatchFaceClient
. (I1ff98). - Rozszerzony zakres
DefaultComplicationDataSourcePolicy
z możliwością ustawienia domyślnej wartościComplicationTypes
dla głównego, dodatkowego dostawcy systemu oraz dla zastępczego dostawcy systemu. InterfejsComplicationSlot.defaultDataSourceType
został wycofany. (If0ce3). - Aplikację
ComplicationSlot.configExtras
można teraz zmienić przed wywołaniem telefonuEditorSession.openComplicationDataSourceChooser()
. (I6f852) - Dodano
WatchFace.setComplicationDeniedDialogIntent
isetComplicationRationaleDialogIntent
. Intencje te uruchamiają się, aby wyświetlać okno z uzasadnieniem przed wysłaniem prośby o uprawnienia do widżetu oraz kolejne okno wyjaśniające, że w przypadku próby edytowania widżetu wymagane są uprawnienia do widżetu (gdy odmówiono uprawnień, wybór dostawcy nie otworzy się, więc to okno jest potrzebne). (I3a29c). - Elementy
UserStyleSchema
iComplicationSlots
można teraz zdefiniować w pliku XML. Upraszcza to tworzenie tarczy zegarka i przyspiesza wykonywanie zapytań do usługiWatchFaceMetadataClient
, ponieważ nie muszą one być powiązane z usługą, aby uzyskać metadane. (I85bfa) - Dodano
InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent
, aby klient mógł określić, czy tarcza zegarka obsługujegetPendingIntentForTouchEvent
. (I0B917) WatchFaceMetadataClient
iListenableWatchFaceMetadataClient
nie są już eksperymentalne. Można ich używać do efektywnego uzyskiwania metadanych tarczy zegarka, gdy jest to możliwe, bez otwierania powiązanego z nią elementu. (Ibb827)- Dodaliśmy obsługę dostawców 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 bez otoczenia. Aby można było użyć tej funkcji, dostawca musi uwzględnić w pliku manifestu nowy tag metadanych
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS
i zastąpić tagonSynchronousComplicationRequest
. W zależności od rodzaju źródła danych może być też konieczne zastąpienie wartościonStartSynchronousComplicationRequests
ionStopInteractiveComplicationRequests
, aby otrzymywać powiadomienia o tym, kiedy widżet uruchamia się w trybie interaktywnym i znika z niego. (I8fe9d)
Wersja 1.0
Wersja 1.0.1
9 lutego 2022 r.
Usługa androidx.wear.watchface:watchface-*:1.0.1
została zwolniona. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawia błąd związany z nieprawidłowym działaniem kliknięcia (
PhotoImageComplicationData
) jest prawidłowo obsługiwany (I1cc30)
Wersja 1.0.0
1 grudnia 2021 r.
Usługa androidx.wear.watchface:watchface-*:1.0.0
została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje 1.0.0
Pakiet androidx.wear.watchface
to nowa zalecana biblioteka do tworzenia tarcz zegarka z Wear OS. Ma wiele nowych funkcji w porównaniu do starej biblioteki pomocy dotyczącej urządzeń do noszenia.
- Styl użytkownika (np.zmiana palety kolorów, styl wskazówek, wygląd znaczników godzin itp.) jest obsługiwany przez bibliotekę (patrz
androidx.wear.watchface.style
). Teraz znacznie łatwiej jest opracować edytor tarczy zegarka za pomocą rozszerzenia androidx.wear.watchface.editor, a tarczę zegarka można edytować w systemowej aplikacji towarzyszącej bez konieczności pisania dodatkowego kodu. - Wprowadzone sprawdzone metody Biblioteka automatycznie generuje etykiety treści czytnika ekranu pod kątem powikłań (możesz też dodać własne). Liczba klatek na sekundę zmniejsza się, gdy bateria jest słaba i nie ładuje się, aby wydłużyć jej żywotność.
- Do opracowania tarczy zegarka potrzeba mniej kodu, zwłaszcza w przypadku powikłań, które polegają na przeniesieniu wielu elementów do biblioteki.
Poprawki błędów
- Rozwiąż problem z kartą
EditorSession.userStyle.compareAndSet
(I6f676) - Korygowanie bardzo krótkich opóźnień tarcz zegarka (Iffb97)
- Wyślij
InteractiveWatchFaceImpl.onDestroy
w wątku UI (I83340) - Rozwiązywanie problemów z odbiornikami (I7d25f)
Wersja 1.0.0-rc01
3 listopada 2021 r.
Usługa androidx.wear.watchface:watchface-*:1.0.0-rc01
została zwolniona. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
Poprawiono błąd dump() (wywoływany przez adb shell dumpsys), który został uszkodzony w wyniku migracji przepływu. (087cf9e).
Zadbaj o prawidłową kolejność elementów WriteDirectBootPrefs. Chcemy, aby funkcje WriteDirectBootPrefs zawsze uruchamiały się po metodzie initStyleAndComplications. W przeciwnym razie istnieje ryzyko opóźnienia inicjowania wątku UI.(37650ac)
Sprawdź, czy metoda Renderer.onDestroy jest wywoływana. W sytuacji, gdy mechanizm renderowania został utworzony, ale inicjowanie WF nie zostało ukończone, a wywołanie Engine.onDestroy jest wywoływane, musimy wywołać metodę Renderer.onDestroy. (F9952dc)
Optymalizacja/poprawka na isBatteryLowAndNotCharging. Ta poprawka przenosi początkową konfigurację funkcji isBatteryLowAndNotCharging wcześniej, co oznacza, że można ją przeprowadzić równolegle z createWatchFace. Dodatkowo słuchamy teraz także ACTION_POWER_DISCONNECTED. (ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive to false po zamknięciu (ab9774e)
Wersja 1.0.0-beta01
27 października 2021 roku
Usługa 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.
Usługa androidx.wear.watchface:watchface-*:1.0.0-alpha24
została zwolniona. Wersja 1.0.0-alfa24 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zajęcia z pakietu
androidx.wear.watchface.complications
zostały przeniesione do nowego projektuwear:watchface:watchface-complications
. Pamiętaj, że nie możesz dodać tej biblioteki razem z jej wcześniejszymi wersjami alfawear:watchface:watchface-complications-data
, ponieważ wystąpią błędy dotyczące zduplikowanych klas. (I97195) - Nazwa pliku Renderer.dump została zmieniona na Renderer.onDump i została oznaczona adnotacją @UiThread. (I44845)
- Nazwa usługi
InteractiveWatchFaceClient.addWatchFaceReadyListener
została zmieniona naaddOnWatchFaceReadyListener
, a nazwaremoveWatchFaceReadyListener
została zmieniona naremoveOnWatchFaceReadyListener
. (I48fea) - Sesja edytora
getComplicationsPreviewData
igetComplicationsDataSourceInfo
nie są już zawieszanymi funkcjami. Zamiast tego są właściwościamiStateFlow<>
, których początkowo wartość jest równa null. W ListenableEditorSessiongetListenableComplicationPreviewData
igetListenableComplicationsProviderInfo
zostały usunięte nowe obiektyStateFlow<>
z klasy podstawowej. Jeśli musisz nasłuchiwać zmian w kodzie Javy, rozważ użycieandroidx.lifecycle.FlowLiveDataConversions.asLiveData
do konwersji naLiveData<>
. (IC5483).
Wersja 1.0.0-alfa23
29 września 2021 r.
Usługa androidx.wear.watchface:watchface-*:1.0.0-alpha23
została zwolniona. Wersja 1.0.0-alfa23 zawiera te zatwierdzenia.
Nowe funkcje
Biblioteka tarcz zegarka stanowi teraz jedną grupę bibliotek, dlatego biblioteki zostały przeniesione. 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 interfejsu API
- Przenieś osobną bibliotekę zegarka i widżety
androidx.wear
do grupy bibliotekandroidx.wear.watchface
. (B25f3c0) - Dodano funkcję EditorRequest.canWatchFaceSupportHeadlessEditing, która informuje klienta, czy edytor tarczy zegarka obsługuje edytowanie bez interfejsu graficznego. Zwróć uwagę, że w tym przypadku mogą pojawić się fałszywe wyniki negatywne, ponieważ obsługa została dodana w standardzie asop/1756809, jednak w przypadku wszystkich przyszłych tarcz będzie zwracać prawidłową wartość. (CA55590).
- Mechanizm renderowania ma teraz metodę dump(), którą można zastąpić, aby dodać dane niestandardowe do informacji generowanych przez usługę WatchFaceService usługi ABD Shell dumpsys Activity Service. (95235f9).
- Funkcja InteractiveWatchFaceClient.addWatchFaceReadyListener najpierw określa wykonawcy. (563ac2f).
- Usunięto StateFlowCompatHelper. Należy użyć wartości asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- Nie można już zmienić wartości CurrentUserStyleRepository.userStyle. (I44889)
- Nazwa WatchFaceReadyListener została zmieniona na OnWatchFaceReadyListener. (IC12a9).
Poprawki błędów
- Pole InteractiveInstanceManager.deleteInstance, które powoduje wywołanie onDestroy. Jest to konieczne, aby funkcja InteractiveWatchFaceImpl pobierała śmieci.(fce4af8, b/199485839)