Wear kadranı

Wear OS by Google akıllı saatler için uygulama oluşturun.

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.

Yeni sorun oluşturma

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.StaticPreviewDataParser bölümüne bakın.
  • Veri ve saati olabildiğince kısa biçimlendirme desteğiyle ComplicationTextFormatting yardı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.watchfaceColors mü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 ColorUserStyleSetting tanı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 ComplicationDataSourceUpdateRequester ile 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 WearSDK ile 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

  • UserStyleSetting ve UserStyleOption sınıfları artık oluşturuculara sahip. Bu, sınıfları oluşturmak için önerilen yöntemdir. (Iacd03)
  • ComplicationData iç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_EXTRAS izni gerekir. (I4e3b2)
  • Saat yüzleri genellikle kullanıcının ListUserStyle kullanarak renk seçmesine olanak tanır. Her ListOption iç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 yerlere ColorUserStyleSetting ekledik. Bu, çok daha kompakt bir seçenektir. (Ib542e)
  • ColorUserStyleSetting ve ColorOption'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

  • UserStyleSettings ve UserStyleOptions içinde simgelerin geç yüklenmesi için destek eklendi. Bu, kadranların yüklenmesi açısından performans artışı sağlar. (Iaf43d)
  • Yeni Watchface.setUpdateScreenshotOnConfigurationChange aracı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 ayarlayan EditorSession#setOverrideComplications iş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çin toApiComplicationData'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 selectedData karşılaştırması için referans eşitliği kullanıyoruz. (446b00)

API Değişiklikleri

  • GoalProgressComplicationData iç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

  • WatchFaceServices eşzamanlı olarak başlatılabilir ve bu nedenle durumsuz olmalıdır. Bunu desteklemek için StatefulWatchFaceService ekledik. Bu sayede, başlatma sırasında çağrılan tüm geçersiz kılmalara createExtra() tarafından oluşturulan kullanıcı tanımlı bir ek iletilir.
  • GlesRenderer2 artık eglChooseConfig ile sırayla denenecek bir özellik listesi belirtmenize olanak tanıyan bir oluşturucu aşırı yüklemesine sahip.

API Değişiklikleri

  • StatefulWatchFaceService artık getComplicationSlotInflationFactory öğ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, createUserStyleSchema sı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 genellikle WatchFaceServices durumunu 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çin StatefulWatchFaceService ve StatefulWatchFaceRuntimeService işlevlerini kullanıma sunduk. Bu işlevlerde, kullanıcı tanımlı bir tür createExtra() tarafından oluşturulur ve çeşitli oluşturma yöntemlerine parametre olarak iletilir. (If8a99)
  • InteractiveWatchFaceClient'ye getUserStyleFlavors özelliğini ekledik. Bu özellik, öncelikle OEM'lerin ilgisini çekecektir. (I0f5d8)
  • GlesRenderer2 artık eglChooseConfig ile 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_RATE desteği eklenecek. Bu komplikasyonun yalnızca SHORT_TEXT komplikasyonlarını destekleyeceği garanti edilir ancak OEM'ler canlı değer yerine sağlık uygulamalarına kısayol sunmayı tercih edebileceğinden ComplicationSlot'nin SMALL_IMAGE komplikasyonlarını da kabul etmesi önerilir. (I34223)
  • Android U'dan itibaren METADATA_KEY_CONFIG_RESTORE_SUPPORTED özelliğini ekledik. Bu özellik, sistem METADATA_KEY_DATA_SOURCE_CONFIG_ACTION ile 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 olan METADATA_KEY_DATA_SOURCE_CONFIG_ACTION meta 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, RangedValueComplicationData işlevine benzer ancak minimum değerin örtülü olarak sıfır olduğu ve değerin targetValue değ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ı ColorRanges için RangedValueComplicationData desteği eklendi. Normalde özellikler, saat yüzünün seçtiği renklerde oluşturulur ancak bazen renkleri ayarlamak için en iyi yer ComplicationDataSource olur (ör. belirli bir anlamsal anlamları olduğunda). Örneğin, sıcaklık için kırmızıdan maviye.
  • Neredeyse her tür ComplicationData artık SmallImages'ı destekliyor.
  • ComplicationDisplayPolicy ifadesini 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_FACES ile sağlayıcılarının manifest dosyasındaki ComplicationRequest#isForSafeWatchFace meta 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_FACE izniyle 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#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 ö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 WatchFaceRuntimeService ve WatchFaceControlClient.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, TapType veya ComplicationsSlotBoundsType öğ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, WatchFaceTypes içinde WatchFaceType sabitlerini, CanvasTypes içinde CanvasType sabitlerini, TapTypes içinde TapType sabitlerini ve ComplicationsSlotBoundsType içinde ComplicationsSlotBoundsType sabitlerini 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.Builder artık DynamicFloat'ı kabul ediyor ve ComplicationText'ün alt sınıfı olarak yeni bir DynamicComplicationText kullanı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. SensorGateway arayüzü, herkese açık API'den kaldırıldı. (I55b84)
  • StateEntryValue'yı DynamicDataValue olarak yeniden adlandırın ve durum API'lerini DynamicDataKey'yi kullanacak şekilde güncelleyin. (If1c01)
  • Uygulama tarafından gönderilen duruma erişmek için AppDataKey, platform verilerine erişmek için PlatformDataKey, StateStore'da ad alanı desteği ekleyin. (I7985e)
  • enable/disablePlatformSource yöntemleri DynamicTypeEvaluator cihazı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_FACE iznine sahip komplikasyon sağlayıcılar, güvenli saat yüzleri için android.support.wearable.complications.SUPPORTED_TYPES yerine geçen androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES meta 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

  • @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 (I818fe) işlevinden daha fazla istisna oluşturuldu
  • renderWatchFaceToSurface yerine createRemoteWatchFaceView'yi kullanmaya başladık. createRemoteWatchFaceView, SurfaceControlViewHost'un üzerine kurulmuştur ve arayanın, istemci RemoteWatchFaceViewHost#renderWatchFace'yi çağırdığında oluşturulan saat yüzünden bir görünüm yerleştirmesine olanak tanır. (Ib311d)
  • renderWatchFaceToSurface adlı kullanıcıyı InteractiveWatchFaceClient, HeadlessWatchFaceClient ve EditorSession listelerine ekledik. Bu yöntem genellikle bit eşleme olarak oluşturmaktan daha iyi performans gösterir. (Ieacad)
  • ObservableStateStore, StateStore olarak yeniden adlandırıldı. (Ieb0e2)
  • DynamicTypeEvaluator.Builder yerine oluşturucu bağımsız değişkenleri eklendi. Bu sayede, artık varsayılan olarak boş bir mağazaya ayarlanmış olan ObservableStateStore dahil olmak üzere daha fazla isteğe bağlı bağımsız değişken kullanılabiliyor. (I6f832)
  • DynamicTypeEvaluator içindeki parametrelerin sırası yeniden düzenlendi. (Ic1ba4)
  • Executor, DynamicTypeEvaluator.bind yöntemlerine eklendi. (I346ab)
  • Dinamik tür bağlandıktan sonra değerlendirmeyi tetiklemek için BoundDynamicType öğesine startEvaluation yöntemi eklendi. (I19908)
  • Ayrıcalıklı com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE komplikasyon sağlayıcılar, güvenli saat yüzleri için android.support.wearable.complications.SUPPORTED_TYPES değerini geçersiz kılan androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES meta verilerini kaydedebilir. (Id1c73)
  • CustomValueUserStyleSettings2 hizmetinin adını LargeCustomValueUserStyleSettings olarak değiştirdik. (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 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_FACES ile sağlayıcılarının manifest dosyasındaki ComplicationRequest#isForSafeWatchFace meta verilerinde tanımlanan listedeki bir saat yüzünden komplikasyon isteği gelip gelmediğini belirleyebilecek. Sağlayıcının, TargetWatchFaceSafety.UNKNOWN dışındaki öğeleri alabilmesi için com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE izni gerekir.

  • Ayrıca Android T'den CustomValueUserStyleSetting2 da kullanılabilir.Bu alan 12,5 KB'a kadar veri barındırabilir. CustomValueUserStyleSetting iç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

  • GlesRenderer ve GlesRenderer2 işlevlerine isteğe bağlı bir parametre eglContextAttribList ekledik. Bu parametre, EGL14.eglCreateContext işlevine iletilen EGL14.EGL_CONTEXT_CLIENT_VERSION değerini ayarlamanıza olanak tanır. (I2a83e)
  • Kadran kitaplıklarını java.util.function.Consumer yerine androidx.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 üç durumlu IntDef olması 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_FACE gerektiren ComplicationRequest.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 CustomValueUserStyleSetting2 eklendi. 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 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 ComplicationSlot desteğ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 UserStyleSettings desteği ekledik. Android T'den itibaren artık bir hiyerarşide birden fazla ComplicationSlotsUserStyleSetting bulunabilir. Kullanıcının stil seçimlerine göre yalnızca bir ComplicationSlotsUserStyleSetting etkin olur.

  • ListOption ve ComplicationSlotsOption için ekran okuyucu desteğini iyileştiriyoruz. Bu kapsamda screenReaderName alanı 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 screenReaderName ve ComplicationSlotsOption'ye yeni bir isteğe bağlı ListOption alanı 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 ComplicationSlotsUserStyleSettings desteklenmektedir. Etkin ComplicationSlotsOption varsa bulmanıza yardımcı olmak için UserStyleSchema'e findComplicationSlotsOptionForUserStyle yardımcı işlevini ekledik. (Ic2b06)
  • RangedValuesTypes, RangedValueComplicationData'nin yardımcı nesnesine çekildi ve TYPE_UNDEFINED, TYPE_RATING olarak yeniden adlandırıldı. Yeni bir TYPE_PERCENTAGE eklendi. (I55d02)
  • Deneysel DynamicFloat özelliğinin adını FloatExpression olarak değiştirdik ve @hide olarak işaretledik. (Idf4f1)
  • @JvmDefaultWithCompatibility ek 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 GoalProgressComplicationData ve WeightedElementsComplicationData olmak üzere iki yeni komplikasyon türü için destek ekledik.
  • GoalProgressComplicationData, RangedValueComplicationData özelliğine benzer ancak değeri hedefin ötesine geçebilir (RangedValueComplicationData iç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 öğesine ColorRamps için isteğe bağlı destek ekledik.
  • Android T için, ComplicationData öğesine ComplicationPersistencePolicy ve setCachePolicy ekledik.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, ComplicationDisplayPolicy ifadesini de ekledik. Bu ifade, DO_NOT_SHOW_WHEN_DEVICE_LOCKED ile birlikte kullanıldığında cihaz kilitliyken komplikasyonun gösterilmemesi için uyumlu bir kadranı yönlendirir. (Ic9574)

API Değişiklikleri

  • GoalProgressComplicationData, WeightedElementsComplicationData ve ColorRamp artık deneysel değildir. (Ica9e2)
  • ComplicationPersistencePolicy ve ComplicationDisplayPolicy artık T API'leri olarak doğru şekilde işaretleniyor. (I31d88)
  • Kullanımdan kaldırılan ComplicationSlotOverlay oluşturucusu artık DeprecationLevel.WARNING içeriyor ve bu sayede Java'dan tekrar çağrılabiliyor. (Ib308c)
  • ComplicationRequestListener, CanvasComplication, ComplicationTapFilter ve InteractiveWatchFaceClient ile ilgili bazı Java uyumluluğu sorunlarını @JvmDefaultWithCompatibility (Id94fc) ile açıklama ekleyerek düzelttik.
  • Deneysel ProtoLayoutComplicationData ve ListComplicationData özelliklerini kaldırdık. Bunlarla ilgili geliştirici hikayesi net değildi. Gelecekte tekrar değerlendirmeyi umuyoruz. (I9df05)
  • ValueType, RangedValueComplicationData kartına yeniden eklendi. WeightedElementsComplicationData artık arka plan rengini destekliyor. DiscreteRangedValueComplicationData işlevleri WeightedElementsComplicationData işlevlerinin bir alt kümesi olduğundan DiscreteRangedValueComplicationData kaldırıldı. (I6446c)

Hata Düzeltmeleri

  • Eşittir işareti ve karma koduna isForScreenShot simgesini ekleyin. onRenderParametersChanged özelliğinin doğru bir isForScreenshot değeri (I04a41) aldığından emin olun.
  • Başsız istemcilerdeki WatchFaceControlService sı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

  • rootUserStyleSettings deneysel olmaktan çıktığı için UserStyleSchema.userStyleSettings desteği sonlandırıldı (Ie96e3)
  • rootUserStyleSettings öğesini deneysel (I8d6b3) bölümünden taşıma
  • WatchFaceColors, tüm sistemler tarafından desteklenmediği için (I6d75d) deneysel olarak işaretlendi.
  • DisconnectReasons ile çalışması için IntDef öğesini herkese açık API'de kullanıma sunun. (I791f8)

Hata Düzeltmeleri

  • SysUI pili biterse saatteki açık düzenleyiciyi kapatın. SysUI kapanırsa ve kol saati kadranı düzenleyicisi kapanmazsa sistem, kullanıcı stili değişikliklerini kalıcı hale getirmek için SysUI'ya bağlı olduğundan kol saati kadranı tutarsız bir durumda kalabilir.(ba762a
  • ComplicationDataSourceInfoRetriever'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 UserStyle dışı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ıyan Renderer.sendPreviewImageNeedsUpdateRequest iş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 ComplicationData artık SmallImages'ı destekliyor.

API Değişiklikleri

  • Duvar kağıdı yöneticisi bazen bir motordan ayrılıp başka bir motor oluşturabilir. Bir DisconnectReason int tanımı ekledik ve ClientDisconnectListener'yi DisconnectReason içeren yeni bir yöntemle genişlettik. Bu sayede işleyici, motorun ayrılmasını gözlemleyebilir. (I45cce)
  • ComplicationSlotOverlay oluşturucusuna (I157e8) iki isteğe bağlı parametre (nameResourceId ve screenReaderResourceId) eklendi.
  • getOrCreateInteractiveWatchFaceClient ile PreviewImageUpdateRequestedListener yeni aşırı yüklemesi için guava sarmalayıcı ekledik. (Ic31f0)
  • Renderer.sendPreviewImageNeedsUpdateRequest öğesini ekledik.Bu öğe, UserStyleSchema dışı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ında PreviewImageUpdateRequestedListener, 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 üzerinde watchFaceColors adlı 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çin WallpaperManager yerine InteractiveWatchFaceClient'ye OnWatchFaceColorsListener ekledik. (I490bc)
  • En belirgin üç kadran rengini içeren bir WatchFaceColors sınıfı ekledik ve Renderer'a watchfaceColors ile notifyWatchFaceColorsChanged açık yöntemlerini ekledik. Bu yöntemler, sistemin WallpaperManager.getWallpaperColors aracılığıyla kadranın renklerini almasına olanak tanır. (I3d611)
  • ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData (ve deneysel DiscreteRangedValueComplicationData, GoalProgressComplicationData ve WeightedElementsComplicationData) artık SmallImages'ı 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 bir SmallImage kullanabilir. (I257df)
  • PreviewImageUpdateRequestedListener öğesini Consumer<> 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).
  • PreviewImageUpdateRequestedListener belirtilmeyen eski getOrCreateInteractiveWatchFaceClient ve listenableGetOrCreateInteractiveWatchFaceClient yöntemlerinin desteğini sonlandırdık. (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 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 CanvasComplicationDrawable tarafı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 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. Kodda veya XML aracılığıyla belirtilmediği sürece ComplciationSlots sı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)
  • createComplicationSlotsManager ile tutarlı olması için WatchFaceService.getComplicationSlotInflationFactory yöntemine currentUserStyleRepository bağımsız değişkeni eklendi. (I2ddd2)
  • UserStyleFlavors, deneysel özellik olmaktan çıktı. (I69cdc)
  • ValueType deneysel özelliğini RangedValueComplicationData öğesinden kaldırdık ve bunun yerine, tam sayı aralığı ve değeri hariç RangedValueComplicationData öğesine benzeyen deneysel DiscreteRangedValueComplicationData özelliğini kullanıma sunduk. Ayrıca, GoalProgressComplicationData deneysel ö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ğerin targetValue değerinden büyük olmasına izin verildiği bir hedefe yönelik ilerleme için kullanılır. Tüm RangedValue varyantları için monochromeImage, text veya title özelliklerinden en az biri belirtilmelidir. (I9590c)
  • Sistem yazılımının kullanım alanı olmadığı için boundsWithMargins adlı özelliği ComplicationSlotState'den kaldırdık. (I42e26)
  • WeightedElementsComplicationData iç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)
  • RangedValueComplicationData ve GoalProgressComplicationData tarafından isteğe bağlı olarak kullanılan deneysel ColorRamps ö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, valueType olarak 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 gelen ValueType IntDef ile birlikte bir tamsayıdır. (I0616b)
  • İsteğe bağlı ColorRanges ile RangedValueComplicationData arası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 yer ComplicationDataSource olur (ör. belirli bir anlamsal anlamları olduğunda). Örneğin, sıcaklık için kırmızıdan maviye. (I5153a)
  • RangedValueComplicationData'ye deneysel bir drawSegmented ipucu ekledik. Bu, oluşturuculara aralıklı değer göstergesini segmentlerle çizmesini bildirir. Burada 1 segment = 1 birimdir. (I7d7c1)

Hata Düzeltmeleri

  • ComplicationSlotBounds değ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 pendingInitialComplications listesine eklenir ve daha sonra uygulanır. Maalesef pendingInitialComplications çok erken uygulandı. Bu nedenle, kadran başlatılırken komplikasyonların pendingInitialComplications ü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 fazla pendingInitialComplications öğesinin birleştirilmesi gereken, umarız teorik bir hatayı düzeltir. (0d03ba3)

  • InteractiveInstanceManager içinde getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance'nin kilidi gereğinden uzun süre tuttuğu durumlarda olası kilitlenme sorununu düzeltir. Genellikle engine.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, 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 bazen WatchFaceService öğesini koruyabilir. release() çağrısı eklemek bu sorunu düzeltir. Ayrıca StateFlows, WatchFaceService öğesini koruyabilir. Temel alınan CoroutineScopes düzeltmelerini iptal etmek bu sorunu çözer.(fd48138)

  • awaitDeferredWatchFace* öğesine zaman aşımları ekleyin ve watchfaceOverlayStyle NullPointerException sorununu düzeltin. Normal şartlarda, yeni yükleme ve CPU yükünün yüksek olduğu DirectBoot senaryoları da dahil olmak üzere bu işlem zaman aşımına uğramaz. Ayrıca, getWatchfaceOverlayStyle işlevi close() 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 ComplicationSlots iç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 ComplicationType belirtebilirsiniz. Böylece geliştiriciler, kutudan çıkarma deneyimi konusunda daha fazla esnekliğe sahip olur.
  • ComplicationDataTimeline eklendi. 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, ComplicationData bö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:

  • UserStyleSchema ve ComplicationSlots artı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 ComplicationSlotBounds belirtmek kolaylaştı ve referanslar desteklenmeye başladı. Kenar komplikasyonu BoundingArc ile deneme yapmaya devam ediliyor ve o sırada kullanılması önerilmese de drawHighlight'ye aktarılıyor.

API Değişiklikleri

  • drawHighlight parametresini kabul eden deneysel bir BoundingArc aşı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_y formunda ComplicationSlotBounds tanı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 runBlockingWithTracing düzeltildi.(4f595fe)
  • BaseEditorSession.close eş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 ComplicationData tü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ş ve ComplicationSlotState ile WatchFaceMetadataClient'ye aktarılmıştır. (I61a40)
  • UserStyleSetting XML'de ayarları devralma özelliği eklendi. Bu sayede ayrıntı düzeyini azaltabilir ve ayarları saat yüzleri arasında paylaşabilirsiniz. (Ief841)
  • ComplicationData için iki yeni deneysel tür ekledik: ListComplicationData ve ProtoLayoutComplicationData. Şu anda bu türlerin her ikisi için de oluşturma desteği yoktur ve WearOS, ComplicationDataSource's manifestine eklenen bu türleri şu anda tanımamaktadır. (I1811c)

Hata Düzeltmeleri

  • TimeLineEntry türünün serileştirilmesi düzeltildi. 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 mevcut olmayan gerekli 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)
  • Ç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.ComplicationText hatasıyla karşılaşılmasına neden olan hata düzeltildi.(217942d9)
  • GlesRenderer.backgroundThreadInitInternal içinde, yalnızca EGL14.eglCreateContext çağrıldığında onBackgroundThreadGlContextCreated'nin çağrılmasına neden olan hata düzeltildi. verticalFlip nedeniyle ekran görüntüsünde görsel aksaklığa yol açan başka bir hata düzeltildi.(c674ad2)
  • WatchFaceService XML 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, NoDataComplication verisinin 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 WatchFaceMetadataClient yöntemleri (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) ve HeadlessWatchFaceClient.getUserStyleFlavors, WatchFaceException yerine işaretlenmemiş RuntimeException oluşturuyor. (I0718a)
  • WatchFaceMetadataClient.WatchFaceException, yeniden kullanılabilmesi için sınıftan çıkarıldı. (I4e869)

Hata Düzeltmeleri

  • WatchFaceMetadataClient, kısmi ComplicationSlotBounds gö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 ComplicationData hangi veri kaynağının gönderdiğini ComplicationData.dataSource inceleyerek anlayabilirsiniz. Bazı saat kadranları, komplikasyon ekranını özelleştirmek için bu bilgiyi kullanabilir. (I44a73)

API Değişiklikleri

  • Renderer.CanvasRenderer ve Renderer.GlesRenderer yöntemlerinin desteği sonlandırıldı. Bu yöntemlerin yerine, oluşturma yöntemlerine iletilen SharedAssets öğelerini destekleyen Renderer.CanvasRenderer2 ve Renderer.GlesRenderer2 yöntemleri kullanılacak. Java birlikte çalışabilirliği için ListenableCanvasRenderer2 ve ListenableGlesRenderer2'ı kullanıma sunduk. (I31ffa)
  • @WatchFaceFlavorsExperimental Stillerin tanımlanması özelliği eklendi. Bu özellik, önceden yapılandırılmış stil sahibi kadranların listesini içerir (I04dd0).
  • Renderer.sharedAssets artık bir StateFlow ve kullanılmayan Renderer.SharedAssetsFactory (I12ac5) kaldırıldı.
  • UserStyleSchema.userStyleSettings artık kullanımdan kaldırılmıyor (Iba7e3)
  • HeadlessWatchFaceClient.getUserStyleSchemaDigestHash işlevini ekledik. Bu işlev, özet karması hesaplanmadan önce şemanın AIDL üzerinden iletilmesinin nispeten düşük ek yükünden kaçınmak için HeadlessWatchFaceClient kullanılmasına olanak tanır. (I33597)
  • isUserStyleSchemaStatic, WatchFaceMetadataClient'ye eklendi. Bu, yalnızca kadran APK'sı güncellenmediği sürece UserStyleSchema'nin değişmeyeceğine güvenilebiliyorsa geçerlidir. (I45a3f)
  • Şemanın özet karmasını hesaplayan getDigestHash işlevini UserStyleSchema işlevine 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ı. 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 ComplicationData her 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ızca NoDataComplicationData yer tutucusu bağlamında kullanılmasına izin verilen ComplicationText.PLACEHOLDER, MonochromaticImage.PLACEHOLDER, SmallImage.PLACEHOLDER, PhotoImage.PLACEHOLDER öğelerini ekledik. Bu yer tutucular seçilirse gri kutular/yaylarla oluşturulmaları önerilir. (I6285d)
  • ComplicationData.getNextChangeInstant simgesini 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.watchFaceId artık tüm API düzeylerinde kullanılabilir. Ayrıca değeri artık her zaman WatchState.watchFaceInstanceId ile tutarlı olacaktır. (I323b9)
  • Temel sorun çerçevede düzeltildiğinden getPendingIntentForTouchEvent API'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 bile PendingIntents tetiklenmesi için saat yüzlerinin özel bir işlem yapması gerekmez. (I1f2e8)
  • RendererParameters.isForScreenShot iş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 WatchFaceExceptionReason ifadesini WatchFaceException ifadesine 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 içinde yanıt vermesi) belirtmek için ComplicationRequest.immediateResponseRequired eklendi. Bu işlevin, ayrıcalıklı com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE izniyle 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ızca ListOption tarafı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 ve Map<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 iznini ekledik. (I8520d)
  • clearWithBackgroundTintBeforeRenderingHighlightLayer için yeni bir isteğe bağlı oluşturucu parametresi CanvasRenderer (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_SUPPORTED meta 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.setEglConfig ve GlesRenderer.setEglDisplay kullanımdan kaldırıldı. Bu parametrelerin ayarlanabilir olması hiçbir zaman amaçlanmadı ve ayarlanması tanımlanmamış davranışlara yol açtı. (I0d9e7)
  • setNameResourceId ve setScreenReaderNameResourceId (dize kaynaklarına referans veren) öğelerini ComplicationSlot.Builder ve androidx.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.getUserStyleSchema ve getComplicationSlotMetadataMap artık RemoteException yerine WatchFaceException atıyor. (I86f11)
  • onSynchronousComplicationRequest ve ComplicationDataSourceService'deki ilgili işlevler onImmediateComplicationRequest vb. 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 @JvmOverloads ekledik. (I2974a)

Hata Düzeltmeleri

  • ListenableGlesRenderer oluş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)
  • PhotoImageComplicationData tapAction'ı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 ComplicationData ve 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

  • WatchfaceMetadataClient yöntemleri uygun yerlerde tekrar RemoteExceptions oluşturarak istemci kodunun saat yüzündeki hataları yakalamasını kolaylaştırır. (I78785)
  • ComplicationData ve 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

  • UserStyleSchema ve ComplicationSlots artık XML'de tanımlanabilir. Bu, kadran oluşturmayı kolaylaştırır. Ayrıca, meta verileri almak için hizmete bağlanması gerekmediğinden WatchFaceMetadataClient sorguları daha hızlıdır. WatchFaceMetadataClient ve ListenableWatchFaceMetadataClient artı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 UserStyle içinde yakalanmayan durumlar vardır. Bu durumu ve birden fazla örneği desteklemek için kadranın örnek kimliği artık WatchState.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. Bazen ComplicationData, 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 durumda ComplicationData.tapActionLostDueToSerialization, true değ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ürede tapAction ile güncellenmiş ComplicationData gönderecektir.

  • Bazı ComplicationData, uzun süre önbelleğe alınmamalıdır. Bunu desteklemek için daha genel bir özellik olan ComplicationDataTimeline'i ekledik. Bu, saat yüzüne teslim edilecek, zaman sınırlamalı ComplicationData dizisi 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öntem onComplicationDataTimeline ile genişletildi.

  • DefaultComplicationDataSourcePolicy, birincil ve ikincil veri kaynakları için ComplicationType belirtebileceğ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 PendingIntentTapListener değ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ı olan tapActionLostDueToSerialization olarak değiştirildi. (I6de2f)
  • wear-complication-data-source listesine ComplicationDataTimeline eklendi. Bu, saat yüzüne teslim edilecek, zaman sınırlamalı ComplicationData dizisi 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öntem onComplicationDataTimeline ile genişletildi. Veri kaynağı hizmetlerini askıya almak için yeni bir Kotlin sarmalayıcısı SuspendingTimelineComplicationDataSourceService eklendi. (Idecdc)
  • PendingIntentTapListener ve WatchFaceControlClient.getPendingIntentForTouchEvent eklendi. 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öntemi WatchFaceControlClient.hasComplicationCache kullanıma sunuldu. Bu durum, sistemin saat yüzüne özellik gönderme stratejisini etkileyebilir. Ayrıca ComplicationData, isCached özelliğine sahip ve tapAction önbelleğe alınamadığı ve önbelleğe alınmış bir komplikasyonda null olacağı 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ık WatchFaceControlClient.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ş DefaultComplicationDataSourcePolicy ComplicationSlot.defaultDataSourceType artık kullanımdan kaldırıldı. (If0ce3)
  • ComplicationSlot.configExtras artık değiştirilebilir ve EditorSession.openComplicationDataSourceChooser() aranmadan önce güncellenebilir. (I6f852)
  • WatchFace.setComplicationDeniedDialogIntent ve setComplicationRationaleDialogIntent eklendi. 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)
  • UserStyleSchema ve ComplicationSlots artık XML'de tanımlanabilir. Bu, hizmete bağlanarak meta verileri alması gerekmediğinden, WatchFaceMetadataClient sorguları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çin InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent eklendi. (I0b917)
  • WatchFaceMetadataClient ve ListenableWatchFaceMetadataClient artı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_SECONDS meta veri etiketi eklemesi ve onSynchronousComplicationRequest değ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çin onStartSynchronousComplicationRequests ve onStopInteractiveComplicationRequests değ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

  • PhotoImageComplicationData tapAction'ı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.style bö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.compareAndSet ile ilgili sorunu düzeltin (I6f676)
  • Çok kısa kadran gecikmelerini düzeltme (Iffb97)
  • Kullanıcı arayüzü iş parçacığında InteractiveWatchFaceImpl.onDestroy gö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.complications paketindeki sınıflar yeni bir wear:watchface:watchface-complications projesine taşındı. Bu, yinelenen sınıflarla ilgili hatalar alacağınız için bu kitaplığın yanı sıra wear: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, addOnWatchFaceReadyListener olarak, removeWatchFaceReadyListener ise removeOnWatchFaceReadyListener olarak yeniden adlandırıldı. (I48fea)
  • EditorSession getComplicationsPreviewData ve getComplicationsDataSourceInfo artık askıya alma işlevleri değil, değeri başlangıçta null olan StateFlow<> özellikleridir. ListenableEditorSession'da getListenableComplicationPreviewData ve getListenableComplicationsProviderInfo, temel sınıftaki yeni StateFlow<> nesneleri lehine kaldırıldı. Java kodundaki değişiklikleri dinlemeniz gerekiyorsa LiveData<> biçimine dönüştürmek için androidx.lifecycle.FlowLiveDataConversions.asLiveData kullanabilirsiniz. (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.wear Watchface ve komplikasyon kitaplıklarını androidx.wear.watchface kitaplı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)