Wear kadranı
Not: Kadranların 10 Temmuz 2024'ten itibaren Wear OS 5 yüklü cihazlara yüklenmesi ve 27 Ocak 2025'ten itibaren Google Play'de yayınlanan tüm yeni kadranlar için Kadran Formatı'nın kullanılması zorunludur.
Kullanıcılara yönelik değişiklikler hakkında daha fazla bilgi edinmek için bu Yardım Merkezi makalesini inceleyin.
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
15 Ocak 2025 | 1.2.1 | - | - | 1.3.0-alpha05 |
Bağımlılıkları bildirme
Wear'a bağımlı eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanızın veya modülünüzün build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Eski
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" }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.3
Sürüm 1.3.0-alpha05
15 Ocak 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05
yayınlanır. 1.3.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
Kadranlar genellikle kullanıcının ListUserStyle
kullanarak renk seçmesine olanak tanır. Bu yöntem işe yaramasına rağmen simgelerin Bluetooth üzerinden yardımcı düzenleyiciye gönderilmesini gerektirir. Bu da verimsiz bir yöntemdir. Bu nedenle, yükün stil başına bir veya daha fazla rengin listelendiği ve çok daha kompakt bir kablo biçimine sahip olan ColorUserStyleSetting
'ü kullanıma sunduk.
OEM komplikasyon sağlayıcılarının, OEM kadranlarının kullanması için ComplicationData'ya ekstralar eklemesine olanak tanıyan OEM'ye yönelik bir özellik ekledik.
API Değişiklikleri
UserStyleSetting
veUserStyleOption
sınıflarında artık oluşturucular var. Bu sınıfları oluşturmanın önerilen yolu budur. (Iacd03)ComplicationData
sürümünde ekstralar iletme desteği. Bu, hem komplikasyon sağlayıcıyı hem de alıcı kadranı kontrol eden OEM'ler tarafından kullanılmak üzere tasarlanmıştır. Ekstra ayarlamak için ayrıcalıklıcom.google.android.wearable.permission.COMPLICATION_EXTRAS
izni gerekir. (I4e3b2)- Kadranlar genellikle kullanıcının
ListUserStyle
kullanarak renk seçmesine olanak tanır. HerListOption
için bir simge bulunur.UserStyle
şemaları Bluetooth üzerinden gönderildiğinden, şemanın boyutunu düşük tutmak önemlidir. Bu, tüm simgeler nedeniyle düzinelerce renk seçeneği sunuluyorsa sorun oluşturabilir. Bu konuda size yardımcı olmak içinColorUserStyleSetting
simgesini ekledik. Bu simge, seçeneklerin simge yerine renk listesini içerdiği ve çok daha kompakt olduğu için kullanışlıdır. (Ib542e) ColorUserStyleSetting
veColorOption
'ün kullanılması için API 34 gerekir. (I8771d)
Hata Düzeltmeleri
- Bu kitaplıkta artık tür kullanımı olan JSpecify nullness ek açıklamaları kullanılmaktadır. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenlerini kullanmalıdır:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
(Ifd363, b/326456246)
Sürüm 1.3.0-alpha04
18 Eylül 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha04
yayınlanır. 1.3.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
UserStyleSettings
veUserStyleOptions
'te simgelerin gecikmeli yüklenmesi için destek eklendi. Bu, kadran yükleme konusunda performans artışı sağlar. (Iaf43d)- Yeni
Watchface.setUpdateScreenshotOnConfigurationChange
aracılığıyla sistem yapılandırması değiştiğinde (ör. yerel ayar değiştiğinde) güncellenmiş bir ekran görüntüsünün alınması için bir seçenek eklendi. Bu ayar varsayılan olarak kapalıdır. (I765a1)
Hata Düzeltmeleri
- Yeni platform API'lerine erişim, AGP 7.3 veya sonraki sürümlerle (ör. R8 3.3 sürümü) R8 kullanıldığında ve AGP 8.1 veya sonraki sürümlerle (ör. D8 8.1 sürümü) tüm derlemelerde API modelleme aracılığıyla otomatik olarak gerçekleştiğinden, yeni platform API'lerine erişimin manuel olarak ana hatlarıyla belirtilmesi kaldırıldı. AGP kullanmayan istemcilerin D8 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)
Sürüm 1.3.0-alpha03
17 Nisan 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha03
yayınlanır. 1.3.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Düzenleme sırasında temel kadran örneğinin
ComplicationData
değerini geçici olarak ayarlayanEditorSession#setOverrideComplications
özelliğini ekledik. Komplikasyonlar sık sık değişmiyorsa bu yöntem, geçersiz kılma işlemleriniEditorSession#renderWatchFaceToBitmap
üzerinden iletmek yerine daha verimlidir. (I19384)
Hata Düzeltmeleri
- Daha önce
selectComplicationDataForInstant
, tüm zaman çizelgeleri içintoApiComplicationData
'u çağırıyordu. Bu da sonraki === referans eşitliği testinin her zaman başarısız olacağı anlamına geliyordu. Bu, komplikasyonların her karede yeniden yüklenmesi ve pilin tükenmesi anlamına geliyordu. (717406)
Sürüm 1.3.0-alpha02
3 Nisan 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02
yayınlanır. 1.3.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Eşittir operatörü pahalı olduğu için artık en iyi ve
selectedData
değerlerini karşılaştırmak için referans eşitliğini kullanıyoruz. (446b00)
API Değişiklikleri
GoalProgressComplicationData
için yedekleme içermeyen dinamik bir API ekledik. (c33264)
Sürüm 1.3.0-alpha01
7 Şubat 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01
yayınlanır. 1.3.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
WatchFaceServices
eşzamanlı olarak başlatılabilir ve bu nedenle durum bilgisi içermemelidir. Bunu desteklemek içincreateExtra()
tarafından oluşturulan kullanıcı tanımlı bir ek öğenin, başlatma sırasında çağrılan tüm geçersiz kılma işlemlerine iletildiğiStatefulWatchFaceService
öğesini ekledik.GlesRenderer2
artıkeglChooseConfig
ile sırayla denenecek bir özellik listesi belirtmenize olanak tanıyan bir kurucu aşırı yükleme işlevine sahiptir.
API Değişiklikleri
StatefulWatchFaceService
artıkcreateExtra()
tarafından oluşturulan kullanıcı tanımlı ekstranın aktarıldığıgetComplicationSlotInflationFactory
'nin geçersiz kılınmasını desteklemektedir. (I82d9f)- Bazı kadranlarda,
createUserStyleSchema
sırasında oluşturulan yardımcı verilerin diğer başlatma yöntemleriyle paylaşılması gerekir. Daha iyi bir alternatif olmadığı için geliştiriciler genellikleWatchFaceServices
öğelerini durum bilgisine sahip hale getirdi. Aynı anda birden fazla örnek oluşturulabileceği ve bu da hatalara yol açabileceği için bu durum tehlikelidir. Bu sorunu çözmek içinStatefulWatchFaceService
veStatefulWatchFaceRuntimeService
yöntemlerini kullanıma sunduk. Bu yöntemlerde, kullanıcı tanımlı bir türcreateExtra()
tarafından oluşturulur ve çeşitli oluşturma yöntemlerine parametre olarak iletilir. (If8a99) InteractiveWatchFaceClient
'agetUserStyleFlavors
özelliğini ekledik. Bu özellik, özellikle OEM'ler için ilgi çekicidir. (I0f5d8)GlesRenderer2
artıkeglChooseConfig
ile sırayla denenecek bir özellik listesi belirtmenize olanak tanıyan bir kurucu aşırı yükleme işlevine sahiptir. Örneğin, önce kenar yumuşatma içeren bir yapılandırmayı deneyebilir ve gerekirse kenar yumuşatma içermeyen bir yapılandırmaya geçebilirsiniz. (I1ba74)- Android U'dan itibaren WearOS'a
SystemDataSources.DATA_SOURCE_HEART_RATE
desteği eklenecek. Bu komplikasyonun yalnızcaSHORT_TEXT
komplikasyonlarını destekleyeceği garanti edilir ancak OEM'ler canlı değer yerine sağlık uygulamalarının kısayolunu sunmayı tercih edebileceğindenComplicationSlot
'ınSMALL_IMAGE
'yi de kabul etmesi önerilir. (I34223) - Android U sürümünden itibaren, sistem
METADATA_KEY_DATA_SOURCE_CONFIG_ACTION
ile komplikasyon veri kaynağının yedeğinden geri yüklendiğinde ne olacağını kontrol edenMETADATA_KEY_CONFIG_RESTORE_SUPPORTED
özelliğini ekledik. Sistem varsayılan olarak komplikasyon veri kaynağı hizmetinin tüm yapılandırma verilerinin yedeklenmesini desteklediğini varsayar. Ancak bu destek yoksaMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
meta veri ayarını false olarak ekleyerek komplikasyon yuvasını yapılandırılmamış olarak işaretleyebilir. (I6c505)
Sürüm 1.2
1.2.1 sürümü
24 Ocak 2024
androidx.wear.watchface:watchface-*:1.2.1
yayınlanır. 1.2.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Samsung Galaxy Watch 4, 5 ve 6'da yaşanan kilitlenme sorunu düzeltildi. (43f0b0)
Sürüm 1.2.0
29 Kasım 2023
androidx.wear.watchface:watchface-*:1.2.0
yayınlanır. 1.2.0 sürümü bu taahhütleri içerir.
1.1.0 sürümünden bu yana yapılan önemli değişiklikler
- Android T'den itibaren kullanılabilen bazı yeni komplikasyon türleri için destek ekledik:
GoalProgressComplicationData
, min değerinin varsayılan olarak sıfır olduğu ve değerintargetValue
'den büyük olmasına izin verildiği bir hedefe doğru ilerleme durumu içinRangedValueComplicationData
'e benzer.WeightedElementsComplicationData
, isteğe bağlı metin/başlık/resim ile birlikte bir dizi Öğe (ağırlık ve renk çiftleri) içerir. Bu veriler, genellikle komplikasyonlarda etiketlerin oluşturulması için yer olmadığından, bağlama göre anlamlı renklerin kullanılması gereken bir pasta grafiği olarak gösterilebilir.
- İsteğe bağlı
ColorRanges
içinRangedValueComplicationData
desteğini ekledik. Normalde komplikasyonlar, kadran tarafından seçilen renklerde oluşturulur ancak bazenComplicationDataSource
, renkleri ayarlamak için en iyi yere yerleştirilir (ör. belirli bir anlamsal anlamı olduğunda). Örneğin, sıcaklık için kırmızıdan maviye. ComplicationData
türlerinin neredeyse tamamı artıkSmallImages
'u destekliyor.ComplicationDisplayPolicy
özelliğini ekledik. Bu özellik,DO_NOT_SHOW_WHEN_DEVICE_LOCKED
uyumlu bir kadrana cihaz kilitliyken komplikasyonu göstermemesini söyler.- Android T'den itibaren OEM'ler, komplikasyon isteğinin sağlayıcılarının manifest dosyasında
android.support.wearable.complications.SAFE_WATCH_FACES
meta verileri tarafından tanımlanan listedeki bir kadrandan gelip gelmediğini belirleyebilecek.ComplicationRequest#isForSafeWatchFace
Sağlayıcının, TargetWatchFaceSafety.UNKNOWN dışında bir değer almak içincom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
iznine ihtiyacı vardır. UserStyleFlavors
, deneysel olmayan bir özellik haline geldi.
Sürüm 1.2.0-rc01
18 Ekim 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01
yayınlanır. 1.2.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 1.2.0-beta02
6 Eylül 2023
androidx.wear.watchface:watchface-*:1.2.0-beta02
yayınlanır. 1.2.0-beta02 sürümü bu taahhütleri içerir.
Yeni Özellikler
SuspendingComplicationDataSourceService#onDestroy
artık açık. Sistem varsayılan hava durumu komplikasyonu desteğinin kaldırıldığını lütfen unutmayın.
API Değişiklikleri
- "Hava durumu komplikasyonları için yeni bir veri kaynağı göster" seçeneğini geri alın. (I6f335)
Sürüm 1.2.0-beta01
23 Ağustos 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01
yayınlanır. 1.2.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Android T'den itibaren WearOS, varsayılan hava durumu sistemi komplikasyonunu destekleyecektir.
API Değişiklikleri
- Komplikasyonlar için hava durumu varsayılan sistem yedeği ekleyin. (Ia0994)
- Bu yamada, guava sarmalayıcılarının yanı sıra
WatchFaceRuntimeService
veWatchFaceControlClient.createWatchFaceRuntimeControlClient
eklenmiştir. Bu sürümler, tanımını başka bir paketten yükleyen özel bir kadran türü olan kadran çalışma zamanları için destek ekler. WearOS şu anda yalnızca Android kadran biçimi için çalışma zamanını desteklemektedir. (I2799f) - Bu düzeltme, int tanımlarını yeniden adlandırdığımız aosp/2636578 ile ilgili bir takiptir. Bu sayede
WatchFaceType
,CanvasType
,TapType
veyaComplicationsSlotBoundsType
'ye bağlı herhangi bir kodun değiştirilmesi gerekmez. (I4098b) - Uyumluluğu engellemeyle ilgili açıklama eklemek için API dosyaları güncellendi. (I8e87a, b/287516207)
- Bu yama,
WatchFaceTypes
içindeWatchFaceType
sabitlerini,CanvasTypes
içindeCanvasType
sabitlerini,TapTypes
içindeTapType
sabitlerini veComplicationsSlotBoundsType
içindeComplicationsSlotBoundsType
sabitlerini gösterir. (I3b85a, b/288750666) WatchFace.OverlayStyle
çok az kullanılıyor ve OEM'ler tarafından yeterince desteklenmiyor. Bu nedenle, daha sonra kaldırmak üzere bu sürümün desteğini sonlandırıyoruz. (I7344a)
Sürüm 1.2.0-alpha09
21 Haziran 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09
yayınlanır. 1.2.0-alpha09 sürümü bu taahhütleri içerir.
Yeni Özellikler
RangedValueComplicationData.Builder
artıkDynamicFloat
değerini kabul ediyor veComplicationText
sınıfının alt sınıfı olarak yeni birDynamicComplicationText
mevcut. Her ikisi de dinamik ifadelerin yanı sıra desteklenen Wear 4 cihazlarda 1 Hz'de güncellenen platform bağlamalarını kullanabilir.
API Değişiklikleri
- Günlük mesafe, günlük kalori ve günlük kat sayısı için dinamik türler eklendi. Platform sağlığı kaynaklarının anahtarları artık
PlatformHealthSources.Keys
(Ib7637) altında - Kalp atış hızı ve günlük adım sayısını sağlamak için
PlatformDataProvider
'ü uygulayın.SensorGateway
arayüzü, herkese açık API'den kaldırıldı. (I55b84) StateEntryValue
'üDynamicDataValue
olarak yeniden adlandırın veDynamicDataKey
kullanacak şekilde durum API'lerini güncelleyin. (If1c01)- Uygulama tarafından zorlanan duruma erişmek için
AppDataKey
ekleyin; Platform verilerine erişmek içinPlatformDataKey
ekleyin;StateStore
'de ad alanı desteği ekleyin. (I7985e) enable
/disablePlatformSource
yöntemleriDynamicTypeEvaluator
'den kaldırıldı. Güncellemelerden arayan sorumlu olmalıdır. (I78c6d)- Bağlı veri türlerinin boyutunun sınırlandırılmasına izin verin. (Ie2966)
Sürüm 1.2.0-alpha08
19 Nisan 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08
yayınlanır. 1.2.0-alpha08 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Android T'den itibaren, ayrıcalıklı
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
'ye sahip komplikasyon sağlayıcılar, güvenli kadranlar içinandroid.support.wearable.complications.SUPPORTED_TYPES
'yi geçersiz kılanandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
meta verilerini kaydedebilir. Bu, bir komplikasyon sağlayıcının güvenilir ve güvenilmeyen kadranlarda farklı türlerde komplikasyon yayınlamayı seçebileceği anlamına gelir.
API Değişiklikleri
@Deprecated
sınıfının mülke yayılması (I882d1, b/271441831)Enum.valueOf
için değer parametresi adı değiştirildi (Ia9b89)- enum valueOf tarafından daha fazla istisna atıldı (I818fe)
renderWatchFaceToSurface
yerine SurfaceControlViewHost'ın üzerine inşa edilmiş ve arayanın kadrandan bir görünüm yerleştirmesine olanak tanıyancreateRemoteWatchFaceView
'ü kullanımdan kaldırdık. Bu görünüm, istemciRemoteWatchFaceViewHost#renderWatchFace
'yi çağrdığında oluşturulur. (Ib311d)renderWatchFaceToSurface
,InteractiveWatchFaceClient
,HeadlessWatchFaceClient
veEditorSession
'e eklendi. Bu genellikle bitmap olarak oluşturmaktan daha yüksek performans sağlar. (Ieacad)ObservableStateStore
,StateStore
olarak yeniden adlandırıldı. (Ieb0e2)- Artık varsayılan olarak boş bir mağaza olan
ObservableStateStore
dahil olmak üzere daha fazla isteğe bağlı bağımsız değişkene izin vermek için kurucu bağımsız değişkenleri yerineDynamicTypeEvaluator.Builder
eklendi. (I6f832) DynamicTypeEvaluator
parametrelerinin sırası yeniden düzenlendi. (Ic1ba4)DynamicTypeEvaluator.bind
yöntemlerine Executor eklendi. (I346ab)- Değerlendirmeyi dinamik tür bağlandıktan sonra tetiklemek için
BoundDynamicType
yönteminiBoundDynamicType
işlevine ekledik.startEvaluation
(I19908) - Ayrıcalıklı
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
iznine sahip komplikasyon sağlayıcılar, güvenli kadranlar içinandroid.support.wearable.complications.SUPPORTED_TYPES
'yi geçersiz kılanandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
meta verilerini kaydedebilir. (Id1c73) CustomValueUserStyleSettings2
hesabınıLargeCustomValueUserStyleSettings
olarak yeniden adlandırdık. (Ic17ac)
Hata Düzeltmeleri
DynamicTypeValueReceiver#onPreUpdate
kaldırıldı. (I2dc35)
Sürüm 1.2.0-alpha07
22 Şubat 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07
yayınlanır. 1.2.0-alpha07 sürümü bu taahhütleri içerir.
Yeni Özellikler
Android T'den itibaren OEM'ler, komplikasyon isteğinin sağlayıcılarının manifest dosyasında
android.support.wearable.complications.SAFE_WATCH_FACES
meta verileri tarafından tanımlanan listedeki bir kadrandan gelip gelmediğini belirleyebilecek.ComplicationRequest#isForSafeWatchFace
Sağlayıcının,TargetWatchFaceSafety.UNKNOWN
dışında bir şey almak içincom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
iznine ihtiyacı vardır.Ayrıca Android T
CustomValueUserStyleSetting2
'de 12,5 KB'a kadar veri depolayabilirsiniz.CustomValueUserStyleSetting
için önceki sınır 1 KB idi. Boyut sınırlarının artmasına rağmen, ayarlar düzenleme sırasında Bluetooth üzerinden gönderildiği ve Bluetooth bant genişliği sınırlı olduğu için kadran geliştiricilerinin verileri küçük tutmaları önerilir.
API Değişiklikleri
GlesRenderer
veGlesRenderer2
'ye,EGL14.EGL_CONTEXT_CLIENT_VERSION
parametresiniEGL14.eglCreateContext
'e iletmenize olanak tanıyan isteğe bağlı bireglContextAttribList
parametresi ekledik. (I2a83e)- Kadran kitaplıklarını
java.util.function.Consumer
yerineandroidx.core.util.Consumer
'e taşıdık. (I273f5) - KT mülk erişim araçları tarafından daha fazla istisna atılıyor (Iff9d9)
- Müşterinin eski kadranlar adına destek taklit etmesi gerekip gerekmediğini belirleyebilmesi için
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
değerini ekledik. (I24c89) isForSafeWatchFace
değerinin üç durumluIntDef
olması gerektiğine karar verdik. (Ief2f7)- Android T için OEM kullanımı amaçlanan ve
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
gerektirenComplicationRequest.isForSafeWatchFace
özelliğini kullanıma sunduk. Sistem görüntüsünde bulunan veri kaynakları için, istek gönderen kadran, veri kaynağının manifest dosyasında belirttiği güvenli kadranlar listesinde yer alıyorsa bu işlev true değerini döndürür. (I0cbb6) - Android T için 12,5 KB'a kadar veri depolayabilen
CustomValueUserStyleSetting2
öğesini ekledik.CustomValueUserStyleSetting
için önceki sınır 1 KB idi. (I0b100)
Sürüm 1.2.0-alpha06
25 Ocak 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06
yayınlanır. 1.2.0-alpha06 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kadran platform bağlamaları için destek ekleme çalışmaları devam ediyor. Bu özellik henüz kullanıma hazır değil ancak gelişmeleri takip etmeye devam edin.
- GOAL_PROGRESS ve WEIGHTED_ELEMENTS adlı yeni komplikasyon türleri için XML
ComplicationSlot
desteği ekledik.
Hata Düzeltmeleri
- Kadran düzenleyicinin Samsung cihazlarda düzgün şekilde yayınlanmamasına neden olan bir sızıntıyı düzeltir. (3b5987)
- Birden fazla favori içeren kadranlar arasında geçiş yaparken komplikasyonların bazen düzgün şekilde gösterilmemesine yol açan hata düzeltildi. (b38ece)
- perOptionScreenReaderNames ile ilgili serileştirme hatası düzeltildi. Bu hata, kadran kilitlenmelerine neden oluyordu. (e9f466)
Sürüm 1.2.0-alpha05
7 Aralık 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05
yayınlanır. 1.2.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
Bir süre önce hiyerarşik
UserStyleSettings
için destek ekledik. Android T'den itibaren bir hiyerarşide birden fazlaComplicationSlotsUserStyleSetting
bulunabilir. Kullanıcının stil seçimlerine bağlı olarak yalnızca birComplicationSlotsUserStyleSetting
etkin olur.ListOption
veComplicationSlotsOption
için ekran okuyucu desteğini iyileştirmek amacıylascreenReaderName
alanı ekliyoruz. Android T'den önceki sürümlerde bu alan, tamamlayıcı düzenleyiciler tarafından yoksayılır.
API Değişiklikleri
- Düzenleyiciler tarafından kullanılmak üzere
ListOption
veComplicationSlotsOption
alanlarına yeni bir isteğe bağlıscreenReaderName
alanı ekledik. Bu alan, Android T öncesi sürümlerin tamamlayıcı düzenleyicileri tarafından yoksayılır. (I75326) - Android T'den itibaren, aynı anda en fazla bir tanesi etkin olabileceği sürece stil hiyerarşisinde birden fazla
ComplicationSlotsUserStyleSettings
desteklenmektedir. Varsa etkinComplicationSlotsOption
öğesini bulmanıza yardımcı olmak içinUserStyleSchema
işlevinefindComplicationSlotsOptionForUserStyle
yardımcı programı ekledik. (Ic2b06) RangedValuesTypes
,RangedValueComplicationData
'un tamamlayıcı nesnesine çekildi veTYPE_UNDEFINED
,TYPE_RATING
olarak yeniden adlandırıldı ve yeni birTYPE_PERCENTAGE
eklendi. (I55d02)- Deneme amaçlı
DynamicFloat
özelliğiniFloatExpression
olarak yeniden adlandırdık ve@hide
olarak işaretledik. (Idf4f1) @JvmDefaultWithCompatibility
ek açıklaması (I8f206) ekleniyor
Sürüm 1.2.0-alpha04
9 Kasım 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04
yayınlanır. 1.2.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Android T için
GoalProgressComplicationData
veWeightedElementsComplicationData
olmak üzere iki yeni komplikasyon türü desteği ekledik. GoalProgressComplicationData
,RangedValueComplicationData
'e benzer ancak değerinin hedefi aşmasına izin verilir (RangedValueComplicationData
için değer [min .. max] aralığına sabitlenir). Bu durum, görsel tasarım açısından tüm kadranlara uygun olmayabilecek sonuçlara yol açar.GoalProgressComplicationData
, basit verilerin pasta grafikleri ve benzer dökümleri için destek ekler.ColorRamps
ileRangedValueComplicationData
arasında isteğe bağlı destek ekledik.- Android T için
ComplicationData
özelliğineComplicationPersistencePolicy
vesetCachePolicy
ekledik. Bu özellikler, sağlayıcıların bir komplikasyonun kalıcı olup olmadığını (yani yeniden başlatma işleminden sonra önbelleğe alınıp alınmadığını) kontrol etmesine olanak tanır. Çoğu komplikasyon için önbellek denetimi ayarlanması gerekmez ancak bu işlem, sık güncellenen bazı komplikasyonlar (ör. sağlık verileri komplikasyonları) için eski verilerle ilgili sorunları düzeltebilir. Ayrıca,DO_NOT_SHOW_WHEN_DEVICE_LOCKED
uyumlu bir kadrana cihaz kilitliyken komplikasyonu göstermemesini bildirenComplicationDisplayPolicy
özelliğini de ekledik. (Ic9574)
API Değişiklikleri
GoalProgressComplicationData
,WeightedElementsComplicationData
veColorRamp
artık deneysel değildir. (Ica9e2)ComplicationPersistencePolicy
veComplicationDisplayPolicy
artık T API'leri olarak doğru şekilde işaretlenmiştir. (I31d88)- Desteği sonlandırılan
ComplicationSlotOverlay
oluşturucusunda artıkDeprecationLevel.WARNING
var. Bu sayede, Java'dan tekrar çağrılabilir. (Ib308c) ComplicationRequestListener
,CanvasComplication
,ComplicationTapFilter
veInteractiveWatchFaceClient
ile ilgili bazı Java uyumluluk sorunlarını@JvmDefaultWithCompatibility
(Id94fc) ile ekleyerek düzelttik- Deneysel
ProtoLayoutComplicationData
veListComplicationData
'i kaldırdık. Bu ürünlerin geliştirici hikayesi net değildi. Gelecekte bu konuyu tekrar ele alacağız. (I9df05) ValueType
kullanıcısınıRangedValueComplicationData
'a geri ekledik.WeightedElementsComplicationData
artık arka plan rengini destekliyor. İşlevselliğiWeightedElementsComplicationData
'un alt kümesi olduğu içinDiscreteRangedValueComplicationData
'ü kaldırdık. (I6446c)
Hata Düzeltmeleri
- Eşittir ve karma koduna
isForScreenShot
ekleyin.onRenderParametersChanged
için doğru birisForScreenshot
değeri sağlandığından emin olun (I04a41) - Başsız istemcilerden
WatchFaceControlService
sızıntısı düzeltildi. (e90e00)
Sürüm 1.2.0-alpha03
5 Ekim 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03
yayınlanır. 1.2.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Yeni bir özellik eklemedik ancak kadran düzenleyiciyle ilgili birkaç hatayı düzelttik.
API Değişiklikleri
rootUserStyleSettings
deneysel olmadığındanUserStyleSchema.userStyleSettings
desteği sonlandırıldı (Ie96e3)rootUserStyleSettings
'ü deneyselden çıkarma (I8d6b3)WatchFaceColors
, tüm sistemler tarafından desteklenmediği için deneysel olarak işaretlendi (I6d75d)DisconnectReasons
ile birlikte çalışabilmesi içinDisconnectReasons
'ü herkese açık API'de kullanıma sunun.IntDef
(I791f8)
Hata Düzeltmeleri
SysUI
kapanırsa kol saati düzenleyicide açık olan tüm dosyaları kapatın.SysUI
kapanırsa ve kadran düzenleyici kapanmazsa sistem, kullanıcı stili değişikliklerini korumak içinSysUI
'ten yararlandığından kadran tutarsız bir durumda bırakılabilir.(ba762aComplicationDataSourceInfoRetriever
'te, bir Kotlin coroutine devam ettirmenin gc kökü gibi davrandığı ve düzenleyici etkinliğini koruduğu bir bellek sızıntısı düzeltildi.(33ee06)
Sürüm 1.2.0-alpha02
21 Eylül 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02
yayınlanır. 1.2.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
Bazı kadranlarda,
UserStyle
dışındaki ve kadranı görsel olarak etkileyen yapılandırmalar (ör. arka plan fotoğrafı seçme) bulunur. Kadranın güncellenmiş bir önizleme resmi istemesine olanak tanıyanRenderer.sendPreviewImageNeedsUpdateRequest
özelliğini ekledik. Bu özelliğin çalışması için ilgili sistem güncellemesinin yapılması gerektiğini unutmayın.Ayrıca, kadranların renklerini sisteme göstermesi için bir API ekledik. Sistem, renk paletini buna göre seçebilir. Bu özelliğin, sonraki bir yamada deneme sürümüne geçirildiğini not edin.
ComplicationData
türlerinin neredeyse tamamı artıkSmallImages
'u desteklemektedir.
API Değişiklikleri
- Duvar kağıdı yöneticisi bazen bir motordan ayrılıp başka bir motor oluşturabilir.
DisconnectReason
int def ekledik veClientDisconnectListener
'u, dinleyicinin motorun ayrıldığını gözlemlemesine olanak tanıyan birDisconnectReason
içeren yeni bir yöntemle genişlettik. (I45cce) ComplicationSlotOverlay
oluşturucusuna iki isteğe bağlı parametre (nameResourceId
vescreenReaderResourceId
) eklendi (I157e8)getOrCreateInteractiveWatchFaceClient
içinPreviewImageUpdateRequestedListener
ile yeni aşırı yükleme işlevi için bir guava sarmalayıcı ekledik. (Ic31f0)UserStyleSchema
dışındaki bir duruma sahip olan ve görünümlerini etkileyen kadranlar (ör. seçilebilir arka plan resmine sahip kadranlar) için kullanışlı olanRenderer.sendPreviewImageNeedsUpdateRequest
özelliğini ekledik. İstemci tarafında, bu istekleri gözlemlemek içingetOrCreateInteractiveWatchFaceClient
isteği için isteğe bağlı parametre olarakPreviewImageUpdateRequestedListener
ekledik. (Iff44a)WatchFaceColors
'ü göstermek için API'yi basitleştirdik. Artık Renderer'da, kadran tarafından ayarlanabilenwatchFaceColors
adlı basit bir özellik var. Bu özellik, stil değişikliklerine göre gerektiği şekilde güncellenmelidir. Renk değişikliklerini gözlemlemek içinWallpaperManager
yerineInteractiveWatchFaceClient
'yeOnWatchFaceColorsListener
ekledik. (I490bc)- En belirgin üç kadran rengini içeren bir
WatchFaceColors
sınıfı veWallpaperManager.getWallpaperColors
aracılığıyla sistemin kadran renklerini almasına olanak tanıyanwatchfaceColors
venotifyWatchFaceColorsChanged
açık yöntemlerini Oluşturucu'ya ekledik. (I3d611) ShortTextComplicationData
,RangedValueComplicationData
,NoPermissionComplicationData
(ve deneyselDiscreteRangedValueComplicationData
,GoalProgressComplicationData
veWeightedElementsComplicationData
) artıkSmallImages
'yi destekliyor. Bir kadran, komplikasyonu birden fazla renkle oluşturmayı seçerse artık tek renkli bir resim kullanmak yerine çok renkli birSmallImage
kullanabilir. (I257df)PreviewImageUpdateRequestedListener
'üConsumer<>
olarak yeniden yapılandırın (Ia875d)- Özel Tek Soyut Yöntem (SAM) türü
OnWatchfaceColorsListener
'ü genel Java SAM türüyle (Tüketici) değiştirme (I0c489) PreviewImageUpdateRequestedListener
belirtmeyen eskigetOrCreateInteractiveWatchFaceClient
velistenableGetOrCreateInteractiveWatchFaceClient
yöntemlerinin desteği sonlandırıldı. (Iec502)
Hata Düzeltmeleri
DisconnectReason.BINDER_DIED
,DisconnectReason.ENGINE_DIED
olarak yeniden adlandırıldı. (I4eb0e)
Sürüm 1.2.0-alpha01
10 Ağustos 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01
yayınlanır. 1.2.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Çeşitli yeni komplikasyon biçimleri için deneysel destek ekledik. Bu, aktif olarak geliştirilen bir alandır. Bu yeni biçimler, bildirimde bulunulmaksızın değiştirilebilir ve şu anda
CanvasComplicationDrawable
tarafından oluşturma desteği sunulmamaktadır. - Ayrıca komplikasyon yuvalarına isteğe bağlı kenar boşlukları ekledik. Bu sayede küçük komplikasyonlara dokunmak daha kolay hale geldi.
API Değişiklikleri
- Deneysel
BoundingArc
sınıfı artık değiştirilemez. (If624a) - Küçük komplikasyonlara dokunmak zor olabilir. Bu sorunu azaltmak için, oluşturmayı etkilemeden dokunulabilir alanı artıran kenar boşlukları desteğini kullanıma sunduk. Belirtilmediği sürece (kodda veya XML aracılığıyla)
ComplciationSlots
sıfır boyutunda kenar boşluklarına sahiptir. (I14089) getComplicationSlotInflationFactory(CurrentUserStyleRepository)
imzası, null olmayan bir fabrika örneği döndürecek şekilde değiştirildi. Önceden null döndürmek hata olduğundan bu değişiklik, API sözleşmesini daha net hale getiriyor. (I0fcc0)createComplicationSlotsManager
ile tutarlı olması içinWatchFaceService.getComplicationSlotInflationFactory
yönteminecurrentUserStyleRepository
bağımsız değişkeni ekledik. (I2ddd2)UserStyleFlavors
deneysel olmayan bir özellik haline geldi. (I69cdc)- Deneme amaçlı
ValueType
özelliğiniRangedValueComplicationData
'ten kaldırdık ve bunun yerine tam sayı aralığı ve değeri dışındaRangedValueComplicationData
gibi olan deneme amaçlıDiscreteRangedValueComplicationData
özelliğini kullanıma sunduk. Ayrıca, minimum değerin varsayılan olarak sıfır olduğu ve değerintargetValue
'den büyük olmasına izin verildiği bir hedefe doğru ilerleme içinRangedValueComplicationData
'a benzer deneyselGoalProgressComplicationData
özelliğini de kullanıma sunduk. TümRangedValue
varyantları için monochromeImage, text veya title öğelerinden en az biri belirtilmelidir. (I9590c) - Sistem yazılımında kullanım alanı olmadığı için
boundsWithMargins
'üComplicationSlotState
'ten kaldırdık. (I42e26) - İsteğe bağlı metin/başlık/resim ile birlikte bir dizi Öğe (ağırlık ve renk çiftleri) içeren
WeightedElementsComplicationData
için deneysel destek ekledik. Bu veriler, genellikle komplikasyonlarda etiketlerin oluşturulması için yer olmadığından, bağlama göre anlamlı renklerin kullanılması gereken bir pasta grafiği olarak gösterilebilir. (I87eea) RangedValueComplicationData
veGoalProgressComplicationData
tarafından isteğe bağlı olarak kullanılan deneyselColorRamps
, artık yedi adede kadar renk içeren bir sıra ve renklerin pürüzsüz bir şekilde mi yoksa eşit boyutlu katı renk adımlarıyla mı oluşturulacağını belirten bir işaret belirtmenize olanak tanır. (I9f5bf)RangedValueComplicationData.drawSegmented
,valueType
ile değiştirildi.valueType
, aralıktaki değere anlamsal anlam sağlayan ve komplikasyon oluşturucu tarafından stili etkilemek için kullanılabilen birValueType IntDef
ile birlikte bir tamsayı değeridir. (I0616b)- İsteğe bağlı
ColorRanges
ileRangedValueComplicationData
arasında deneysel destek ekledik. Normalde komplikasyonlar, kadran tarafından seçilen renklerde oluşturulur ancak bazenComplicationDataSource
, renkleri ayarlamak için en iyi yere yerleştirilir (ör. belirli bir anlamsal anlamı olduğunda). Örneğin, sıcaklık için kırmızıdan maviye. (I5153a) RangedValueComplicationData
için deneysel birdrawSegmented
ipucu ekledik. Bu, oluşturuculara aralıktaki değer göstergesini segmentlerle çizmelerini (1 segment = 1 birim) işaret eder. (I7d7c1)
Hata Düzeltmeleri
ComplicationSlotBounds
değerini önceden tanımlanmış bir ekran koordinat sistemine göre tanımlama özelliğini ekledik. (I0985d)
Sürüm 1.1
Sürüm 1.1.1
10 Ağustos 2022
androidx.wear.watchface:watchface-*:1.1.1
yayınlanır. 1.1.1 sürümü bu taahhütleri içerir.
- Bu sürüm, hata düzeltmeleri içerir. 1.1.0 sürümünü kullananların yükseltme yapmaları önemle tavsiye edilir.
Hata Düzeltmeleri
Kadran başlatma işlemi eşzamanlı değildir. Kadran hazır olmadan önce bir komplikasyon alınırsa
pendingInitialComplications
listesine eklenir ve daha sonra uygulanır. MaalesefpendingInitialComplications
çok erken uygulandı. Bu nedenle, kadran başlatılırken komplikasyonlarınpendingInitialComplications
'e yerleştirilmeye devam ettiği ve yoksayıldığı bir zaman aralığı vardı. Bu sorun düzeltildi. Ayrıca bu düzeltme,ComplicationRenderer
'ün yer tutucuları eşzamansız olarak yüklemeye çalıştığı ve bu işlemin başarısız olması nedeniyle derleme grafiğinin hiçbir zaman güncellenmemesine yol açan bir hatayı giderir. Son olarak bu yamada, birden fazlapendingInitialComplications
öğesinin birleştirilmesi gereken (teorik olarak) bir hata düzeltildi. (0d03ba3)getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance
'ın kilidi gereğinden uzun süre tuttuğuInteractiveInstanceManager
'teki olası kilitlenmeyi düzeltin. Genellikleengine.setUserStyle
işleminin hızlı olmasını bekleriz ancak herhangi bir nedenle bu işlem hızlı olmazsa kilitlenme/ANR ile karşılaşabiliriz. Bu yama, kilitlenmeyi önlemek için gereksiz işlemleri kilitten çıkarır.(5a2adca)WatchFaceService
'yi engelleyen birkaç sorunu düzeltin. WakeLock bazenWatchFaceService
değerini koruyabilir.release()
çağrısı ekleyerek bu sorunu düzeltebilirsiniz. AyrıcaStateFlows
,WatchFaceService
'u saklayabilir. TemelCoroutineScopes
'yi iptal etmek bu sorunu çözer.(fd48138)awaitDeferredWatchFace
* alanına zaman aşımı ekleyin vewatchfaceOverlayStyle
NullPointerException
öğesini düzeltin. Normal şartlarda bu işlem, yeni yükleme ve CPU yükünün yüksek olduğuDirectBoot
senaryoları da dahil olmak üzere zaman aşımına uğramaz. Ayrıca,getWatchfaceOverlayStyle
,close()
'den sonra çağrılırsa NPE'yi de düzelttik.(a4c3a5a)
Sürüm 1.1.0
15 Haziran 2022
androidx.wear.watchface:watchface-*:1.1.0
yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
İyileştirilmiş düzenleme:
- Düzenleyici kullanıcı arayüzleri tarafından stil hiyerarşisinin yazılmasına olanak tanıyan hiyerarşik şemalar için destek ekledik. Artık kadran ve tamamlayıcı düzenleyiciler tarafından kullanılacak ayrı simgeler belirtebilirsiniz.
- Birden fazla kadran örneği için etkinleştirme desteği vardır. Her örneğin tüm API yüzeylerinde kullanılabilen benzersiz bir kimliği vardır.
- Artık düzenleyicilerde kullanmak üzere
ComplicationSlots
için insan tarafından okunabilir adlar belirtebilirsiniz. - Stil "lezzetleri" için deneysel destek. Bu, tamamlayıcı düzenleyicide görülebilecek, özel olarak seçilmiş bir stil grubudur.
- İki kadran örneği yüklenirken kadran örnekleri artık kaynakları paylaşarak bellek tasarrufu sağlayabilir.
- Kadran düzenleyicisinde komplikasyon seçerken artık mevcut sağlayıcı önceden seçilidir.
İyileştirilmiş komplikasyonlar:
- Artık birincil ve ikincil veri kaynakları için
ComplicationType
değerini belirtebilirsiniz. Böylece geliştiricilere kutudan çıkar çıkmaz deneyim için daha fazla esneklik sunabilirsiniz. - Kadranımıza, saat kadranına gönderilecek ve önbelleğe alınabilecek ve otomatik olarak güncellenebilecek zamana dayalı bir veri dizisi sağlayan
ComplicationDataTimeline
özelliğini ekledik. Örneğin, günün farklı saatlerindeki hava durumu tahmini veya yaklaşan birden fazla takvim etkinliği. - Kadran sağlayıcının
ComponentName
,ComplicationData
kapsamındadır. - Kadranlar arasında geçiş yaparken daha iyi bir deneyim sunmak için komplikasyonlar artık önbelleğe alınıyor.
Diğer değişiklikler:
UserStyleSchema
veComplicationSlots
artık XML'de tanımlanabilir. Bu, kadran oluşturmayı basitleştirir ve sistemden daha hızlı meta veri sorguları yapılmasına olanak tanır.- Kadranlar artık sistem yer paylaşımını oluşturmak için kullanılan renkleri etkileyebilir.
Sürüm 1.1.0-rc01
18 Mayıs 2022
androidx.wear.watchface:watchface-*:1.1.0-rc01
yayınlanır. 1.1.0-rc01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kadran XML desteğinde,
ComplicationSlotBounds
ve destekleyici referansları belirtmeyi kolaylaştıran bazı kullanılabilirlik düzenlemeleri yaptık. Kenar komplikasyonuBoundingArc
ile deneme çalışmaları devam ediyor. Şu anda kullanılması önerilmez ancakdrawHighlight
'e kadar kullanılabilir.
API Değişiklikleri
BoundingArc
parametresini kabul eden deneysel birdrawHighlight
aşırı yüklemesi ekledik. (I705f8)- Kadran XML'i artık kaynak referanslarını desteklemektedir. Hem XML'de hem de kodunuzda aynı sabitleri kullanmanıza olanak tanır. (I3ef61)
ComplicationSlotBounds
değerinicenter_x
,center_y
,size_x
,size_y
biçiminde tanımlama özelliğini ekledik. Artık kaynak referansları kullanılarak farklı birimler (ör. dp) de kullanılabilir. (Iace98)
Hata Düzeltmeleri
- Görevleri yanlış bağlamda çalıştıran
runBlockingWithTracing
sorunu düzeltildi.(4f595fe) BaseEditorSession.close
'ü senkronize edin.BaseEditorSession.close
'ün asenkron olmasıyla ilgili sorun,ComplicationDataSourceInfoRetriever
'ü çok geç yayınlamamız nedeniyle logcat'te uyarı spam'ine yol açmasıdır. Bu muhtemelen zararsızdı ancak logcat spam'i dikkat dağıtıcıdır ve önlenmelidir.(35a5308)
Sürüm 1.1.0-beta02
11 Mayıs 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02
yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Yeni
ComplicationData
türleri için deneysel destek ekledik. Bu türler henüz kullanıma hazır değil ancak bu alanı takip edin.
API Değişiklikleri
- Kenar komplikasyon yuvasının geometrisini tanımlayan deneysel bir sınıf olan
BoundingArc
'ü ekledik. Bu,ComplicationSlot
'e eklendi veComplicationSlotState
ileWatchFaceMetadataClient
'ye bağlandı. (I61a40) UserStyleSetting
XML'de ayarları devralma özelliğini ekledik. Bu sayede ayrıntıları azaltabilir ve ayarları kadranlar arasında paylaşabilirsiniz. (Ief841)- Deneme amaçlı iki yeni
ComplicationData
türü ekledik:ListComplicationData
veProtoLayoutComplicationData
. Şu anda bu türlerin hiçbiri için oluşturma desteği yoktur ve WearOS,ComplicationDataSource's
manifest dosyasına eklenirse bu türleri tanımaz. (I1811c)
Hata Düzeltmeleri
TimeLineEntry
türündeki serileştirmeyi düzeltin.TimeLineEntry
türünü serileştirmediğimiz için NoData türündeki önbelleğe alınmışTimeLineEntries
, üst komplikasyonun türüne sahipmiş gibi yanlış yorumlanıyordu. Bu da, var olmayan zorunlu alanlara erişildiğinde NPE'lere yol açıyordu. (55ffdf5)setComplicationData
zaman çizelgesi alanlarının bırakılmasına neden olan hata düzeltildi(fb392f5)runBlockingWithTracing
'ün çok nadiren NPE'ye neden olduğu hata düzeltildi(12ca62e)- Bazen komplikasyon alırken
ClassNotFoundException: android.support.wearable.complications.ComplicationText
gösterilmesine neden olan hata düzeltildi.(217942d9) GlesRenderer.backgroundThreadInitInternal
işlevinde, yalnızcaEGL14.eglCreateContext
çağrılırsaonBackgroundThreadGlContextCreated
işlevinin çağrılmasına neden olan bir hata düzeltildi. Ekran görüntüsündeverticalFlip
nedeniyle görsel bir hataya neden olan başka bir hata düzeltildi.(c674ad2)WatchFaceService
XML sürüm kontrolünü düzeltin. Yanlış paketten yüklüyordu.(dfa06f3)- Yer tutucu kablo biçimi artık iç paket kullanıyor. Yer tutucuların, gizli iç a.s.w.c.ComplicationData öğesini kullanabilecek mevcut kadranları bozmasını istemiyoruz. Daha önce
NoDataComplication
verilerinin kablo biçimi, yer tutucuyu normal alanlarda depoluyordu (eski kadranlar, amaçlanmayan yer tutucu dizesini oluşturması nedeniyle sorunluydu). Bunun yerine artık bunu tamamen izole etmek için bir iç paket kullanıyoruz.(d5e7bd2)
Sürüm 1.1.0-beta01
20 Nisan 2022
androidx.wear.watchface:watchface-*:1.1.0-beta01
yayınlanır. 1.1.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Artık
WatchFaceMetadataClient
yöntemleri (getUserStyleSchema
,getComplicationSlotMetadataMap
,getUserStyleFlavors
) veHeadlessWatchFaceClient.getUserStyleFlavors
,WatchFaceException
yerine unchecked RuntimeException atıyor. (I0718a) WatchFaceMetadataClient.WatchFaceException
, yeniden kullanılabilmesi için sınıftan çıkarıldı. (I4e869)
Hata Düzeltmeleri
WatchFaceMetadataClient
artık kısmiComplicationSlotBounds
gönderildiğinde kilitlenmeyecek.(Iaafd)
Sürüm 1.1.0-alpha05
6 Nisan 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05
yayınlanır. 1.1.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Artık
ComplicationData.dataSource
değerini inceleyerek hangi veri kaynağınınComplicationData
gönderdiğini anlayabilirsiniz. Bazı kadranlar, komplikasyon görüntülemeyi özelleştirmek için bu özelliği kullanabilir. (I44a73)
API Değişiklikleri
Renderer.CanvasRenderer
veRenderer.GlesRenderer
, oluşturma yöntemlerine iletilenSharedAssets
öğesini destekleyenRenderer.CanvasRenderer2
veRenderer.GlesRenderer2
için kullanımdan kaldırıldı. Java birlikte çalışabilirliği içinListenableCanvasRenderer2
veListenableGlesRenderer2
özelliklerini kullanıma sunduk. (I31ffa)@WatchFaceFlavorsExperimental
stili tanımlama özelliği eklendi: stilize kadranlardan oluşan önceden yapılandırılmış liste (I04dd0)Renderer.sharedAssets
artık bir StateFlow oldu ve kullanılmayanRenderer.SharedAssetsFactory
(I12ac5) kaldırıldıUserStyleSchema.userStyleSettings
desteği sonlandırılmadı (Iba7e3)HeadlessWatchFaceClient.getUserStyleSchemaDigestHash
ekledik. Bu,HeadlessWatchFaceClient
'nin özet karmasını hesaplamadan önce şemayı AIDL üzerinden geçirmenin nispeten düşük ek yükünden kaçınmasına olanak tanır. (I33597)WatchFaceMetadataClient
öğesineisUserStyleSchemaStatic
ekledik. Bu değer, kadran APK'sı güncellenmediği süreceUserStyleSchema
değerinin değişmeyeceğine güvenilebiliyorsa doğrudur. (I45a3f)UserStyleSchema
dosyasına, şemanın özet karmasını hesaplayangetDigestHash
dosyasını ekledik. Bu,UserStyleSchema
değerinin değişip değişmediğini verimli bir şekilde belirlemek için kullanılabilir. (I2063d)METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED
,METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED
olarak yeniden adlandırıldı (I9ba5d)UserStyleSetting.OnWatchEditorData
,UserStyleSetting.WatchFaceEditorData
olarak yeniden adlandırıldı. Yalnızca kadran düzenleyici tarafından kullanılan verileri içerir. (If3afb)
Sürüm 1.1.0-alpha04
9 Mart 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04
yayınlanır. 1.1.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Güncel
ComplicationData
her zaman kullanılamayabilir (ör.süresi dolmuş önbelleğe alınmış ComplicationData). Bu nedenleNoDataComplication
'ü isteğe bağlı bir yer tutucu ComplicationData ile genişlettik ve yalnızcaNoDataComplicationData
yer tutucusu bağlamında kullanılmasına izin verilenComplicationText.PLACEHOLDER
,MonochromaticImage.PLACEHOLDER
,SmallImage.PLACEHOLDER
,PhotoImage.PLACEHOLDER
değerlerini ekledik. Seçilen bu yer tutucuların gri kutular/yaylar ile oluşturulması önerilir. (I6285d) - Referans anından sonraki bir sonraki anı (komplikasyonun herhangi bir alanının değişebileceği anı) belirten
ComplicationData.getNextChangeInstant
değerini ekledik. Bu, komplikasyon güncellemeleri için kareleri planlamak amacıyla dahili olarak kullanılır. Örneğin, bir kadran normalde dakikada bir güncelleniyorsa kronometre komplikasyonunu ayarlamak kadranın saniyede bir güncellenmesine neden olur. (I7ceb2) EditorSession.watchFaceId
artık tüm API düzeylerinde kullanılabilir. Ayrıca, değeri artık her zamanWatchState.watchFaceInstanceId
ile tutarlı olacaktır. (I323b9)- Temel sorun çerçevede düzeltildiğinden
getPendingIntentForTouchEvent
API artık gerekli değildir. Bu nedenle, ilgili tüm API'ler kaldırılmıştır. Ana sayfa düğmesine kısa süre önce basılmış olsa bile kadranlarınPendingIntents
etkinleşmesi için özel bir işlem yapması gerekmez. (I1f2e8) - Oluşturma işlemi ekran görüntüsü içinse doğru olan
RendererParameters.isForScreenShot
değerini ekledik. Animasyon içeren bazı kadranlar, en iyi sonuçları elde etmek için ayarlamalar yapabilmek amacıyla bu bilgiye ihtiyaç duyar. (I96d99) - Ne tür bir sorunla karşılaştığınıza dair bilgi vermek için
WatchFaceExceptionReason
öğesiniWatchFaceException
öğesine ekledik. (I01d15) ComplicationDataSourceService.onImmediateComplicationRequest
kaldırıldı, bunun yerine sağlayıcının hızlı yanıt vermesi gerektiğini (ideal olarak 100 ms'den kısa sürede yanıt vermesi) belirtmek içinComplicationRequest.immediateResponseRequired
eklendi. Bu işlevin ayrıcalıklıcom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE
izniyle korunduğunu unutmayın. (Ie6b23)- Temel ve uygulama uyumluluğundaki boşluk kabul edilebilirlik özelliği, Tiramisu DP2 (I0cbb7) ile eşleşecek şekilde güncellendi
Hata Düzeltmeleri
- Artık kadran uygulaması, şema doğrulaması başarısız olursa bir istisnayla çöküyor (Ia400f)
Sürüm 1.1.0-alpha03
9 Şubat 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03
yayınlanır. 1.1.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Hiyerarşik stil şemaları için deneysel destek ekledik.
androidx.wear.watchface.style.UserStyleSetting.Option
'e, başlangıçta yalnızcaListOption
tarafından kullanılan childSettings adlı yeni bir özellik ekledik. Bu sayede, stil hiyerarşisinin Düzenleyici kullanıcı arayüzleri tarafından kullanılması için açıklanmasına olanak tanınmaktadır. Temel UserStyle değişmez veMap<String, ByteArray>
olarak kalır. (Iaf6f4) - Kadranın, sistem durumu yer paylaşımının oluşturulmasını yapılandırmasına olanak tanıyan
WatchFace.OverlayStyle
özelliğini ekledik. (I8520d) CanvasRenderer
için yeni bir isteğe bağlı kurucu parametresi olanclearWithBackgroundTintBeforeRenderingHighlightLayer
'ü kullanıma sunduk (varsayılan değer false). Bu parametre true olarak ayarlanırsa tuval, arka plan tonu rengiyle temizlenir. (Ie01e5)- Karışıklık veri kaynaklarının herhangi bir yapılandırma olmadan varsayılan bir değer sağlayabileceğini belirtmesine olanak tanıyan
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED
meta veri anahtarı eklendi (Icc0d4) - Bir kadran düzenlenirken hem etkileşimli hem de başsız bir örnek olması yaygındır. Bellek tasarrufu sağlamak için, saat kadranı oluşturma aracının örnekler arasında değişmeyen verileri (ör. dokular ve gölgelendiriciler) paylaşmasına olanak tanıyan
Renderer.SharedAssets
özelliğini kullanıma sunduk.GlesRenderer.setEglConfig
veGlesRenderer.setEglDisplay
için desteği sonlandırıldı. Bu özelliklerin ayarlanabilir olması amaçlanmamıştır ve ayarlanabilir olmaları, tanımlanmamış davranışlara yol açardı. (I0d9e7) ComplicationSlot.Builder
'yesetNameResourceId
vesetScreenReaderNameResourceId
(dize kaynaklarına referans veren) veandroidx.wear.watchface.client.ComplicationSlotState
'a ilgili alıcıları ekledik. Bu sayede sistem, ComplicationSlots adlarını düzenleyicilerde ve ekran okuyucularda kullanabilir. (If6c6a)WatchfaceMetadataClient.getUserStyleSchema
vegetComplicationSlotMetadataMap
artıkRemoteException
yerineWatchFaceException
atıyor. (I86f11)onSynchronousComplicationRequest
veComplicationDataSourceService
'daki ilgili işlevleronImmediateComplicationRequest
olarak yeniden adlandırıldı. (I87ba0)- Kadran düzenleyiciler, tamamlayıcı düzenleyicilere kıyasla çok daha az ekran alanına sahiptir. Bu nedenle, kadran düzenleyiciler için farklı simgelerin desteklenmesi mantıklıdır. Bu yama, tüm UserStyleSettings öğelerine ve uygun durumlarda Option sınıflarına
OnWatchEditorData
(şu anda yalnızca bir simge içerir) ekler. (If1886) - Java birlikte çalışabilirliğini iyileştirmek için ListenableGlesRenderer'ın kurucusuna
@JvmOverloads
ekledik. (I2974a)
Hata Düzeltmeleri
ListenableGlesRenderer
sınıfının kurucusu artık@Throws(GlesException::class)
olarak doğru şekilde işaretlendi ve bu sınıfı Java'da genişletmek mümkün oldu. (Iac6d0)PhotoImageComplicationData
tapAction'ın doğru şekilde işlenmesiyle ilgili hata düzeltildi (I1cc30)
Sürüm 1.1.0-alpha02
12 Ocak 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02
yayınlanır. 1.1.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Hata ayıklama ve test işlemlerine yardımcı olmak için
ComplicationData
ve ilgili alt sınıflarda artık hashcode, equals ve toString yöntemleri geçersiz kılındı. Bu sayede bu sınıflarla çalışma daha kolay hale geldi.
API Değişiklikleri
WatchfaceMetadataClient
yöntemleri, uygun olduğundaRemoteExceptions
değerini tekrar atar. Bu sayede istemci kodunun kadrandan gelen hataları yakalaması kolaylaşır. (I78785)ComplicationData
ve alt sınıflarda artık karma kod, eşittir ve toString işlevleri vardır. (I24bc6)
Sürüm 1.1.0-alpha01
15 Aralık 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01
yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
UserStyleSchema
veComplicationSlots
artık XML'de tanımlanabilir. Bu sayede kadran oluşturma işlemi basitleştirilir. Ayrıca, meta verileri almak için hizmete bağlanması gerekmediğindenWatchFaceMetadataClient
sorguları daha hızlıdır.WatchFaceMetadataClient
veListenableWatchFaceMetadataClient
artık deneysel değil ve kararlı api'nin bir parçası olacak. Sistem, isteğe bağlı olarak her biri kullanıcı tanımlı farklı stil seçeneklerine sahip birden fazla kadran örneğini destekleyebilir. Bunlar kadran seçicide gösterilir. Bu özelliği etkinleştirmek için kadranınızın manifest dosyasında aşağıdaki meta veri etiketi bulunmalıdır.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />
Bazı kadranlarda
UserStyle
içinde yakalanmayan bir durum vardır. Bu durumu ve birden fazla örneği desteklemek için kadran örneği kimliği artıkWatchState.watchFaceInstanceId
üzerinden kullanılabilir.ComplicationData
artık komplikasyonların yüklendikten hemen sonra gösterilmesine izin vermek için önbelleğe alınıyor.ComplicationData
bazen sistem tarafından hafızaya önbelleğe alınır, bazen de kadran kitaplıkları tarafından serileştirilir. Serileştirildiğinde, ilişkili tapAction kaybolur.Bu durumdaComplicationData.tapActionLostDueToSerialization
,true
değerini döndürür ve kadran, komplikasyona dokunulamayacağını belirtmek için komplikasyonu farklı şekilde (ör. devre dışı veya yarı saydam) oluşturur. Sistem, en kısa süredetapAction
ile güncellenmişComplicationData
gönderir.Bazı
ComplicationData
uzun süre önbelleğe alınmamalıdır. Bu nedenle, daha genel bir özellik olanComplicationDataTimeline
'ü ekledik. Bu, kadrana gönderilecek ve önbelleğe alınabilen ve otomatik olarak güncellenebilen zamana dayalı birComplicationData
dizisi sağlamak için kullanılabilir. Örneğin, bugünün hava durumu tahminini farklı saatlerde veya yaklaşan birden fazla takvim etkinliğini öğrenebilirsiniz.ComplicationRequestListener
, bu verileri döndürmek için kullanabileceğiniz yeni bir yöntemonComplicationDataTimeline
ile genişletildi.DefaultComplicationDataSourcePolicy
, birincil ve ikincil veri kaynakları içinComplicationType
'ı belirtebilmeniz için genişletildi.Kadran görünür ve ortam ışığı kapalıyken komplikasyonun normalden daha yüksek bir sıklıkta (saniyede bire kadar) güncellendiği senkronize komplikasyon sağlayıcılar için destek ekledik. Not: Senkronize komplikasyon sağlayıcıların kullanımı, bellek baskısı nedeniyle sınırlı olabilir.
Temel sorunu (ana ekran düğmesine bastıktan sonra kadran 5 saniye boyunca etkinlik başlatamaz) çerçevede çözdüğümüz için
PendingIntentTapListener
değişikliklerinin geri alınması muhtemeldir.
API Değişiklikleri
ComplicationData.isCached
,tapActionLostDueToSerialization
olarak değiştirildi. Bu, komplikasyon yuvasının dokunulamayacağını belirtmek için farklı şekilde oluşturulup oluşturulmayacağını belirlerken daha kullanışlıdır. (I6de2f)ComplicationDataTimeline
,wear-complication-data-source
listesine eklendi. Bu, kadrana gönderilecek ve önbelleğe alınabilen ve otomatik olarak güncellenebilen zamana dayalı birComplicationData
dizisi sağlamak için kullanılabilir. Örneğin, bugünün hava durumu tahminini farklı saatlerde veya yaklaşan birden fazla takvim etkinliğini öğrenebilirsiniz.ComplicationRequestListener
, bu verileri döndürmek için kullanabileceğiniz yeni bir yöntemonComplicationDataTimeline
ile genişletildi. Veri kaynağı hizmetlerini askıya almak için yeni bir kotlin sarmalayıcıSuspendingTimelineComplicationDataSourceService
eklendi. (Idecdc)PendingIntentTapListener
veWatchFaceControlClient.getPendingIntentForTouchEvent
eklendi. Bu, ana ekran düğmesine bastıktan sonra çerçevenin yeni etkinliklerin başlatılmasını 5 saniye boyunca engellediği sorunun aşılmasına yardımcı olabilir. (I98074)- Kadran başına
ComplicationData
önbelleği kullanıma sunuldu. Bunun amacı, sistem bunları güncelleyene kadar kadran yüklendiğinde bilinen son komplikasyon veri değerlerinin kadranda gösterilmesini sağlamaktır. OEM'ler için yeni bir API yöntemiWatchFaceControlClient.hasComplicationCache
vardır. Bu durum, sistemin kadrana komplikasyon gönderme stratejisini etkileyebilir. AyrıcaComplicationData
,isCached
özelliğine sahiptir vetapAction
önbelleğe alınamadığı ve önbelleğe alınmış komplikasyonlardanull
olacağı için önbelleğe alınmış komplikasyonların farklı şekilde oluşturulması önerilir. (I404b0) - Kadranın örnek kimliği artık
WatchState.watchFaceInstanceId
üzerinden kullanılabilir. Çoğu kadran için bu değerin kullanılması gerekmez. Ancak şemada depolanmayan kadran başına bir durum varsa kadran örneğini tanımlamak için bu anahtar kullanılır. Bu destek sürecine yardımcı olmak için artıkWatchFaceControlClient.createHeadlessWatchFaceClient
'ü aradığınızda bir kimlik sağlayabilirsiniz. (I1ff98) - Birincil, ikincil sağlayıcı ve yedek sistem sağlayıcı için varsayılan
ComplicationTypes
ayarlama özelliğiyleDefaultComplicationDataSourcePolicy
genişletildi.ComplicationSlot.defaultDataSourceType
desteği sonlandırıldı. (If0ce3) ComplicationSlot.configExtras
artık değiştirilebilir veEditorSession.openComplicationDataSourceChooser()
çağrılmadan önce güncellenebilir. (I6f852)WatchFace.setComplicationDeniedDialogIntent
vesetComplicationRationaleDialogIntent
eklendi. Bu intent'ler, komplikasyon izinleri istenmeden önce bir neden iletişim kutusu ve izinler reddedildiğinde bir komplikasyonu düzenlemeye çalışırken komplikasyon izninin gerekli olduğunu açıklayan başka bir iletişim kutusu göstermek için başlatılır (sağlayıcı seçici açılamayacağı için iletişim kutusu gereklidir). (I3a29c)UserStyleSchema
veComplicationSlots
artık XML'de tanımlanabilir. Bu, kadran oluşturmayı basitleştirir ve meta verileri almak için hizmete bağlanmaları gerekmediğindenWatchFaceMetadataClient
sorgularını hızlandırır. (I85bfa)- İstemcinin, bir kadran
getPendingIntentForTouchEvent
'ü destekleyip desteklemediğini belirleyebilmesi içinInteractiveWatchFaceClient.supportsPendingIntentForTouchEvent
eklendi. (I0b917) WatchFaceMetadataClient
veListenableWatchFaceMetadataClient
artık deneysel değil. Mümkün olduğunda kadran için bir bağlayıcı açmadan kadran meta verilerini verimli bir şekilde elde etmek için kullanılabilirler. (Ibb827)- Kadran görünür ve ortam ışığı kapalıyken komplikasyonun normalden daha yüksek bir sıklıkta (saniyede bire kadar) güncellendiği senkronize komplikasyon sağlayıcılar için destek eklendi. Sağlayıcının bunu kullanabilmesi için manifest dosyasına yeni bir
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS
meta veri etiketi eklemesi veonSynchronousComplicationRequest
değerini geçersiz kılması gerekir. Veri kaynağının yapısına bağlı olarak, komplikasyonun etkileşimli moda ne zaman girip çıktığıyla ilgili bildirimler almak içinonStartSynchronousComplicationRequests
veonStopInteractiveComplicationRequests
değerlerini geçersiz kılması da gerekebilir. (I8fe9d)
Sürüm 1.0
1.0.1 sürümü
9 Şubat 2022
androidx.wear.watchface:watchface-*:1.0.1
yayınlanır. 1.0.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
PhotoImageComplicationData
tapAction'ın doğru şekilde işlenmesiyle ilgili hata düzeltildi (I1cc30)
Sürüm 1.0.0
1 Aralık 2021
androidx.wear.watchface:watchface-*:1.0.0
yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünün önemli özellikleri
androidx.wear.watchface
paketi, WearOS kadranları geliştirmek için önerilen yeni kitaplıktır. Eski Wearable Destek Kitaplığı'na kıyasla birçok yeni özelliğe sahiptir.
- Kullanıcı stili (ör.renk paletini, saat ibrelerinin stilini, saat işaretlerinin görünümünü değiştirmek için) kitaplık tarafından doğrudan desteklenir (
androidx.wear.watchface.style
bölümüne bakın). androidx.wear.watchface.editor kullanılarak kadran üzerinde bir düzenleyici geliştirmek artık çok daha kolay.Ayrıca, kadranınız ek kod yazmanıza gerek kalmadan sistem tamamlayıcı uygulamasından düzenlenebilir. - En iyi uygulamalar dahildir. Kütüphane, komplikasyonlar için ekran okuyucu içerik etiketlerini otomatik olarak oluşturur (kendi etiketlerinizi de ekleyebilirsiniz). Pil seviyesi düşük olduğunda ve şarj olmuyorsa pil ömrünü artırmak için kare hızı otomatik olarak düşer.
- Özellikle de şablon kodların çoğunun kitaplığa taşındığı komplikasyonlar için kadran geliştirmek için daha az kod gerekir.
Hata Düzeltmeleri
EditorSession.userStyle.compareAndSet
(I6f676) sorununu düzeltin- Çok kısa kadran gecikmeleri düzeltildi (Iffb97)
- Kullanıcı arayüzü iş parçacığında
InteractiveWatchFaceImpl.onDestroy
'ü dağıtma (I83340) - Yayın alıcılarıyla ilgili çeşitli sorunları düzeltme (I7d25f)
Sürüm 1.0.0-rc01
3 Kasım 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01
yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
Akış taşımaları nedeniyle bozulan dump() (adb shell dumpsys tarafından çağrılır) işlevini düzeltin. (087cf9e)
writeDirectBootPrefs işlevinin doğru sırayla çağrıldığından emin olun. writeDirectBootPrefs'in her zaman initStyleAndComplications'tan sonra çalışmasını istiyoruz. Aksi takdirde kullanıcı arayüzü iş parçacığı başlatılmasını geciktirebiliriz.(37650ac)
Renderer.onDestroy işlevinin çağrıldığından emin olun. Oluşturucunun oluşturulduğu ancak WF ilk başlatılmasının tamamlanmadığı ve Engine.onDestroy'un çağrıldığı senaryoda Renderer.onDestroy'u çağırmamız gerekir. (f9952dc)
isBatteryLowAndNotCharging için optimizasyon/düzeltme. Bu yama, isBatteryLowAndNotCharging özelliğinin ilk kurulumunu daha erkene taşır. Bu sayede, createWatchFace ile paralel olarak yapılabilir. Ayrıca artık ACTION_POWER_DISCONNECTED etkinliğini de dinliyoruz. (ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive, kapatıldıktan sonra false olmalıdır (ab9774e)
Sürüm 1.0.0-beta01
27 Ekim 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01
yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.
Sürüm 1.0.0-alpha24
13 Ekim 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha24
yayınlanır. 1.0.0-alpha24 sürümü bu taahhütleri içerir.
API Değişiklikleri
androidx.wear.watchface.complications
paketindeki sınıflar yeni birwear:watchface:watchface-complications
projesine taşındı. Bu, yinelenen sınıflarla ilgili hatalar almanız nedeniyle bu kitaplığın yanı sırawear:watchface:watchface-complications-data
'ın önceki alfa sürümlerini de ekleyemezsiniz. (I97195)- Renderer.dump, Renderer.onDump olarak yeniden adlandırıldı ve @UiThread ile ek açıklamaya tabi tutuldu. (I44845)
InteractiveWatchFaceClient.addWatchFaceReadyListener
,addOnWatchFaceReadyListener
olarak yeniden adlandırıldı veremoveWatchFaceReadyListener
,removeOnWatchFaceReadyListener
olarak yeniden adlandırıldı. (I48fea)- EditorSession
getComplicationsPreviewData
vegetComplicationsDataSourceInfo
artık askıya alma işlevleri değil, başlangıçta değeri null olanStateFlow<>
mülkleridir. ListenableEditorSession'dagetListenableComplicationPreviewData
vegetListenableComplicationsProviderInfo
, temel sınıftaki yeniStateFlow<>
nesneleri kullanmak üzere kaldırıldı. Java kodundaki değişiklikleri dinlemeniz gerekiyorsaandroidx.lifecycle.FlowLiveDataConversions.asLiveData
'üLiveData<>
'e dönüştürmek için kullanabilirsiniz. (Ic5483)
Sürüm 1.0.0-alpha23
29 Eylül 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23
yayınlanır. 1.0.0-alpha23 sürümü bu taahhütleri içerir.
Yeni Özellikler
Kadran kitaplığı artık tek bir kitaplık grubudur. Bu nedenle, kitaplıklar taşınmıştır ve gradle içe aktarma işlemlerinizi aşağıdaki şekilde güncellemeniz gerekir:
Eski | Yeni |
---|---|
androidx.wear:wear-complications-data |
androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source |
androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface |
androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering |
androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client |
androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava |
androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data |
androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor |
androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava |
androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava |
androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style |
androidx.wear.watchface:watchface-style |
API Değişiklikleri
- Ayrı
androidx.wear
kadran ve komplikasyon kitaplıklarınıandroidx.wear.watchface
kitaplık grubuna taşıyın. (b25f3c0) - Bir kadran düzenleyicinin headless düzenlemeyi destekleyip desteklemediğini istemciye bildirmek için EditorRequest.canWatchFaceSupportHeadlessEditing eklendi. asop/1756809 sürümünde destek eklendiğinden bu konuda bazı yanlış negatif sonuçlar olacağını ancak gelecekteki tüm kadranlar için doğru değeri döndüreceğini unutmayın. (ca55590)
- Oluşturucu artık ABD kabuğu dumpsys etkinlik hizmeti WatchFaceService tarafından oluşturulan bilgilere özel veriler eklemek için geçersiz kılınabilen bir dump() yöntemine sahiptir. (95235f9)
- InteractiveWatchFaceClient.addWatchFaceReadyListener artık önce yürütücüyü belirtir. (563ac2f)
- StateFlowCompatHelper kaldırıldı. Bunun yerine asLiveData (androidx.lifecycle.asLiveData) kullanılmalıdır. (bd35d3)
- CurrentUserStyleRepository.userStyle artık değiştirilemez. (I44889)
- WatchFaceReadyListener, OnWatchFaceReadyListener olarak yeniden adlandırıldı. (Ic12a9)
Hata Düzeltmeleri
- onDestroy'u çağırmak için InteractiveInstanceManager.deleteInstance. Bu, InteractiveWatchFaceImpl'in çöp toplanması için gereklidir.(fce4af8, b/199485839)