Wear kadranı

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

Not: Ocak 2026'dan itibaren tüm Wear OS cihazlarına kadran yüklemek için Saat Kadranı Formatı gereklidir.

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 olursa 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çimlendirmeyi destekleyen ComplicationTextFormatting yardımcı sınıfı eklendi. Bu sınıf, 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 kadranların UserStyle şemasını tanımlamak mümkündü ve ColorUserStyleSetting, XML'de tanımlanabiliyor.

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 yapması ö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şıklık API'leri 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öntem, önemli ölçüde daha kompakt bir kablo biçimine sahiptir.

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, 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)
  • Kadranlar 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, tüm simgeler nedeniyle düzinelerce renk seçeneği sunuluyorsa sorun olabilir. 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'de 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ümlerle (ör. R8 sürüm 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümlerle (ö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, createExtra() tarafından oluşturulan kullanıcı tanımlı bir ek, başlatma sırasında çağrılan tüm geçersiz kılmalara 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, createExtra() tarafından kullanıcı tanımlı bir tür oluşturulur ve çeşitli oluşturma yöntemlerine parametre olarak iletilir. (If8a99)
  • Öncelikle OEM'lerin ilgisini çekecek olan InteractiveWatchFaceClient'ye getUserStyleFlavors özelliğini ekledik. (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 yedeklemeden 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 METADATA_KEY_DATA_SOURCE_CONFIG_ACTION meta veri ayarını false olarak ekleyebilir. Bu durumda komplikasyon yuvası yapılandırılmamış olarak işaretlenir. (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üne alındığında 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. 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.
  • Android T'den itibaren OEM'ler, android.support.wearable.complications.SAFE_WATCH_FACES sağlayıcılarının manifest dosyasındaki meta verilerde ComplicationRequest#isForSafeWatchFace 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 com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE 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ğini ekleyin. (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 saat yüzü türü olan saat yüzü ç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 işlemidir. 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 olarak 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. Ayrıca, ComplicationText'ün alt sınıfı olarak yeni bir DynamicComplicationText kullanıma sunuldu. Her ikisi de desteklenen Wear 4 cihazlarda 1 Hz'de güncellenen platform bağlamalarının yanı sıra dinamik ifadelerden yararlanabilir.

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
  • Nabız ve günlük adım sayısı sağlamak için PlatformDataProvider'ı uygulayın. SensorGateway arayüzü, herkese açık API'den kaldırıldı. (I55b84)
  • StateEntryValue öğesini DynamicDataValue olarak yeniden adlandırın ve durum API'lerini DynamicDataKey kullanacak şekilde güncelleyin. (If1c01)
  • Uygulama tarafından gönderilen duruma erişmek için AppDataKey, platform verilerine erişmek için PlatformDataKey, StateStore içinde 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 özelliğine sahip komplikasyon sağlayıcılar, güvenli saat yüzleri için android.support.wearable.complications.SUPPORTED_TYPES özelliğini geçersiz kılan androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES meta verilerini kaydedebilir. Bu nedenle, komplikasyon sağlayıcılar güvenilen ve güvenilmeyen saat yüzlerine farklı türler sunmayı 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 hata oluştu
  • SurfaceControlViewHost'un üzerine inşa edilen 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ıyan createRemoteWatchFaceView lehine renderWatchFaceToSurface kaldırıldı. (Ib311d)
  • renderWatchFaceToSurface adlı kullanıcıyı InteractiveWatchFaceClient, HeadlessWatchFaceClient ve EditorSession listelerine ekledik. Bu genellikle bit eşleme olarak oluşturmaktan daha iyi performans gösterir. (Ieacad)
  • ObservableStateStore, StateStore olarak yeniden adlandırıldı. (Ieb0e2)
  • ObservableStateStore dahil olmak üzere daha fazla isteğe bağlı bağımsız değişkene izin vermek için oluşturucu bağımsız değişkenleri yerine DynamicTypeEvaluator.Builder eklendi. ObservableStateStore artık varsayılan olarak boş bir mağazaya ayarlanıyor. (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'a startEvaluation yöntemi ekledik. (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 sağlayıcılarının manifest dosyasındaki meta verilerde ComplicationRequest#isForSafeWatchFace 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 dışındaki öğeleri alabilmesi için TargetWatchFaceSafety.UNKNOWN izni gerekir.

  • Ayrıca, 12,5 KB'a kadar veri tutabilen Android T CustomValueUserStyleSetting2 de kullanılabilir. 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ü, veri kaynağının manifestinde 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 cihazlardaki yardımcı düzenleyiciler tarafından yoksayılır. (I75326)
  • Android T'den itibaren, stil hiyerarşisinde birden fazla ComplicationSlotsUserStyleSettings desteklenir. Ancak aynı anda yalnızca bir tanesi etkin olabilir. 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ı ekleniyor (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 sağlayıcının bir 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şturucuya artık DeprecationLevel.WARNING eklendi. Bu sayede, oluşturucu tekrar Java'dan ç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 özellikten (I8d6b3) çıkarma
  • 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 çökerse 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 öğesini, işleyicinin motorun ayrılmasını gözlemlemesine olanak tanıyan DisconnectReason içeren yeni bir yöntemle genişlettik. (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ı seçerse 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ü (Consumer) ile değiştirildi (I0c489).
  • PreviewImageUpdateRequestedListener belirtmeyen 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 işlevini RangedValueComplicationData öğesinden kaldırdık ve bunun yerine, tam sayı aralığı ve değeri hariç RangedValueComplicationData öğesine benzeyen deneysel DiscreteRangedValueComplicationData işlevini kullanıma sunduk. Ayrıca, RangedValueComplicationData işlevine benzeyen ancak minimum değerin sıfır olduğu ve değerin targetValue değerinden büyük olmasına izin verilen bir hedef doğrultusunda ilerleme için kullanılan deneysel GoalProgressComplicationData işlevini de kullanıma sunduk. Tüm RangedValue varyantları için not: monochromeImage, text veya title özelliklerinden en az biri belirtilmelidir. (I9590c)
  • Sistem yazılımının kullanım alanı olmadığı için boundsWithMargins, ComplicationSlotState'dan kaldırıldı. (I42e26)
  • WeightedElementsComplicationData için deneysel destek ekledik. Bu destek, 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üne alındığında renklerin anlamlı olması gereken bir pasta grafiği olarak gösterilebilir. (I87eea)
  • ColorRamps deneysel özelliği, RangedValueComplicationData ve GoalProgressComplicationData tarafından isteğe bağlı olarak kullanıldığında artık yedi renge kadar bir sıra ve renklerin sorunsuz bir şekilde ara değerlendirilip değerlendirilmeyeceğini 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 kullanılan 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'e deneysel bir drawSegmented ipucu ekledik. Bu, oluşturuculara aralıklı değer göstergesini segmentlerle çizme sinyali verir. 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 yoksayı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ığı 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 öğesinin kilidi gereğinden uzun süre tuttuğu durumlarda olası kilitlenme sorunu düzeltildi. Normalde 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 düzeltir.(fd48138)

  • awaitDeferredWatchFace* öğesine zaman aşımları ekleyin ve watchfaceOverlayStyle NullPointerException sorununu düzeltin. Normal şartlarda, yeni yükleme ve DirectBoot gibi işlemci yükünün yüksek olduğu 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:

  • Stil hiyerarşisinin düzenleyici kullanıcı arayüzleri tarafından yazılmasına olanak tanıyan hiyerarşik şemalar için destek ekledik. Artık saat yüzü ve tamamlayıcı düzenleyicilerde kullanılmak üzere 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 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, artık saat yüzü örneklerinin kaynakları paylaşması mümkün. Bu sayede bellek tasarrufu sağlanıyor.
  • Kadran düzenleyicide 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 değerini belirtebilirsiniz. Böylece geliştiriciler, kutudan çıkarma deneyimi konusunda daha fazla esnekliğe sahip olur.
  • Saat yüzüne teslim edilecek, önbelleğe alınabilen ve otomatik olarak güncellenebilen, zamana bağlı verilerin sırasını sağlayan ComplicationDataTimeline özelliğini ekledik. Ö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ı basitleştirir ve sistemden daha hızlı meta veri sorguları yapılmasını sağlar.
  • 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 ve referansları desteklemek kolaylaştı. Kenar komplikasyonu BoundingArc ile denemeler devam eder. Bu komplikasyon, o sırada kullanılması önerilmese de drawHighlight'ye dahil edilir.

API Değişiklikleri

  • BoundingArc parametresini kabul eden deneysel bir drawHighlight 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)
  • ComplicationSlotBounds değerini center_x, center_y, size_x, size_y formunda 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 da logcat'te uyarı spam'ine yol aç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 sınıfını 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 saat yüzleri arasında bir ayarı 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ıldığı hata düzeltildi(fb392f5).
  • Çok nadir durumlarda runBlockingWithTracing öğesinin NPE'ye(12ca62e) yol açtığı hata düzeltildi.
  • 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ılırsa onBackgroundThreadGlContextCreated'nin çağrılmasına neden olan hata düzeltildi. verticalFlip nedeniyle ekran görüntüsünde görsel bir 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ç paket 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 dahili bir 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. Version 1.1.0-alpha05 contains these commits.

Yeni Özellikler

  • Artık ComplicationData gönderen veri kaynağını ComplicationData.dataSource inceleyerek öğrenebilirsiniz. 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ı. Bunun 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 Stilleri tanımlama özelliği eklendi. Bu özellik, önceden yapılandırılmış stil sahibi kadranlardan oluşan bir liste sunar (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)
  • Özet karması hesaplanmadan önce şemanın AIDL üzerinden geçirilmesinin nispeten düşük ek yükünden kaçınmak için HeadlessWatchFaceClient.getUserStyleSchemaDigestHash eklendi.HeadlessWatchFaceClient (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ş önbelleğe alınmış ComplicationData). Bu nedenle, NoDataComplication'ı 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şturulması ö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ı, kadranın saniyede bir kez güncellenmesine 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 artık gerekli değildir. Bu nedenle, ilgili tüm API'ler kaldırılmıştır. Ana sayfa düğmesine yakın zamanda 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 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. Başlangıçta yalnızca ListOption tarafından kullanılan childSettings adlı yeni bir özellik androidx.wear.watchface.style.UserStyleSetting.Option'ya eklendi. Bu, düzenleyici kullanıcı arayüzleri tarafından kullanılmak üzere bir stil hiyerarşisinin tanımlanmasına olanak tanır. 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 özelliğini ekledik. (I8520d)
  • clearWithBackgroundTintBeforeRenderingHighlightLayer için yeni bir isteğe bağlı oluşturucu parametresi CanvasRenderer kullanıma sunuldu (varsayılan değer false'tur). 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 değişmez verileri (ör. dokular ve gölgelendiriciler) örnekler arasında 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 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, saat 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 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. Bunu 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.

  • Komplikasyonun normalden daha yüksek bir sıklıkta güncellendiği senkron komplikasyon sağlayıcılar için destek ekledik. Kadran görünür ve ortam modu etkin değilken komplikasyon saniyede bir kez güncellenebilir. 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 önbelleği kullanıma sunuldu. 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 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)
  • Kadranı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 desteği sonlandı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 bir komplikasyonu düzenlemeye çalışırken komplikasyon izninin gerekli olduğunu açıklayan başka bir iletişim kutusu göstermek için başlatılır (sağlayıcı seçici açılamaz, bu nedenle iletişim kutusu gereklidir). (I3a29c)
  • UserStyleSchema ve ComplicationSlots artık XML'de tanımlanabilir. Bu, meta verileri almak için hizmete bağlanmaları 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 özelliğini destekleyip desteklemediğini belirleyebilmesi için InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent eklendi. (I0b917)
  • WatchFaceMetadataClient ve ListenableWatchFaceMetadataClient artık deneysel değil. Bunlar, 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'daki 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, herhangi bir 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. writeDirectBootPrefs'in her zaman initStyleAndComplications'dan sonra çalışmasını istiyoruz. Aksi takdirde, kullanıcı arayüzü iş parçacığı başlatma işlemini geciktirme riskiyle karşı karşıya kalırız.(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 notlandırıldı. (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, temel sınıftaki yeni StateFlow<> nesneleri lehine getListenableComplicationPreviewData ve getListenableComplicationsProviderInfo kaldırıldı. Java kodundaki değişiklikleri dinlemeniz gerekiyorsa androidx.lifecycle.FlowLiveDataConversions.asLiveData kullanarak LiveData<> biçimine dönüştürmeyi düşünebilirsiniz. (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ı ve 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. Bu işlevin desteği asop/1756809'da eklendiğinden, bu işlevle ilgili bazı yanlış negatif sonuçlar olabileceğini ancak gelecekteki tüm saat yüzleri için doğru değeri döndüreceğ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'u çağırmak için InteractiveInstanceManager.deleteInstance. Bu, InteractiveWatchFaceImpl'in çöp toplama işlemine tabi tutulmasını sağlamak için gereklidir.(fce4af8, b/199485839)