Wear kadranı
Not: Kadranların Wear OS 5 veya sonraki sürümlerin önceden yüklü olduğu cihazlara yüklenmesi ve Google Play'de yayınlanan tüm yeni kadranlar için Saat Kadranı Formatı gereklidir.
Ocak 2026'dan itibaren, kadranların tüm Wear OS cihazlara yüklenebilmesi için Saat Kadranı Formatı'nın kullanılması zorunlu olacak.
Kullanıcıya yönelik değişiklikler hakkında daha fazla bilgiyi bu Yardım Merkezi makalesinde bulabilirsiniz.
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 17 Aralık 2025 | 1.2.1 | - | 1.3.0-beta01 | - |
Bağımlılıkları bildirme
Wear'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
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" }
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ştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.3
Sürüm 1.3.0-beta01
17 Aralık 2025
androidx.wear.watchface:watchface-*:1.3.0-beta01 iptal edilir. 1.3.0-beta01 sürümü bu commit'leri içerir.
Yeni Özellikler
- Statik komplikasyon önizleme verileri için destek eklendi. Komplikasyon sağlayıcılar, manifestlerinde statik önizleme verileri belirtebilir. Daha fazla bilgi için
androidx.wear.watchface.complications.data.parser.StaticPreviewDataParserbölümüne bakın. - Veri ve saati olabildiğince kısa biçimlendirme desteğiyle
ComplicationTextFormattingyardımcı sınıfı eklendi. Bu, alanın çok değerli olduğu komplikasyonlar için kullanışlıdır.
API Değişiklikleri
- Daha önce deneysel olan
Renderer.watchfaceColorsmülkü artık gizli. Bu mülk için herkese açık erişimciler hâlâ mevcut. (Ifdf60, b/409363281)
Hata Düzeltmeleri
- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (I48968, b/407632515)
Sürüm 1.3.0-alpha07
23 Nisan 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha07 iptal edilir. 1.3.0-alpha07 sürümü bu commit'leri içerir.
Yeni Özellikler
- Bir süredir kadranın UserStyle şemasını tanımlamak mümkündü ve XML'de
ColorUserStyleSettingtanımlamak da mümkündür.
API Değişiklikleri
- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (Idb6b5)
- Wear OS uygulamasının bir saate programatik olarak kadran yüklemesine olanak tanıyan Watch Face Push API eklendi.
Hata Düzeltmeleri
- 1.3.0-alpha06 sürümünü kullanan komplikasyon sağlayıcıların, WearOS'in sonraki sürümünde
ComplicationDataSourceUpdateRequesterile ilgili kilitlenme hatası düzeltildiği için yükseltme yapmaları önerilir.
Sürüm 1.3.0-alpha06
26 Mart 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha06 iptal edilir. 1.3.0-alpha06 sürümü bu commit'leri içerir.
Yeni Özellikler
- Wear kadran API'lerinin (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava ve watchface-style) desteği Wear Kadran Formatı lehine sonlandırıldı ve bu API'ler zamanla AndroidX'ten kaldırılacak. Komplikasyon API'lerinin desteği sonlandırılmadı ve bu API'ler kullanılmaya devam edecek. (Ice960)
- Karmaşık API'ler artık doğrudan
WearSDKile iletişim kurabiliyor. Bu, daha az IPC atlaması nedeniyle daha verimli bir yöntemdir.
Sürüm 1.3.0-alpha05
15 Ocak 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05 iptal edilir. 1.3.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
Kadranlar genellikle kullanıcının ListUserStyle kullanarak renk seçmesine olanak tanır. Bu yöntem işe yarasa da simgelerin Bluetooth üzerinden yardımcı düzenleyiciye gönderilmesi verimsizdir. Bu nedenle, yükün stil başına bir veya daha fazla renkten oluşan bir liste olduğu ColorUserStyleSetting yöntemini kullanıma sunduk. Bu yöntemde, tel biçimi çok daha kompakttır.
OEM komplikasyon sağlayıcılarının, OEM kadranları tarafından kullanılmak üzere ComplicationData'ya ekstralar eklemesine olanak tanıyan, OEM'lere yönelik bir özellik ekledik.
API Değişiklikleri
UserStyleSettingveUserStyleOptionsınıfları artık oluşturuculara sahip. Bu, sınıfları oluşturmak için önerilen yöntemdir. (Iacd03)ComplicationDataiçinde ekstraları iletme desteği. Bu özellik, hem komplikasyon sağlayıcıyı hem de alıcı saat yüzünü 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_EXTRASizni gerekir. (I4e3b2)- Saat yüzleri genellikle kullanıcının
ListUserStylekullanarak renk seçmesine olanak tanır. HerListOptioniçin bir simge bulunur.UserStyleşemaları Bluetooth üzerinden gönderildiğinden, şema boyutunu düşük tutmak önemlidir. Bu durum, tüm bu simgeler nedeniyle düzinelerce renk seçeneği sunuluyorsa sorun yaratabilir. Bu konuda yardımcı olmak için, seçenekte simge yerine renk listesi bulunan yerlereColorUserStyleSettingekledik. Bu, çok daha kompakt bir seçenektir. (Ib542e) ColorUserStyleSettingveColorOption'nin kullanılabilmesi için API 34 gerekir. (I8771d)
Hata Düzeltmeleri
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için şu derleyici bağımsız değişkenini kullanmalıdır:
-Xjspecify-annotations=strict(Bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Ifd363, b/326456246)
Sürüm 1.3.0-alpha04
18 Eylül 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha04 iptal edilir. 1.3.0-alpha04 sürümü bu commit'leri içerir.
Yeni Özellikler
UserStyleSettingsveUserStyleOptionsiçinde simgelerin geç yüklenmesi için destek eklendi. Bu, kadranların yüklenmesi açısından performans artışı sağlar. (Iaf43d)- Yeni
Watchface.setUpdateScreenshotOnConfigurationChangearacılığıyla, sistem yapılandırması her değiştiğinde (ör. yerel ayar değiştiğinde) güncellenmiş bir ekran görüntüsü alınması için seçenek eklendi. Bu ayar varsayılan olarak kapalıdır. (I765a1)
Hata Düzeltmeleri
- AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler kullanılırken yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8'in 8.1 veya sonraki bir sürümüne 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 iptal edilir. 1.3.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
- Düzenleme sırasında temel saat yüzü örneğinin
ComplicationDataözelliğini geçici olarak ayarlayanEditorSession#setOverrideComplicationsişlevini ekledik. Komplikasyonlar nadiren değişiyorsa bu yöntem, geçersiz kılmalarıEditorSession#renderWatchFaceToBitmapüzerinden iletmeye kıyasla daha verimlidir. (I19384)
Hata Düzeltmeleri
- Daha önce
selectComplicationDataForInstant, tüm zaman çizelgeleri içintoApiComplicationData'i çağırıyordu. Bu nedenle, sonraki === referans eşitliği testi her zaman başarısız oluyordu. Bu durum, komplikasyonların her karede yeniden yüklenmesine ve pilin boşalmasına neden oluyordu. (717406)
Sürüm 1.3.0-alpha02
3 Nisan 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02 iptal edilir. 1.3.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
- Eşittir operatörü maliyetli olduğundan, artık en iyi ve
selectedDatakarşılaştırması için referans eşitliği kullanıyoruz. (446b00)
API Değişiklikleri
GoalProgressComplicationDataiçin yedekli olmayan bir dinamik API ekledik. (c33264)
Sürüm 1.3.0-alpha01
7 Şubat 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01 iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
WatchFaceServiceseşzamanlı olarak başlatılabilir ve bu nedenle durumsuz olmalıdır. Bunu desteklemek içinStatefulWatchFaceServiceekledik. Bu sayede, başlatma sırasında çağrılan tüm geçersiz kılmalaracreateExtra()tarafından oluşturulan kullanıcı tanımlı bir ek iletilir.GlesRenderer2artıkeglChooseConfigile sırayla denenecek bir özellik listesi belirtmenize olanak tanıyan bir oluşturucu aşırı yüklemesine sahip.
API Değişiklikleri
StatefulWatchFaceServiceartıkgetComplicationSlotInflationFactoryöğesinin geçersiz kılınmasını destekliyor. Bu öğeye,createExtra()tarafından oluşturulan kullanıcı tanımlı ek öğe aktarılıyor. (I82d9f)- Bazı saat yüzlerinin,
createUserStyleSchemasırasında oluşturulan yardımcı verileri diğer başlatma yöntemleriyle paylaşması gerekir. Daha iyi bir alternatif olmadığı için geliştiriciler genellikleWatchFaceServicesdurumunu koruyacak şekilde oluşturuyordu. Bu durum, eşzamanlı olarak birden fazla örnek oluşturulabileceği ve bunun da hatalara yol açabileceği için tehlikelidir. Bu sorunu çözmek içinStatefulWatchFaceServiceveStatefulWatchFaceRuntimeServiceişlevlerini kullanıma sunduk. Bu işlevlerde, kullanıcı tanımlı bir türcreateExtra()tarafından oluşturulur ve çeşitli oluşturma yöntemlerine parametre olarak iletilir. (If8a99) InteractiveWatchFaceClient'yegetUserStyleFlavorsözelliğini ekledik. Bu özellik, öncelikle OEM'lerin ilgisini çekecektir. (I0f5d8)GlesRenderer2artıkeglChooseConfigile sırayla denenecek bir özellik listesi belirtmenize olanak tanıyan bir oluşturucu aşırı yüklemesine sahip. Örneğin, bu sayede önce kenar yumuşatma içeren bir yapılandırmayı deneyebilir ve gerekirse kenar yumuşatma içermeyen bir yapılandırmaya geri dönebilirsiniz. (I1ba74)- Android U'dan itibaren WearOS'e
SystemDataSources.DATA_SOURCE_HEART_RATEdesteği eklenecek. Bu komplikasyonun yalnızcaSHORT_TEXTkomplikasyonlarını destekleyeceği garanti edilir ancak OEM'ler canlı değer yerine sağlık uygulamalarına kısayol sunmayı tercih edebileceğindenComplicationSlot'ninSMALL_IMAGEkomplikasyonlarını da kabul etmesi önerilir. (I34223) - Android U'dan itibaren
METADATA_KEY_CONFIG_RESTORE_SUPPORTEDözelliğini ekledik. Bu özellik, sistemMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONile komplikasyon veri kaynağı için yedekten geri yüklendiğinde ne olacağını kontrol eder. Sistem, varsayılan olarak komplikasyon veri kaynağı hizmetinin tüm yapılandırma verilerinin yedeklenmesini desteklediğini varsayar. Ancak hizmet bunu desteklemiyorsa komplikasyon yuvasını yapılandırılmamış olarak işaretleyecek olanMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONmeta veri ayarını false olarak ekleyebilir. (I6c505)
Sürüm 1.2
Sürüm 1.2.1
24 Ocak 2024
androidx.wear.watchface:watchface-*:1.2.1 iptal edilir. 1.2.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Samsung Galaxy Watch 4, 5 ve 6'da kilitlenme sorunu düzeltildi. (43f0b0)
Sürüm 1.2.0
29 Kasım 2023
androidx.wear.watchface:watchface-*:1.2.0 iptal edilir. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
- Android T'den itibaren kullanılabilecek bazı yeni komplikasyon türleri için destek ekledik:
GoalProgressComplicationData,RangedValueComplicationDataişlevine benzer ancak minimum değerin örtülü olarak sıfır olduğu ve değerintargetValuedeğerinden büyük olmasına izin verildiği bir hedefe yönelik ilerleme için kullanılır.WeightedElementsComplicationData, isteğe bağlı metin/başlık/resim ile birlikte bir dizi öğeden (ağırlık ve renk çiftleri) oluşur. Bunlar, genellikle komplikasyonda etiket oluşturmak için yer olmadığından, bağlam göz önünde bulundurulduğunda renklerin anlamlı olması gereken bir pasta grafiği olarak gösterilebilir.
- İsteğe bağlı
ColorRangesiçinRangedValueComplicationDatadesteği eklendi. Normalde özellikler, saat yüzünün seçtiği renklerde oluşturulur ancak bazen renkleri ayarlamak için en iyi yerComplicationDataSourceolur (ör. belirli bir anlamsal anlamları olduğunda). Örneğin, sıcaklık için kırmızıdan maviye. - Neredeyse her tür
ComplicationDataartıkSmallImages'ı destekliyor. ComplicationDisplayPolicyifadesini ekledik.DO_NOT_SHOW_WHEN_DEVICE_LOCKED, cihaz kilitliyken komplikasyonun gösterilmemesi için uyumlu bir kadrana talimat verir.- Android T'den itibaren OEM'ler,
android.support.wearable.complications.SAFE_WATCH_FACESile sağlayıcılarının manifest dosyasındakiComplicationRequest#isForSafeWatchFacemeta verilerinde tanımlanan listedeki bir saat yüzünden komplikasyon isteği gelip gelmediğini belirleyebilecek. Sağlayıcının,com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEizniyle TargetWatchFaceSafety.UNKNOWN dışındaki değerleri alması gerekir. 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 iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.
Sürüm 1.2.0-beta02
6 Eylül 2023
androidx.wear.watchface:watchface-*:1.2.0-beta02 iptal edilir. 1.2.0-beta02 sürümü şu commit'leri içerir.
Yeni Özellikler
SuspendingComplicationDataSourceService#onDestroyartı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 özellikleri için yeni bir veri kaynağı kullanıma sunma"yı geri alın. (I6f335)
Sürüm 1.2.0-beta01
23 Ağustos 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01 iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Android T'den itibaren WearOS, varsayılan hava durumu sistemi komplikasyonunu destekleyecek.
API Değişiklikleri
- Özellikler için varsayılan hava durumu sistemi yedeği eklendi. (Ia0994)
- Bu yama, guava sarmalayıcılarının yanı sıra
WatchFaceRuntimeServiceveWatchFaceControlClient.createWatchFaceRuntimeControlClientöğelerini ekler. Bu kitaplıklar, 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 Watch Face Formatı için çalışma zamanını desteklemektedir. (I2799f) - Bu yama, aosp/2636578 ile ilgili bir takip yamasıdır. Bu yamada,
WatchFaceType,CanvasType,TapTypeveyaComplicationsSlotBoundsTypeöğesine bağlı kodların değiştirilmesi gerekmemesi için int tanımları yeniden adlandırılır. (I4098b) - Uyumluluk bastırmayı açıklama eklemek için API dosyaları güncellendi. (I8e87a, b/287516207)
- Bu yama,
WatchFaceTypesiçindeWatchFaceTypesabitlerini,CanvasTypesiçindeCanvasTypesabitlerini,TapTypesiçindeTapTypesabitlerini veComplicationsSlotBoundsTypeiçindeComplicationsSlotBoundsTypesabitlerini kullanıma sunar. (I3b85a, b/288750666) WatchFace.OverlayStyleçok az kullanılıyor ve OEM'ler tarafından iyi desteklenmiyor. Bu nedenle, daha sonra kaldırmak üzere desteğini sonlandırıyoruz. (I7344a)
Sürüm 1.2.0-alpha09
21 Haziran 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09 iptal edilir. 1.2.0-alpha09 sürümü şu commit'leri içerir.
Yeni Özellikler
RangedValueComplicationData.BuilderartıkDynamicFloat'ı kabul ediyor veComplicationText'ün alt sınıfı olarak yeni birDynamicComplicationTextkullanılabiliyor. Her ikisi de desteklenen Wear 4 cihazlarda 1 Hz'de güncellenen platform bağlamalarının yanı sıra dinamik ifadelerden yararlanabiliyor.
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ık kaynaklarının anahtarları artık
PlatformHealthSources.Keys(Ib7637) altında - Nabzı ve günlük adımları sağlamak için
PlatformDataProvider'ı uygulayın.SensorGatewayarayüzü, herkese açık API'den kaldırıldı. (I55b84) StateEntryValue'yıDynamicDataValueolarak yeniden adlandırın ve durum API'leriniDynamicDataKey'yi kullanacak şekilde güncelleyin. (If1c01)- Uygulama tarafından gönderilen duruma erişmek için
AppDataKey, platform verilerine erişmek içinPlatformDataKey,StateStore'da ad alanı desteği ekleyin. (I7985e) enable/disablePlatformSourceyöntemleriDynamicTypeEvaluatorcihazından kaldırıldı. Güncellemelerden arayan kişi 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 iptal edilir. 1.2.0-alpha08 sürümü şu commit'leri içerir.
Yeni Özellikler
- Android T'den itibaren, ayrıcalıklı
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEiznine sahip komplikasyon sağlayıcılar, güvenli saat yüzleri içinandroid.support.wearable.complications.SUPPORTED_TYPESyerine geçenandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESmeta verilerini kaydedebilir. Bu nedenle, komplikasyon sağlayıcılar güvenilir ve güvenilmeyen saat yüzlerinde farklı türler yayınlamayı tercih edebilir.
API Değişiklikleri
@Deprecatedsınıfının mülke yayılması (I882d1, b/271441831)Enum.valueOfiçin değer parametresi adı değiştirildi (Ia9b89)- Enum valueOf (I818fe) işlevinden daha fazla istisna oluşturuldu
renderWatchFaceToSurfaceyerinecreateRemoteWatchFaceView'yi kullanmaya başladık.createRemoteWatchFaceView, SurfaceControlViewHost'un üzerine kurulmuştur ve arayanın, istemciRemoteWatchFaceViewHost#renderWatchFace'yi çağırdığında oluşturulan saat yüzünden bir görünüm yerleştirmesine olanak tanır. (Ib311d)renderWatchFaceToSurfaceadlı kullanıcıyıInteractiveWatchFaceClient,HeadlessWatchFaceClientveEditorSessionlistelerine ekledik. Bu yöntem genellikle bit eşleme olarak oluşturmaktan daha iyi performans gösterir. (Ieacad)ObservableStateStore,StateStoreolarak yeniden adlandırıldı. (Ieb0e2)DynamicTypeEvaluator.Builderyerine oluşturucu bağımsız değişkenleri eklendi. Bu sayede, artık varsayılan olarak boş bir mağazaya ayarlanmış olanObservableStateStoredahil olmak üzere daha fazla isteğe bağlı bağımsız değişken kullanılabiliyor. (I6f832)DynamicTypeEvaluatoriçindeki parametrelerin sırası yeniden düzenlendi. (Ic1ba4)- Executor,
DynamicTypeEvaluator.bindyöntemlerine eklendi. (I346ab) - Dinamik tür bağlandıktan sonra değerlendirmeyi tetiklemek için
BoundDynamicTypeöğesinestartEvaluationyöntemi eklendi. (I19908) - Ayrıcalıklı
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEkomplikasyon sağlayıcılar, güvenli saat yüzleri içinandroid.support.wearable.complications.SUPPORTED_TYPESdeğerini geçersiz kılanandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESmeta verilerini kaydedebilir. (Id1c73) CustomValueUserStyleSettings2hizmetinin adınıLargeCustomValueUserStyleSettingsolarak değiştirdik. (Ic17ac)
Hata Düzeltmeleri
DynamicTypeValueReceiver#onPreUpdatekaldırıldı. (I2dc35)
Sürüm 1.2.0-alpha07
22 Şubat 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07 iptal edilir. 1.2.0-alpha07 sürümü şu commit'leri içerir.
Yeni Özellikler
Android T'den itibaren OEM'ler,
android.support.wearable.complications.SAFE_WATCH_FACESile sağlayıcılarının manifest dosyasındakiComplicationRequest#isForSafeWatchFacemeta verilerinde tanımlanan listedeki bir saat yüzünden komplikasyon isteği gelip gelmediğini belirleyebilecek. Sağlayıcının,TargetWatchFaceSafety.UNKNOWNdışındaki öğeleri alabilmesi içincom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEizni gerekir.Ayrıca Android T'den
CustomValueUserStyleSetting2da kullanılabilir.Bu alan 12,5 KB'a kadar veri barındırabilir.CustomValueUserStyleSettingiçin önceki sınır 1 KB idi. Boyut sınırları artırılmış olsa da saat yüzü geliştiricilerin verileri küçük tutması önerilir. Bunun nedeni, ayarların düzenleme sırasında Bluetooth üzerinden gönderilmesi ve Bluetooth bant genişliğinin sınırlı olmasıdır.
API Değişiklikleri
GlesRendererveGlesRenderer2işlevlerine isteğe bağlı bir parametreeglContextAttribListekledik. Bu parametre,EGL14.eglCreateContextişlevine iletilenEGL14.EGL_CONTEXT_CLIENT_VERSIONdeğerini ayarlamanıza olanak tanır. (I2a83e)- Kadran kitaplıklarını
java.util.function.Consumeryerineandroidx.core.util.Consumer'ya taşıdık. (I273f5) - KT özelliği erişimcilerinden daha fazla istisna oluşturuluyor (Iff9d9)
- İstemcinin, eski kadranlar adına desteği taklit etmesi gerekip gerekmediğini belirleyebilmesi için
InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedöğesini ekledik. (I24c89) isForSafeWatchFaceöğesinin üç durumluIntDefolması gerektiğine karar verdik. (Ief2f7)- Android T'de, OEM kullanımına yönelik olan ve
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEgerektirenComplicationRequest.isForSafeWatchFaceözelliğini kullanıma sunduk. Sistem görüntüsündeki veri kaynakları için, istekte bulunan saat yüzü, manifest dosyasında veri kaynağı tarafından belirtilen güvenli saat yüzleri listesindeyse true değerini döndürür. (I0cbb6) - Android T için 12,5 KB'a kadar veri tutabilen
CustomValueUserStyleSetting2eklendi.CustomValueUserStyleSettingiç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 iptal edilir. 1.2.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
- Komplikasyon platformu bağlamaları için destek ekleme çalışmaları devam ediyor. Bu özellik henüz kullanıma hazır değil ancak bizi takip etmeye devam edin.
- Yeni GOAL_PROGRESS ve WEIGHTED_ELEMENTS komplikasyon türleri için XML
ComplicationSlotdesteği ekledik.
Hata Düzeltmeleri
- Kadran düzenleyicinin Samsung cihazlarda düzgün şekilde yayınlanmamasına neden olan sızıntı düzeltildi. (3b5987)
- Birden fazla favori içeren bir kadran arasında geçiş yaparken komplikasyonların bazen düzgün şekilde görüntülenmemesine neden olan hata düzeltildi. (b38ece)
- Saat yüzünün kilitlenmesine neden olan perOptionScreenReaderNames ile ilgili serileştirme hatası düzeltildi. (e9f466)
Sürüm 1.2.0-alpha05
7 Aralık 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05 iptal edilir. 1.2.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
Bir süre önce hiyerarşik
UserStyleSettingsdesteği ekledik. Android T'den itibaren artık bir hiyerarşide birden fazlaComplicationSlotsUserStyleSettingbulunabilir. Kullanıcının stil seçimlerine göre yalnızca birComplicationSlotsUserStyleSettingetkin olur.ListOptionveComplicationSlotsOptioniçin ekran okuyucu desteğini iyileştiriyoruz. Bu kapsamdascreenReaderNamealanı ekliyoruz. Android T'den önceki sürümlerde bu alan yardımcı düzenleyiciler tarafından yoksayılacaktır.
API Değişiklikleri
- Düzenleyicilerin kullanması için
screenReaderNameveComplicationSlotsOption'ye yeni bir isteğe bağlıListOptionalanı ekledik. Bu alan, Android T'den önceki sürümlerin yüklü olduğu cihazlardaki yardımcı düzenleyiciler tarafından yoksayılır. (I75326) - Android T'den itibaren, aynı anda yalnızca birinin etkin olabilmesi koşuluyla stil hiyerarşisinde birden fazla
ComplicationSlotsUserStyleSettingsdesteklenmektedir. EtkinComplicationSlotsOptionvarsa bulmanıza yardımcı olmak içinUserStyleSchema'efindComplicationSlotsOptionForUserStyleyardımcı işlevini ekledik. (Ic2b06) RangedValuesTypes,RangedValueComplicationData'nin yardımcı nesnesine çekildi veTYPE_UNDEFINED,TYPE_RATINGolarak yeniden adlandırıldı. Yeni birTYPE_PERCENTAGEeklendi. (I55d02)- Deneysel
DynamicFloatözelliğinin adınıFloatExpressionolarak değiştirdik ve@hideolarak işaretledik. (Idf4f1) @JvmDefaultWithCompatibilityek açıklamasını ekleme (I8f206)
Sürüm 1.2.0-alpha04
9 Kasım 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04 iptal edilir. 1.2.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
- Android T'de
GoalProgressComplicationDataveWeightedElementsComplicationDataolmak üzere iki yeni komplikasyon türü için destek ekledik. GoalProgressComplicationData,RangedValueComplicationDataözelliğine benzer ancak değeri hedefin ötesine geçebilir (RangedValueComplicationDataiçin değer [min .. max] aralığına sabitlenir). Bu durum, tüm saat yüzlerine uygun olmayabilecek görsel tasarım açısından sonuçlar doğurur.GoalProgressComplicationData, pasta grafikleri ve basit verilerin benzer şekilde ayrıştırılmasını destekler.RangedValueComplicationDataöğesineColorRampsiçin isteğe bağlı destek ekledik.- Android T için,
ComplicationDataöğesineComplicationPersistencePolicyvesetCachePolicyekledik.Bu öğeler, şu anda bir sağlayıcının komplikasyonun kalıcı olup olmadığını (ör. yeniden başlatma işleminden sonra önbelleğe alınıp alınmadığını) kontrol etmesine olanak tanıyor. Çoğu komplikasyonun önbellek kontrolünü ayarlaması gerekmez ancak bunu yapmak, sık sık güncellenen bazı komplikasyonlarda (ör. sağlık verileri komplikasyonları) eski verilerle ilgili uç durumları düzeltebilir. Ayrıca,ComplicationDisplayPolicyifadesini de ekledik. Bu ifade,DO_NOT_SHOW_WHEN_DEVICE_LOCKEDile birlikte kullanıldığında cihaz kilitliyken komplikasyonun gösterilmemesi için uyumlu bir kadranı yönlendirir. (Ic9574)
API Değişiklikleri
GoalProgressComplicationData,WeightedElementsComplicationDataveColorRampartık deneysel değildir. (Ica9e2)ComplicationPersistencePolicyveComplicationDisplayPolicyartık T API'leri olarak doğru şekilde işaretleniyor. (I31d88)- Kullanımdan kaldırılan
ComplicationSlotOverlayoluşturucusu artıkDeprecationLevel.WARNINGiçeriyor ve bu sayede Java'dan tekrar çağrılabiliyor. (Ib308c) ComplicationRequestListener,CanvasComplication,ComplicationTapFilterveInteractiveWatchFaceClientile ilgili bazı Java uyumluluğu sorunlarını@JvmDefaultWithCompatibility(Id94fc) ile açıklama ekleyerek düzelttik.- Deneysel
ProtoLayoutComplicationDataveListComplicationDataözelliklerini kaldırdık. Bunlarla ilgili geliştirici hikayesi net değildi. Gelecekte tekrar değerlendirmeyi umuyoruz. (I9df05) ValueType,RangedValueComplicationDatakartına yeniden eklendi.WeightedElementsComplicationDataartık arka plan rengini destekliyor.DiscreteRangedValueComplicationDataişlevleriWeightedElementsComplicationDataişlevlerinin bir alt kümesi olduğundanDiscreteRangedValueComplicationDatakaldırıldı. (I6446c)
Hata Düzeltmeleri
- Eşittir işareti ve karma koduna
isForScreenShotsimgesini ekleyin.onRenderParametersChangedözelliğinin doğru birisForScreenshotdeğeri (I04a41) aldığından emin olun. - Başsız istemcilerdeki
WatchFaceControlServicesızıntıları düzeltildi. (e90e00)
Sürüm 1.2.0-alpha03
5 Ekim 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03 iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Yeni özellikler eklemedik ancak kadran düzenleyicisiyle ilgili birkaç hatayı düzelttik.
API Değişiklikleri
rootUserStyleSettingsdeneysel olmaktan çıktığı içinUserStyleSchema.userStyleSettingsdesteği sonlandırıldı (Ie96e3)rootUserStyleSettingsöğesini deneysel (I8d6b3) bölümünden taşımaWatchFaceColors, tüm sistemler tarafından desteklenmediği için (I6d75d) deneysel olarak işaretlendi.DisconnectReasonsile çalışması içinIntDeföğesini herkese açık API'de kullanıma sunun. (I791f8)
Hata Düzeltmeleri
SysUIpili biterse saatteki açık düzenleyiciyi kapatın.SysUIkapanırsa ve kol saati kadranı düzenleyicisi kapanmazsa sistem, kullanıcı stili değişikliklerini kalıcı hale getirmek içinSysUI'ya bağlı olduğundan kol saati kadranı tutarsız bir durumda kalabilir.(ba762aComplicationDataSourceInfoRetriever'da, Kotlin coroutine devamlılığının GC kökü olarak hareket ettiği 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 iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
Bazı saat yüzlerinin
UserStyledışında, görsel olarak etkileyen yapılandırmaları vardır (ör. arka plan fotoğrafı seçme). Kadranın güncellenmiş bir önizleme resmi istemesine olanak tanıyanRenderer.sendPreviewImageNeedsUpdateRequestişlevini ekledik. Bu özelliğin çalışması için sistemin güncellenmesi gerektiğini unutmayın.Ayrıca, renk paletini buna göre seçebilecek olan sisteme renklerini göstermek için saat yüzleri için bir API ekledik. Bu özelliğin, sonraki bir yamada deneysel hale getirildiğini unutmayın.
Neredeyse her tür
ComplicationDataartıkSmallImages'ı destekliyor.
API Değişiklikleri
- Duvar kağıdı yöneticisi bazen bir motordan ayrılıp başka bir motor oluşturabilir. Bir
DisconnectReasonint tanımı ekledik veClientDisconnectListener'yiDisconnectReasoniçeren yeni bir yöntemle genişlettik. Bu sayede işleyici, motorun ayrılmasını gözlemleyebilir. (I45cce) ComplicationSlotOverlayoluşturucusuna (I157e8) iki isteğe bağlı parametre (nameResourceIdvescreenReaderResourceId) eklendi.getOrCreateInteractiveWatchFaceClientilePreviewImageUpdateRequestedListeneryeni aşırı yüklemesi için guava sarmalayıcı ekledik. (Ic31f0)Renderer.sendPreviewImageNeedsUpdateRequestöğesini ekledik.Bu öğe,UserStyleSchemadışında durumu olan ve görünümünü etkileyen kadranlar için kullanışlıdır (ör. seçilebilir arka plan resmi olan bir kadran). Bu istekleri gözlemlemek için istemci tarafındaPreviewImageUpdateRequestedListener,getOrCreateInteractiveWatchFaceClient'ye isteğe bağlı bir parametre olarak eklendi. (Iff44a)WatchFaceColorsözelliğini kullanıma sunmak için API'yi basitleştirdik. Artık saat kadranının ayarlayabileceği, Renderer üzerindewatchFaceColorsadlı basit bir özellik var. Bu özellik, stil değişikliklerine yanıt olarak gerektiği şekilde güncellenmelidir. Renk değişikliklerini gözlemlemek içinWallpaperManageryerineInteractiveWatchFaceClient'yeOnWatchFaceColorsListenerekledik. (I490bc)- En belirgin üç kadran rengini içeren bir
WatchFaceColorssınıfı ekledik ve Renderer'awatchfaceColorsilenotifyWatchFaceColorsChangedaçık yöntemlerini ekledik. Bu yöntemler, sisteminWallpaperManager.getWallpaperColorsaracılığıyla kadranın renklerini almasına olanak tanır. (I3d611) ShortTextComplicationData,RangedValueComplicationData,NoPermissionComplicationData(ve deneyselDiscreteRangedValueComplicationData,GoalProgressComplicationDataveWeightedElementsComplicationData) artıkSmallImages'ı destekliyor. Bir saat yüzü, komplikasyonu birden fazla renkle oluşturmayı tercih ederse artık tek renkli bir resim kullanmak zorunda kalmak yerine çok renkli birSmallImagekullanabilir. (I257df)PreviewImageUpdateRequestedListeneröğesiniConsumer<>olarak yeniden düzenleyin (Ia875d)- Özel Tek Soyut Yöntem (SAM) türü
OnWatchfaceColorsListener, genel Java SAM türü (Tüketici) ile değiştirildi (I0c489). PreviewImageUpdateRequestedListenerbelirtilmeyen eskigetOrCreateInteractiveWatchFaceClientvelistenableGetOrCreateInteractiveWatchFaceClientyöntemlerinin desteğini sonlandırdık. (Iec502)
Hata Düzeltmeleri
DisconnectReason.BINDER_DIED,DisconnectReason.ENGINE_DIEDolarak yeniden adlandırıldı. (I4eb0e)
Sürüm 1.2.0-alpha01
10 Ağustos 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01 iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Çeşitli yeni komplikasyon biçimleri için deneysel destek ekledik. Bu alan aktif olarak geliştirilmektedir. Bu yeni biçimler, haber verilmeksizin değiştirilebilir ve şu anda
CanvasComplicationDrawabletarafından oluşturucu desteği sunulmamaktadır. - Ayrıca, küçük komplikasyonlara dokunmayı kolaylaştıran isteğe bağlı kenar boşlukları da ekledik.
API Değişiklikleri
- Deneysel
BoundingArcsı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. Kodda veya XML aracılığıyla belirtilmediği sürece
ComplciationSlotssıfır boyutlu kenar boşluklarına sahiptir. (I14089) getComplicationSlotInflationFactory(CurrentUserStyleRepository)imzasını, null olmayan bir fabrika örneği döndürecek şekilde değiştirdi. Daha önce null döndürmek bir hataydı. Bu değişiklik yalnızca API sözleşmesini daha net hale getiriyor. (I0fcc0)createComplicationSlotsManagerile tutarlı olması içinWatchFaceService.getComplicationSlotInflationFactoryyönteminecurrentUserStyleRepositorybağımsız değişkeni eklendi. (I2ddd2)UserStyleFlavors, deneysel özellik olmaktan çıktı. (I69cdc)ValueTypedeneysel özelliğiniRangedValueComplicationDataöğesinden kaldırdık ve bunun yerine, tam sayı aralığı ve değeri hariçRangedValueComplicationDataöğesine benzeyen deneyselDiscreteRangedValueComplicationDataözelliğini kullanıma sunduk. Ayrıca,GoalProgressComplicationDatadeneysel özelliğini de kullanıma sunduk. Bu özellik,RangedValueComplicationDataözelliğine benzer ancak minimum değerin örtülü olarak sıfır olduğu ve değerintargetValuedeğerinden büyük olmasına izin verildiği bir hedefe yönelik ilerleme için kullanılır. TümRangedValuevaryantları için monochromeImage, text veya title özelliklerinden en az biri belirtilmelidir. (I9590c)- Sistem yazılımının kullanım alanı olmadığı için
boundsWithMarginsadlı özelliğiComplicationSlotState'den kaldırdık. (I42e26) WeightedElementsComplicationDataiçin deneysel destek ekledik. Bu özellik, isteğe bağlı metin/başlık/resim ile birlikte bir dizi öğeden (ağırlık ve renk çiftleri) oluşur. Bunlar, genellikle komplikasyonda etiket oluşturmak için yer olmadığından, bağlam göz önünde bulundurulduğunda renklerin anlamlı olması gereken bir pasta grafiği olarak gösterilebilir. (I87eea)RangedValueComplicationDataveGoalProgressComplicationDatatarafından isteğe bağlı olarak kullanılan deneyselColorRampsözelliği, artık yedi renge kadar bir sıra ve renklerin sorunsuz bir şekilde ara renk oluşturulup oluşturulmayacağını veya eşit boyutlu katı renk adımlarının oluşturulup oluşturulmayacağını belirten bir işaretlemenizi sağlar. (I9f5bf)RangedValueComplicationData.drawSegmented,valueTypeolarak değiştirildi. Bu, aralıklı değere anlamsal anlam sağlayan ve stil oluşturmayı etkilemek için komplikasyon oluşturucu tarafından kullanılabilen karşılık gelenValueType IntDefile birlikte bir tamsayıdır. (I0616b)- İsteğe bağlı
ColorRangesileRangedValueComplicationDataarasında deneysel destek ekledik. Normalde özellikler, saat yüzünün seçtiği renklerde oluşturulur ancak bazen renkleri ayarlamak için en iyi yerComplicationDataSourceolur (ör. belirli bir anlamsal anlamları olduğunda). Örneğin, sıcaklık için kırmızıdan maviye. (I5153a) RangedValueComplicationData'ye deneysel birdrawSegmentedipucu ekledik. Bu, oluşturuculara aralıklı değer göstergesini segmentlerle çizmesini bildirir. Burada 1 segment = 1 birimdir. (I7d7c1)
Hata Düzeltmeleri
ComplicationSlotBoundsdeğerini önceden tanımlanmış bir ekran koordinat sistemine göre tanımlama özelliği eklendi. (I0985d)
Sürüm 1.1
Sürüm 1.1.1
10 Ağustos 2022
androidx.wear.watchface:watchface-*:1.1.1 iptal edilir. 1.1.1 sürümü şu commit'leri içerir.
- Bu sürüm, hata düzeltmelerini içerir. 1.1.0 sürümünü kullananların yükseltme yapması önemle tavsiye edilir.
Hata Düzeltmeleri
Kadran başlatma işlemi eşzamansızdır. Kadran hazır olmadan önce bir özellik alınırsa bu özellik
pendingInitialComplicationslistesine eklenir ve daha sonra uygulanır. MaalesefpendingInitialComplicationsçok erken uygulandı. Bu nedenle, kadran başlatılırken komplikasyonlarınpendingInitialComplicationsüzerine yerleştirilip yok sayıldığı bir zaman aralığı oluştu. Bu sorun düzeltildi. Ayrıca bu yama,ComplicationRendereröğesinin yer tutucuları yanlışlıkla eşzamansız olarak yüklemeye çalıştığı ve bu işlemin başarısız olarak derleme grafiğinin hiçbir zaman güncellenmemesine yol açtığı bir hatayı düzeltir. Son olarak bu yama, birden fazlapendingInitialComplicationsöğesinin birleştirilmesi gereken, umarız teorik bir hatayı düzeltir. (0d03ba3)InteractiveInstanceManageriçindegetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance'nin kilidi gereğinden uzun süre tuttuğu durumlarda olası kilitlenme sorununu düzeltir. Genellikleengine.setUserStyleişleminin hızlı olmasını bekleriz ancak herhangi bir nedenle bu işlem hızlı olmazsa kilitlenme/ANR ile karşılaşabiliriz. Bu yama, gereksiz işleri kilidin dışına taşıyarak kilitlenme olasılığını ortadan kaldırır.(5a2adca)WatchFaceService'ı koruyan çeşitli sorunlar düzeltildi. WakeLock bazenWatchFaceServiceöğesini koruyabilir.release()çağrısı eklemek bu sorunu düzeltir. AyrıcaStateFlows,WatchFaceServiceöğesini koruyabilir. Temel alınanCoroutineScopesdüzeltmelerini iptal etmek bu sorunu çözer.(fd48138)awaitDeferredWatchFace* öğesine zaman aşımları ekleyin vewatchfaceOverlayStyleNullPointerExceptionsorununu düzeltin. Normal şartlarda, yeni yükleme ve CPU yükünün yüksek olduğuDirectBootsenaryoları da dahil olmak üzere bu işlem zaman aşımına uğramaz. Ayrıca,getWatchfaceOverlayStyleişleviclose()işlevinden sonra çağrıldığında oluşan NullPointerException hatası da düzeltildi.(a4c3a5a)
Sürüm 1.1.0
15 Haziran 2022
androidx.wear.watchface:watchface-*:1.1.0 iptal edilir. 1.1.0 sürümü şu commit'leri içerir.
1.0.0 sürümünden beri yapılan önemli değişiklikler
İyileştirilmiş Düzenleme:
- Hiyerarşik şemalar için destek ekledik. Bu sayede, stil hiyerarşisinin editör kullanıcı arayüzleri tarafından yazılmasına olanak tanınıyor. Artık saat yüzü ve tamamlayıcı düzenleyicilerde kullanılacak ayrı simgeler belirtebilirsiniz.
- Kadranın birden fazla ö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 editörlerde kullanılmak üzere
ComplicationSlotsiçin insan tarafından okunabilir adlar belirtebilirsiniz. - Stil "çeşitleri" için deneysel destek. Bu stiller, yardımcı düzenleyicide görünür.
- Düzenleme sırasında iki saat yüzü örneği yüklendiğinde, saat yüzü örneklerinin kaynakları paylaşması artık mümkün. Bu sayede bellek tasarrufu sağlanıyor.
- Kadran düzenleyicide bir komplikasyon seçerken mevcut sağlayıcı artık önceden seçiliyor.
Geliştirilmiş komplikasyonlar:
- Artık birincil ve ikincil veri kaynakları için
ComplicationTypebelirtebilirsiniz. Böylece geliştiriciler, kutudan çıkarma deneyimi konusunda daha fazla esnekliğe sahip olur. ComplicationDataTimelineeklendi. Bu özellik, saat yüzüne teslim edilecek, önbelleğe alınabilecek ve otomatik olarak güncellenebilecek, zamana bağlı verilerin sırasını sağlar. Örneğin, günün farklı saatlerindeki hava durumu tahmini veya yaklaşan birden fazla takvim etkinliği.- Komplikasyon sağlayıcının
ComponentName,ComplicationDatabölümünde yer alır. - Özellikler artık önbelleğe alınıyor. Bu sayede saat yüzleri arasında geçiş yaparken daha iyi bir deneyim elde ediliyor.
Diğer değişiklikler:
UserStyleSchemaveComplicationSlotsartık XML'de tanımlanabilir. Bu, saat yüzü oluşturmayı kolaylaştırır 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 iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kadran XML desteğinde kullanılabilirlik açısından bazı ince ayarlar yaptık. Böylece
ComplicationSlotBoundsbelirtmek kolaylaştı ve referanslar desteklenmeye başladı. Kenar komplikasyonuBoundingArcile deneme yapmaya devam ediliyor ve o sırada kullanılması önerilmese dedrawHighlight'ye aktarılıyor.
API Değişiklikleri
drawHighlightparametresini kabul eden deneysel birBoundingArcaşırı yüklemesi ekledik. (I705f8)- Saat yüzü XML'si artık kaynak referanslarını destekliyor. Hem XML'de hem de kodunuzda aynı sabitleri kullanmanıza olanak tanır. (I3ef61)
center_x,center_y,size_x,size_yformundaComplicationSlotBoundstanımlama özelliği eklendi. Artık kaynak referansları kullanılarak farklı birimler (ör. dp) de kullanılabilir. (Iace98)
Hata Düzeltmeleri
- Yanlış bağlamda görev çalıştıran
runBlockingWithTracingdüzeltildi.(4f595fe) BaseEditorSession.closeeşzamanlı hale getirin.BaseEditorSession.close'nın eşzamansız olmasıyla ilgili sorun,ComplicationDataSourceInfoRetriever'ı çok geç yayınlamamız ve bunun sonucunda logcat'te uyarı spam'i oluşmasıdır. Bu durum muhtemelen zararsızdır 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 iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Yeni
ComplicationDatatürleri için deneysel destek ekledik. Bu türler henüz kullanıma hazır değil ancak bu alanı takip etmeye devam edin.
API Değişiklikleri
- Bir kenar komplikasyonu yuvasının geometrisini açıklayan deneysel bir sınıf olan
BoundingArc'ı ekledik. Bu,ComplicationSlot'ya eklenmiş veComplicationSlotStateileWatchFaceMetadataClient'ye aktarılmıştır. (I61a40) UserStyleSettingXML'de ayarları devralma özelliği eklendi. Bu sayede ayrıntı düzeyini azaltabilir ve ayarları saat yüzleri arasında paylaşabilirsiniz. (Ief841)ComplicationDataiçin iki yeni deneysel tür ekledik:ListComplicationDataveProtoLayoutComplicationData. Şu anda bu türlerin her ikisi için de oluşturma desteği yoktur ve WearOS,ComplicationDataSource'smanifestine eklenen bu türleri şu anda tanımamaktadır. (I1811c)
Hata Düzeltmeleri
TimeLineEntrytürünün serileştirilmesi düzeltildi.TimeLineEntrytü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 mevcut olmayan gerekli alanlara erişildiğinde NPE'lere yol açıyordu. (55ffdf5)setComplicationDatazaman çizelgesi alanlarının bırakılmasına neden olan hata düzeltildi(fb392f5)- Çok nadir durumlarda
runBlockingWithTracingöğesinin NPE'ye (NullPointerException) yol açtığı hata düzeltildi (12ca62e). - Bazen komplikasyon alınırken
ClassNotFoundException: android.support.wearable.complications.ComplicationTexthatasıyla karşılaşılmasına neden olan hata düzeltildi.(217942d9) GlesRenderer.backgroundThreadInitInternaliçinde, yalnızcaEGL14.eglCreateContextçağrıldığındaonBackgroundThreadGlContextCreated'nin çağrılmasına neden olan hata düzeltildi.verticalFlipnedeniyle ekran görüntüsünde görsel aksaklığa yol açan başka bir hata düzeltildi.(c674ad2)WatchFaceServiceXML sürüm kontrolü düzeltildi. Yanlış paketten yükleniyordu.(dfa06f3)- Yer tutucu tel biçimi artık bir iç paketi kullanıyor. Yer tutucuların, gizli inner a.s.w.c.ComplicationData'yı kullanan mevcut saat yüzlerini bozmasını istemiyoruz. Daha önce,
NoDataComplicationverisinin kablo biçimi, yer tutucuyu normal alanlarda saklıyordu (eski saat yüzleri, yer tutucu dizesini amaçlanmadığı şekilde oluşturduğundan bu durum sorunluydu). 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 iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Artık
WatchFaceMetadataClientyöntemleri (getUserStyleSchema,getComplicationSlotMetadataMap,getUserStyleFlavors) veHeadlessWatchFaceClient.getUserStyleFlavors,WatchFaceExceptionyerine işaretlenmemiş RuntimeException oluşturuyor. (I0718a) WatchFaceMetadataClient.WatchFaceException, yeniden kullanılabilmesi için sınıftan çıkarıldı. (I4e869)
Hata Düzeltmeleri
WatchFaceMetadataClient, kısmiComplicationSlotBoundsgönderildiğinde artık kilitlenmeyecek.(Iaafd)
Sürüm 1.1.0-alpha05
6 Nisan 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05 iptal edilir. 1.1.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
- Artık
ComplicationDatahangi veri kaynağının gönderdiğiniComplicationData.dataSourceinceleyerek anlayabilirsiniz. Bazı saat kadranları, komplikasyon ekranını özelleştirmek için bu bilgiyi kullanabilir. (I44a73)
API Değişiklikleri
Renderer.CanvasRendererveRenderer.GlesRendereryöntemlerinin desteği sonlandırıldı. Bu yöntemlerin yerine, oluşturma yöntemlerine iletilenSharedAssetsöğelerini destekleyenRenderer.CanvasRenderer2veRenderer.GlesRenderer2yöntemleri kullanılacak. Java birlikte çalışabilirliği içinListenableCanvasRenderer2veListenableGlesRenderer2'ı kullanıma sunduk. (I31ffa)@WatchFaceFlavorsExperimentalStillerin tanımlanması özelliği eklendi. Bu özellik, önceden yapılandırılmış stil sahibi kadranların listesini içerir (I04dd0).Renderer.sharedAssetsartık bir StateFlow ve kullanılmayanRenderer.SharedAssetsFactory(I12ac5) kaldırıldı.UserStyleSchema.userStyleSettingsartık kullanımdan kaldırılmıyor (Iba7e3)HeadlessWatchFaceClient.getUserStyleSchemaDigestHashişlevini ekledik. Bu işlev, özet karması hesaplanmadan önce şemanın AIDL üzerinden iletilmesinin nispeten düşük ek yükünden kaçınmak içinHeadlessWatchFaceClientkullanılmasına olanak tanır. (I33597)isUserStyleSchemaStatic,WatchFaceMetadataClient'ye eklendi. Bu, yalnızca kadran APK'sı güncellenmediği süreceUserStyleSchema'nin değişmeyeceğine güvenilebiliyorsa geçerlidir. (I45a3f)- Şemanın özet karmasını hesaplayan
getDigestHashişleviniUserStyleSchemaişlevine ekledik. Bu,UserStyleSchemadeğ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_SUPPORTEDolarak yeniden adlandırıldı (I9ba5d)UserStyleSetting.OnWatchEditorData,UserStyleSetting.WatchFaceEditorDataolarak yeniden adlandırıldı. Bu klasörde, yalnızca saat yüzü düzenleyicisi tarafından kullanılan veriler bulunur. (If3afb)
Sürüm 1.1.0-alpha04
9 Mart 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04 iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Güncel
ComplicationDataher zaman kullanılamayabilir (ör.süresi dolmuş ComplicationData önbelleği). Bu nedenle,NoDataComplication'yi isteğe bağlı bir yer tutucu ComplicationData ile genişlettik ve yalnızcaNoDataComplicationDatayer tutucusu bağlamında kullanılmasına izin verilenComplicationText.PLACEHOLDER,MonochromaticImage.PLACEHOLDER,SmallImage.PLACEHOLDER,PhotoImage.PLACEHOLDERöğelerini ekledik. Bu yer tutucular seçilirse gri kutular/yaylarla oluşturulmaları önerilir. (I6285d) ComplicationData.getNextChangeInstantsimgesini ekledik. Bu simge, komplikasyonun herhangi bir alanının değişebileceği referans An'dan sonraki An'ı gösterir. Bu, özellik (komplikasyon) güncellemeleri için kareleri planlamak üzere dahili olarak kullanılır. Örneğin, bir kadran normalde dakikada bir kez güncelleniyorsa kronometre komplikasyonunun ayarlanması, kadranda saniyede bir kez güncelleme yapılmasına neden olur. (I7ceb2)EditorSession.watchFaceIdartık tüm API düzeylerinde kullanılabilir. Ayrıca değeri artık her zamanWatchState.watchFaceInstanceIdile tutarlı olacaktır. (I323b9)- Temel sorun çerçevede düzeltildiğinden
getPendingIntentForTouchEventAPI'si artık gerekli değil. Bu nedenle, ilgili tüm API'ler kaldırıldı. Ana sayfa düğmesine kısa süre önce basılmış olsa bilePendingIntentstetiklenmesi için saat yüzlerinin özel bir işlem yapması gerekmez. (I1f2e8) RendererParameters.isForScreenShotişlevini ekledik. Bu işlev, oluşturma işlemi ekran görüntüsü içinse doğru (true) değerini döndürür. Animasyon içeren bazı saat yüzlerinin, en iyi sonuçları elde etmek için gerekli ayarlamaları yapabilmesi için bu bilgiyi bilmesi gerekir. (I96d99)- Ne gibi bir sorun yaşandığına dair bağlam bilgisi vermek için
WatchFaceExceptionReasonifadesiniWatchFaceExceptionifadesine ekledik. (I01d15) ComplicationDataSourceService.onImmediateComplicationRequestkaldırıldı. Bunun yerine, sağlayıcının hızlı yanıt vermesi gerektiğini (ideal olarak < 100 ms içinde yanıt vermesi) belirtmek içinComplicationRequest.immediateResponseRequiredeklendi. Bu işlevin, ayrıcalıklıcom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATEizniyle korunduğunu unutmayın. (Ie6b23)- Çekirdek ve appcompat'teki nullability, Tiramisu DP2 ile eşleşecek şekilde güncellendi (I0cbb7).
Hata Düzeltmeleri
- Şema doğrulama başarısız olursa artık saat yüzü uygulaması bir istisna ile kilitleniyor (Ia400f)
Sürüm 1.1.0-alpha03
9 Şubat 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03 iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Hiyerarşik stil şemaları için deneysel destek ekledik.
androidx.wear.watchface.style.UserStyleSetting.Option'ya, başlangıçta yalnızcaListOptiontarafından kullanılan childSettings adlı yeni bir özellik ekledik. Bu sayede, düzenleyici kullanıcı arayüzleri tarafından kullanılmak üzere bir stil hiyerarşisi tanımlanabilir. 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.OverlayStyleiznini ekledik. (I8520d) clearWithBackgroundTintBeforeRenderingHighlightLayeriçin yeni bir isteğe bağlı oluşturucu parametresiCanvasRenderer(varsayılan değer false'tur) kullanıma sunuldu. Bu parametre true olarak ayarlanırsa tuval, arka plan renk tonuyla temizlenir. (Ie01e5)- Komplikasyon veri kaynaklarının herhangi bir yapılandırma olmadan varsayılan değer sağlayabileceklerini belirtmelerine olanak tanıyan
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDmeta veri anahtarı eklendi (Icc0d4). - Kadran düzenlenirken hem etkileşimli hem de başsız bir örneğin olması yaygın bir durumdur. Bellekten tasarruf etmenize yardımcı olmak için
Renderer.SharedAssetsözelliğini kullanıma sunduk.Bu özellik, saat yüzü oluşturucunun örnekler arasında değişmez verileri (ör. dokular ve gölgelendiriciler) paylaşmasına olanak tanır.GlesRenderer.setEglConfigveGlesRenderer.setEglDisplaykullanımdan kaldırıldı. Bu parametrelerin ayarlanabilir olması hiçbir zaman amaçlanmadı ve ayarlanması tanımlanmamış davranışlara yol açtı. (I0d9e7) setNameResourceIdvesetScreenReaderNameResourceId(dize kaynaklarına referans veren) öğeleriniComplicationSlot.Builderveandroidx.wear.watchface.client.ComplicationSlotState'deki ilgili alıcılara ekledik. Bu sayede sistem, düzenleyicilerde ve ekran okuyucularda kullanılmak üzere ComplicationSlot'ların adlarını getirebilir. (If6c6a)WatchfaceMetadataClient.getUserStyleSchemavegetComplicationSlotMetadataMapartıkRemoteExceptionyerineWatchFaceExceptionatıyor. (I86f11)onSynchronousComplicationRequestveComplicationDataSourceService'deki ilgili işlevleronImmediateComplicationRequestvb. olarak yeniden adlandırıldı. (I87ba0)- Saat yüzü düzenleyiciler, yardımcı düzenleyicilere kıyasla çok daha az ekran alanına sahiptir. Bu nedenle, saat yüzü düzenleyicilerde farklı simgelerin desteklenmesi mantıklıdır. Bu yama, tüm UserStyleSettings'e ve uygun olan yerlerde Option sınıflarına
OnWatchEditorData(şu anda yalnızca bir simge içerir) ekler. (If1886) - Daha iyi Java birlikte çalışabilirliği için ListenableGlesRenderer'ın oluşturucusuna
@JvmOverloadsekledik. (I2974a)
Hata Düzeltmeleri
ListenableGlesRendereroluşturucusu artık doğru şekilde@Throws(GlesException::class)olarak işaretleniyor ve bu sınıfı Java'da genişletmek mümkün. (Iac6d0)PhotoImageComplicationDatatapAction'ın doğru şekilde işlenmemesiyle ilgili hata düzeltildi (I1cc30).
Sürüm 1.1.0-alpha02
12 Ocak 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02 iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Hata ayıklama ve test işlemlerine yardımcı olmak için
ComplicationDatave ilgili alt sınıflar artık geçersiz kılınmış hashcode, equals ve toString yöntemlerine sahip. Bu sayede bu sınıflarla çalışmak daha kolay.
API Değişiklikleri
WatchfaceMetadataClientyöntemleri uygun yerlerde tekrarRemoteExceptionsoluşturarak istemci kodunun saat yüzündeki hataları yakalamasını kolaylaştırır. (I78785)ComplicationDatave alt sınıflarda artık hashcode, equals ve toString var. (I24bc6)
Sürüm 1.1.0-alpha01
15 Aralık 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
UserStyleSchemaveComplicationSlotsartık XML'de tanımlanabilir. Bu, kadran oluşturmayı kolaylaştırır. Ayrıca, meta verileri almak için hizmete bağlanması gerekmediğindenWatchFaceMetadataClientsorguları daha hızlıdır.WatchFaceMetadataClientveListenableWatchFaceMetadataClientartık deneysel değildir ve kararlı API'nin bir parçası olacaktır. Sistem, her biri kullanıcı tarafından tanımlanan farklı stil seçeneklerine sahip birden fazla kadran örneğini isteğe bağlı olarak destekleyebilir. Bunlar, kadran seçicide görünür. Bu özelliği etkinleştirmek için bir saat yüzünü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
UserStyleiçinde yakalanmayan durumlar vardır. Bu durumu ve birden fazla örneği desteklemek için kadranın örnek kimliği artıkWatchState.watchFaceInstanceIdüzerinden kullanılabilir.ComplicationData, artık yüklenir yüklenmez komplikasyonların gösterilmesine olanak tanımak için önbelleğe alınıyor. BazenComplicationData, sistem tarafından bellekte önbelleğe alınır, bazen de saat yüzü kitaplıkları tarafından serileştirilir. Serileştirme işlemi yapıldığında ilişkili tüm tapAction'lar kaybolur.Bu durumdaComplicationData.tapActionLostDueToSerialization,truedeğerini döndürür ve dokunulamayacağını belirtmek için komplikasyon, saat yüzünde farklı şekilde (ör. gri veya yarı şeffaf) oluşturulur. Sistem, en kısa süredetapActionile güncellenmişComplicationDatagönderecektir.Bazı
ComplicationData, uzun süre önbelleğe alınmamalıdır. Bunu desteklemek için daha genel bir özellik olanComplicationDataTimeline'i ekledik. Bu, saat yüzüne teslim edilecek, zaman sınırlamalıComplicationDatadizisi sağlamak için kullanılabilir. Bu dizi, önbelleğe alınabilir ve otomatik olarak güncellenebilir. Örneğin, günün farklı saatlerindeki hava durumu tahmini veya yaklaşan birden fazla takvim etkinliği.ComplicationRequestListener, bu verileri döndürmek için kullanabileceğiniz yeni bir yöntemonComplicationDataTimelineile genişletildi.DefaultComplicationDataSourcePolicy, birincil ve ikincil veri kaynakları içinComplicationTypebelirtebileceğiniz şekilde genişletildi.Saat yüzü görünür ve ortam modu etkin değilken saniyede bir kez olacak şekilde, özelliklerin normalden daha yüksek sıklıkta güncellendiği senkron özellik sağlayıcılar için destek ekledik. Not: Eşzamanlı komplikasyon sağlayıcılar, bellek baskısı endişeleri nedeniyle sınırlı kullanıma sahip olabilir.
Temel sorunu (ana sayfa düğmesine basıldıktan sonra 5 saniye boyunca saat yüzünün etkinlik başlatması mümkün değildir) çerçevede çözdüğümüz için
PendingIntentTapListenerdeğişikliklerinin geri alınması muhtemeldir.
API Değişiklikleri
ComplicationData.isCached, komplikasyon yuvasına dokunulamayacağını belirtmek için farklı şekilde oluşturulup oluşturulmayacağını belirlerken daha kullanışlı olantapActionLostDueToSerializationolarak değiştirildi. (I6de2f)wear-complication-data-sourcelistesineComplicationDataTimelineeklendi. Bu, saat yüzüne teslim edilecek, zaman sınırlamalıComplicationDatadizisi sağlamak için kullanılabilir. Bu dizi, önbelleğe alınabilir ve otomatik olarak güncellenebilir. Örneğin, günün farklı saatlerindeki hava durumu tahmini veya yaklaşan birden fazla takvim etkinliği.ComplicationRequestListener, bu verileri döndürmek için kullanabileceğiniz yeni bir yöntemonComplicationDataTimelineile genişletildi. Veri kaynağı hizmetlerini askıya almak için yeni bir Kotlin sarmalayıcısıSuspendingTimelineComplicationDataSourceServiceeklendi. (Idecdc)PendingIntentTapListenerveWatchFaceControlClient.getPendingIntentForTouchEventeklendi. Bu, dokunma işlemlerine yanıt olarak amaç başlatması gereken saat yüzlerinin, ana sayfa düğmesine basıldıktan sonra 5 saniye boyunca yeni etkinliklerin başlatılmasını engelleyen çerçeve sorununu çözmesine yardımcı olabilir. (I98074)- Kadran başına
ComplicationDataönbellek özelliği eklendi. Bunun amacı, sistemin güncelleme fırsatı bulana kadar kadranın yüklenirken bilinen son komplikasyon verisi değerlerini göstermesine olanak tanımaktır. OEM'ler için tasarlanmış yeni bir API yöntemiWatchFaceControlClient.hasComplicationCachekullanıma sunuldu. Bu durum, sistemin saat yüzüne özellik gönderme stratejisini etkileyebilir. AyrıcaComplicationData,isCachedözelliğine sahip vetapActionönbelleğe alınamadığı ve önbelleğe alınmış bir komplikasyondanullolacağı için önbelleğe alınmış komplikasyonların farklı şekilde oluşturulması önerilir. (I404b0) - Saat yüzünün örnek kimliği artık
WatchState.watchFaceInstanceIdüzerinden kullanılabilir. Çoğu saat yüzünün bunu kullanması gerekmez. Ancak şemada depolanmayan saat yüzü başına bir durum varsa bu, saat yüzü örneğini tanımlamak için kullanılacak anahtardır. Bu özelliği desteklemek için artıkWatchFaceControlClient.createHeadlessWatchFaceClient'ı ararken kimlik sağlayabilirsiniz. (I1ff98) - Birincil, ikincil sağlayıcı ve yedek sistem sağlayıcı için varsayılan
ComplicationTypes'ı ayarlama olanağı sunan genişletilmişDefaultComplicationDataSourcePolicyComplicationSlot.defaultDataSourceTypeartık kullanımdan kaldırıldı. (If0ce3) ComplicationSlot.configExtrasartık değiştirilebilir veEditorSession.openComplicationDataSourceChooser()aranmadan önce güncellenebilir. (I6f852)WatchFace.setComplicationDeniedDialogIntentvesetComplicationRationaleDialogIntenteklendi. Bu amaçlar, komplikasyon izinleri istenmeden önce bir gerekçe iletişim kutusu göstermek ve izinler reddedildiğinde 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çılmaz, bu nedenle iletişim kutusu gereklidir). (I3a29c)UserStyleSchemaveComplicationSlotsartık XML'de tanımlanabilir. Bu, hizmete bağlanarak meta verileri alması gerekmediğinden,WatchFaceMetadataClientsorgularını hızlandırır ve saat yüzü oluşturmayı kolaylaştırır. (I85bfa)- Bir istemcinin saat yüzünün
getPendingIntentForTouchEvent'yi destekleyip desteklemediğini belirleyebilmesi içinInteractiveWatchFaceClient.supportsPendingIntentForTouchEventeklendi. (I0b917) WatchFaceMetadataClientveListenableWatchFaceMetadataClientartık deneysel değil. Mümkün olduğunda, saat yüzü için bağlayıcı açmadan saat yüzü meta verilerini verimli bir şekilde almak için kullanılabilir. (Ibb827)- Komplikasyonun normalden daha yüksek bir sıklıkta güncellendiği senkron komplikasyon sağlayıcılar için destek eklendi. Kadran görünür ve ortam modu etkin değilken komplikasyon saniyede bir kez güncellenebilir. Bu özelliği kullanmak için sağlayıcının manifestine yeni bir
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDSmeta veri etiketi eklemesi veonSynchronousComplicationRequestdeğerini geçersiz kılması gerekir. Veri kaynağının yapısına bağlı olarak, komplikasyonun etkileşimli moda girip çıktığı zamanlarda bildirim almak içinonStartSynchronousComplicationRequestsveonStopInteractiveComplicationRequestsdeğerlerini de geçersiz kılması gerekebilir. (I8fe9d)
Sürüm 1.0
Sürüm 1.0.1
9 Şubat 2022
androidx.wear.watchface:watchface-*:1.0.1 iptal edilir. 1.0.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
PhotoImageComplicationDatatapAction'ın doğru şekilde işlenmemesiyle ilgili hata düzeltildi (I1cc30).
Sürüm 1.0.0
1 Aralık 2021
androidx.wear.watchface:watchface-*:1.0.0 iptal edilir. 1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümündeki başlıca özellikler
androidx.wear.watchface paketi, WearOS kadranları geliştirmek için önerilen yeni kitaplıktır. Eski Wearable Support Library'ye kıyasla bir dizi yeni özellik içerir.
- Kullanıcı stili (ör. renk paletini, kol saati kollarının stilini, saat işaretlerinin görünümünü vb. değiştirmek için) doğrudan kitaplık tarafından desteklenir (
androidx.wear.watchface.stylebölümüne bakın). Artık androidx.wear.watchface.editor kullanarak kol saati kadranı düzenleyicisi geliştirmek çok daha kolay. Ayrıca, ek kod yazmanıza gerek kalmadan sistemdeki tamamlayıcı uygulamadan kol saati kadranınızı düzenleyebilirsiniz. - En iyi uygulamalar yerleşiktir. Kitaplık, komplikasyonlar için otomatik olarak ekran okuyucu içerik etiketleri oluşturur (kendi etiketlerinizi de ekleyebilirsiniz). Pil seviyesi düşük olduğunda ve şarj edilmediğinde pil ömrünü iyileştirmek için kare hızı otomatik olarak düşer.
- Özellikle çok sayıda standart kodun kitaplığa taşındığı komplikasyonlar için saat yüzü geliştirmek üzere daha az kod gerekir.
Hata Düzeltmeleri
EditorSession.userStyle.compareAndSetile ilgili sorunu düzeltin (I6f676)- Çok kısa kadran gecikmelerini düzeltme (Iffb97)
- Kullanıcı arayüzü iş parçacığında
InteractiveWatchFaceImpl.onDestroygönderme (I83340) - Yayın alıcılarla ilgili çeşitli sorunlar düzeltildi. (I7d25f)
Sürüm 1.0.0-rc01
3 Kasım 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01 iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
Akış taşımaları nedeniyle bozulan dump() (adb shell dumpsys tarafından çağrılır) düzeltildi. (087cf9e)
writeDirectBootPrefs'in doğru sırada çağrıldığından emin olun. We want writeDirectBootPrefs to always run after initStyleAndComplications or we risk delaying UI thread init.(37650ac)
Renderer.onDestroy'un çağrıldığından emin olun. Oluşturucu oluşturulduğu ancak WF başlatma işlemi tamamlanmadığı ve Engine.onDestroy çağrıldığı senaryoda Renderer.onDestroy'u çağırmamız gerekir. (f9952dc)
isBatteryLowAndNotCharging için optimizasyon/düzeltme. Bu yama, isBatteryLowAndNotCharging'in ilk kurulumunu daha erkene taşıyor. Bu sayede kurulum, createWatchFace ile paralel olarak yapılabilir. Ayrıca artık ACTION_POWER_DISCONNECTED'ı da dinliyoruz. (ddffd80
Kapatıldıktan sonra InteractiveWatchFaceClientImpl.isConnectionAlive değerinin yanlış olması (ab9774e)
Sürüm 1.0.0-beta01
27 Ekim 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.
Sürüm 1.0.0-alpha24
13 Ekim 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha24 iptal edilir. 1.0.0-alpha24 sürümü şu commit'leri içerir.
API Değişiklikleri
androidx.wear.watchface.complicationspaketindeki sınıflar yeni birwear:watchface:watchface-complicationsprojesine taşındı. Bu, yinelenen sınıflarla ilgili hatalar alacağınız için bu kitaplığın yanı sırawear:watchface:watchface-complications-data'nın önceki alfa sürümlerini de ekleyemeyeceğiniz anlamına gelir. (I97195)- Renderer.dump, Renderer.onDump olarak yeniden adlandırıldı ve @UiThread ile açıklama eklendi. (I44845)
InteractiveWatchFaceClient.addWatchFaceReadyListener,addOnWatchFaceReadyListenerolarak,removeWatchFaceReadyListeneriseremoveOnWatchFaceReadyListenerolarak yeniden adlandırıldı. (I48fea)- EditorSession
getComplicationsPreviewDatavegetComplicationsDataSourceInfoartık askıya alma işlevleri değil, değeri başlangıçta null olanStateFlow<>özellikleridir. ListenableEditorSession'dagetListenableComplicationPreviewDatavegetListenableComplicationsProviderInfo, temel sınıftaki yeniStateFlow<>nesneleri lehine kaldırıldı. Java kodundaki değişiklikleri dinlemeniz gerekiyorsaLiveData<>biçimine dönüştürmek içinandroidx.lifecycle.FlowLiveDataConversions.asLiveDatakullanabilirsiniz. (Ic5483)
Sürüm 1.0.0-alpha23
29 Eylül 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23 iptal edilir. 1.0.0-alpha23 sürümü şu commit'leri içerir.
Yeni Özellikler
Saat yüzü kitaplığı artık tek bir kitaplık grubu olduğundan kitaplıklar taşındı. Bu nedenle, gradle içe aktarmalarınızı aşağıdaki gibi güncellemeniz gerekiyor:
| 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.wearWatchface ve komplikasyon kitaplıklarınıandroidx.wear.watchfacekitaplık grubuna taşıyın. (b25f3c0) - Bir istemcinin, kadran düzenleyicinin başsız düzenlemeyi destekleyip desteklemediğini bilmesini sağlamak için EditorRequest.canWatchFaceSupportHeadlessEditing eklendi. asop/1756809'da destek eklendiğinden bu konuda bazı yanlış negatif sonuçlar olabileceğini ancak gelecekteki tüm saat yüzleri için doğru değerin döndürüleceğini unutmayın. (ca55590)
- Renderer artık, ABD kabuğu dumpsys activity hizmeti WatchFaceService tarafından oluşturulan bilgilere özel veriler eklemek için geçersiz kılınabilen bir dump() yöntemine sahip. (95235f9)
- InteractiveWatchFaceClient.addWatchFaceReadyListener artık önce yürütücüyü belirtiyor. (563ac2f)
- StateFlowCompatHelper kaldırıldı. Bunun yerine asLiveData (androidx.lifecycle.asLiveData) kullanılmalıdır. (bd35d3)
- CurrentUserStyleRepository.userStyle artık değiştirilemiyor. (I44889)
- WatchFaceReadyListener, OnWatchFaceReadyListener olarak yeniden adlandırıldı. (Ic12a9)
Hata Düzeltmeleri
- onDestroy'ı çağırmak için InteractiveInstanceManager.deleteInstance. Bu, InteractiveWatchFaceImpl'in çöp toplama işlemine tabi tutulmasını sağlamak için gereklidir.(fce4af8, b/199485839)