Saat Yüzünü Kullanın

Wear OS by Google akıllı saatler için uygulamalar oluşturun.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
7 Şubat 2024 1.2.1 - - 1.3.0-alpha01

Bağımlılıkları bildirme

Wear'da bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanızın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

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 edinmek için Derleme bağımlılıkları ekleme konusuna bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa 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 sayı oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.3

Sürüm 1.3.0-alpha01

7 Şubat 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha01 yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • WatchFaceServices eşzamanlı olarak başlatılabilir ve bu nedenle durum bilgisiz olmalıdır. Bunu desteklemek için StatefulWatchFaceService içinde createExtra() tarafından oluşturulan fazladan bir kullanıcı, başlatma sırasında çağrılan tüm geçersiz kılmalara geçirilir.
  • GlesRenderer2 artık eglChooseConfig ile deneyebileceğiniz özelliklerin listesini belirtmenize olanak tanıyan bir yapıcı aşırı yüküne sahip.

API Değişiklikleri

  • StatefulWatchFaceService artık, createExtra() tarafından oluşturulan kullanıcı tanımlı ekstranın iletildiği getComplicationSlotInflationFactory geçersiz kılmasını destekliyor. (I82d9f)
  • Bazı kadranların 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 özelliklerini durum bilgili hale getirirler. Aynı anda birden fazla örnek oluşturulabileceği ve bu da hatalara yol açabileceği için bu tehlikelidir. Bu sorunu çözmek için createExtra() ile kullanıcı tanımlı tür oluşturup çeşitli oluşturma yöntemlerine parametre olarak geçirilen StatefulWatchFaceService ve StatefulWatchFaceRuntimeService özelliklerini kullanıma sunduk. (If8a99)
  • InteractiveWatchFaceClient içine, öncelikli olarak OEM'lerin ilgi gösterdiği getUserStyleFlavors ürününü ekledik. (I0f5d8)
  • GlesRenderer2 artık eglChooseConfig ile deneyebileceğiniz özelliklerin listesini belirtmenize olanak tanıyan bir yapıcı aşırı yüküne sahip. Bu, örneğin ilk olarak anti-aliasing içeren bir yapılandırmayı denemenize ve gerektiğinde bir yapılandırmaya geri dönmenize olanak tanır. (I1ba74)
  • Android U'dan Wear OS'e SystemDataSources.DATA_SOURCE_HEART_RATE desteği eklenecek. Bu özelliğin yalnızca SHORT_TEXT özelliklerini desteklediği garanti edilir, ancak OEM'ler canlı değer yerine sağlık uygulamalarına kısayol sunmayı tercih edebileceğinden ComplicationSlot uygulamasının da SMALL_IMAGE özelliğini kabul etmesi önerilir. (I34223)
  • Android U'dan itibaren METADATA_KEY_DATA_SOURCE_CONFIG_ACTION ile birlikte kullanılan komplikasyon veri kaynağı için sistem yedekten geri yüklendiğinde ne olacağını kontrol eden METADATA_KEY_CONFIG_RESTORE_SUPPORTED ekledik. Varsayılan olarak sistem, özellik verisi kaynağı hizmetinin yapılandırma verilerinin yedeklemesini desteklediğini varsayar. Ancak bu destek sunulmuyorsa, özellik için METADATA_KEY_DATA_SOURCE_CONFIG_ACTION meta veri ayarını false (yanlış) olarak ekleyebilir. Bu da özellik alanını yapılandırılmadı olarak işaretleyecektir. (I6c505)

Sürüm 1.2

Sürüm 1.2.1

24 Ocak 2024

androidx.wear.watchface:watchface-*:1.2.1 yayınlandı. 1.2.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Samsung Galaxy Watch 4, 5 ve 6'daki bir kilitlenme düzeltildi. (43f0b0)

Sürüm 1.2.0

29 Kasım 2023

androidx.wear.watchface:watchface-*:1.2.0 yayınlandı. 1.2.0 sürümü bu kayıtları içerir.

1.1.0'dan sonraki önemli değişiklikler

  • Android T'de kullanılabilen bazı yeni özellik türlerini desteklemeye başladık:
    • GoalProgressComplicationData (min. dolaylı olarak sıfır olduğu ve değerin targetValue değerinden büyük olmasına izin verilen bir hedefe yönelik ilerleme durumu) RangedValueComplicationData ile benzerdir.
    • İsteğe bağlı metin/başlık/resim ile birlikte bir Öğeler dizisinden (ağırlık ve renk çiftleri) oluşan WeightedElementsComplicationData. Bunlar, genellikle etiketleri oluşturmak için karmaşıklık olmadığından bağlam açısından renklerin anlamlı olması gereken bir pasta grafik olarak görüntülenebilir.
  • RangedValueComplicationData için isteğe bağlı ColorRanges desteği ekledik. Normalde özellikler kadranın seçtiği renklerde oluşturulur, ancak bazen renkleri ayarlamak için en iyi seçenek, örneğin belirli bir anlamsal anlam olduğunda ComplicationDataSource. Ör. sıcaklık değeri için kırmızıdan maviye.
  • Artık neredeyse her ComplicationData türü SmallImages özelliğini destekliyor.
  • DO_NOT_SHOW_WHEN_DEVICE_LOCKED, uyumlu bir kadrana cihaz kilitliyken özelliği görüntülememesini söyleyen ComplicationDisplayPolicy eklendi.
  • OEM'ler, Android T'den itibaren bir özellik isteğinin ComplicationRequest#isForSafeWatchFace tarafından sağlayıcıların manifest dosyasındaki android.support.wearable.complications.SAFE_WATCH_FACES meta verileri tarafından tanımlanan listedeki kadranlardan gelip gelmediğini belirleyebilecektir. Sağlayıcının TargetWatchFaceSafety.UNKNOWN dışında bir şey almak için com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE iznine ihtiyacı vardır.
  • UserStyleFlavors, deneysel olmayan bir özellik haline geldi.

Sürüm 1.2.0-rc01

18 Ekim 2023

androidx.wear.watchface:watchface-*:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.

Sürüm 1.2.0-beta02

6 Eylül 2023

androidx.wear.watchface:watchface-*:1.2.0-beta02 yayınlandı. 1.2.0-beta02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • SuspendingComplicationDataSourceService#onDestroy şu an açık. Sistemin varsayılan hava durumu özelliği desteğinin kaldırıldığını lütfen unutmayın.

API Değişiklikleri

  • "Hava durumu komplikasyonları için yeni bir veri kaynağı göster" ayarını geri alın. (I6f335)

Sürüm 1.2.0-beta01

23 Ağustos 2023

androidx.wear.watchface:watchface-*:1.2.0-beta01 yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Android T'den WearOS artık varsayılan bir hava durumu sistemi özelliğini destekleyecek.

API Değişiklikleri

  • Özellikler için varsayılan hava durumu sistem yedeği ekleyin. (Ia0994)
  • Bu yama, guava sarmalayıcılarıyla birlikte WatchFaceRuntimeService ve WatchFaceControlClient.createWatchFaceRuntimeControlClient öğelerini ekler. Bunlar, tanımını başka bir paketten yükleyen özel bir kadran türü olan kadran çalışma zamanlarını destekler. WearOS şu anda yalnızca Android Saat Yüzü Biçimi'nin çalışma zamanını desteklemektedir. (I2799f)
  • Bu yama aosp/2636578 ile ilgili bir takip olup int defs adını değiştirdiğimiz için WatchFaceType, CanvasType, TapType veya ComplicationsSlotBoundsType'ye bağlı kodların değiştirilmesi gerekmez. (I4098b)
  • API dosyaları, uyumluluğun giderilmesine ek açıklama eklemek için güncellendi. (I8e87a, b/287516207)
  • Bu yama, WatchFaceTypes içinde WatchFaceType, CanvasTypes içinde CanvasType, TapTypes içinde TapType ve ComplicationsSlotBoundsType içinde ComplicationsSlotBoundsType sabiti gösterir. (I3b85a, b/288750666)
  • WatchFace.OverlayStyle çok düşük bir kullanım oranına sahip ve OEM'ler tarafından iyi desteklenmemektedir. Bu nedenle, ileri bir tarihte kaldırmak amacıyla uygulamayı kullanımdan kaldırıyoruz. (I7344a)

Sürüm 1.2.0-alpha09

21 Haziran 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha09 yayınlandı. Sürüm 1.2.0-alpha09 bu kayıtları içerir.

Yeni Özellikler

  • RangedValueComplicationData.Builder artık DynamicFloat kabul ediyor. Ayrıca yeni bir DynamicComplicationText, ComplicationText alt sınıfı olarak kullanıma sunuldu. Her iki sınıf da dinamik ifadeleri ve desteklenen Wear 4 cihazlarda 1 Hz'de güncellenen platform bağlamalarını kullanabiliyor.

API Değişiklikleri

  • Günlük mesafe, günlük kalori ve günlük tabanlar için dinamik türler eklendi. Platform durumu kaynaklarının anahtarları artık PlatformHealthSources.Keys (Ib7637) kapsamındadır
  • Nabzı ve günlük adım sayısını sağlamak için PlatformDataProvider özelliğini 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'larını DynamicDataKey kullanacak şekilde güncelleyin. (If1c01)
  • Uygulamanın aktarım durumuna erişmek için AppDataKey, platform verilerine erişmek için PlatformDataKey ekleyin ve StateStore alanına ad alanı desteği ekleyin. (I7985e)
  • enable/disablePlatformSource yöntem, DynamicTypeEvaluator hedefinden kaldırıldı. Arayan kişi güncellemelerden sorumlu olmalıdır. (I78c6d)
  • Bağlanmış veri türlerinin boyutunu sınırlandırmaya izin ver. (Ie2966)

Sürüm 1.2.0-alpha08

19 Nisan 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha08 yayınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.

Yeni Özellikler

  • Ayrıcalıklı com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE özelliğine sahip özellik sağlayıcıları, Android T'den güvenli kadranlarda android.support.wearable.complications.SUPPORTED_TYPES öğesini geçersiz kılan androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES meta verilerini kaydedebilir. Dolayısıyla bir özellik sağlayıcı, güvenilir ve güvenilmeyen saat yüzlerine farklı türler sunabilir.

API Değişiklikleri

  • @Deprecated sınıfının mülke çoğaltılması (I882d1, b/271441831)
  • Enum.valueOf için değer parametresi adı değiştirildi (Ia9b89)
  • Enum valueOf parametresinden (I818fe) daha fazla atılmış istisna
  • SurfaceControlViewHost'ın temel alınarak oluşturulan ve arayanın kadrandan, istemci RemoteWatchFaceViewHost#renderWatchFace çağırdığında oluşturulan bir görünüm yerleştirmesine olanak tanıyan createRemoteWatchFaceView için renderWatchFaceToSurface kaldırıldı. (Ib311d)
  • renderWatchFaceToSurface öğelerini InteractiveWatchFaceClient, HeadlessWatchFaceClient ve EditorSession klasörlerine ekledik. Genellikle bu işlem, bit eşlem oluşturmaya göre daha etkili olacaktır. (Ieacad)
  • ObservableStateStore, StateStore olarak yeniden adlandırıldı. (Ieb0e2)
  • Daha fazla isteğe bağlı bağımsız değişkene izin vermek için kurucu bağımsız değişkenleri yerine DynamicTypeEvaluator.Builder eklendi. Bu bağımsız değişkenler artık varsayılan olarak boş olan ObservableStateStore değerini içerir. (I6f832)
  • DynamicTypeEvaluator içindeki parametrelerin sırası yeniden düzenlendi. (Ic1ba4)
  • Yürütücü, DynamicTypeEvaluator.bind yöntemlerine eklendi. (I346ab)
  • Dinamik tür bağlandıktan sonra değerlendirmenin tetiklenmesi için BoundDynamicType öğesine startEvaluation yöntemi ekledik. (I19908)
  • Ayrıcalıklı com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE özelliğine sahip komplikasyon sağlayıcılar androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES meta verilerini kaydedebilir. Bu veriler, güvenli kadranlarda android.support.wearable.complications.SUPPORTED_TYPES öğesini geçersiz kılar. (Id1c73)
  • CustomValueUserStyleSettings2 alan adının 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 yayınlandı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.

Yeni Özellikler

  • OEM'ler, Android T'den itibaren bir özellik isteğinin ComplicationRequest#isForSafeWatchFace tarafından sağlayıcıların manifest dosyasındaki android.support.wearable.complications.SAFE_WATCH_FACES meta verileri tarafından tanımlanan listedeki kadranlardan gelip gelmediğini belirleyebilecektir. Sağlayıcının, TargetWatchFaceSafety.UNKNOWN dışında bir şey almak için com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE iznine ihtiyacı vardır.

  • 12,5 KB'a kadar veri depolayabilen CustomValueUserStyleSetting2, Android T'den de kullanılabilir. CustomValueUserStyleSetting için önceki sınır 1 KB'tı. Artırılmış boyut sınırlarına rağmen, kadran geliştiricilerinin verileri küçük tutmaları önerilir. Düzenleme sırasında ayarlar Bluetooth üzerinden gönderilir ve Bluetooth bant genişliği sınırlıdır.

API Değişiklikleri

  • GlesRenderer ve GlesRenderer2 öğelerine, EGL14.eglCreateContext için iletilen EGL14.EGL_CONTEXT_CLIENT_VERSION değerini ayarlamanıza olanak tanıyan isteğe bağlı eglContextAttribList parametresini ekledik. (I2a83e)
  • Kadran kitaplıkları java.util.function.Consumer yerine androidx.core.util.Consumer hizmetine taşındı. (I273f5)
  • KT mülk erişimcilerinden gelen diğer uyarılar (Iff9d9)
  • Müşterinin eski kadran yerine destek emülasyonunu taklit etmesi gerekip gerekmediğini belirleyebilmesi için InteractiveWatchFaceClient.isComplicationDisplayPolicySupported eklendi. (I24c89)
  • isForSafeWatchFace için üç eyaletli IntDef olması gerektiğine karar verdik. (Ief2f7)
  • Android T için, OEM kullanımı için tasarlanmış ve com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE gerektiren ComplicationRequest.isForSafeWatchFace ürününü kullanıma sunduk. İstekte bulunan kadran, manifest dosyasında veri kaynağı tarafından belirtilen güvenli kadran listesinde yer alıyorsa sistem görüntüsündeki veri kaynaklarında "true" değerini döndürür. (I0cbb6)
  • Android T için 12,5 kb'a kadar veri depolayabilen CustomValueUserStyleSetting2 ekledik. CustomValueUserStyleSetting için önceki sınır 1 KB'tı. (I0b100)

Sürüm 1.2.0-alpha06

25 Ocak 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha06 yayınlandı. Sürüm 1.2.0-alpha06 bu kayıtları içerir.

Yeni Özellikler

  • Özellik platformu bağlama desteği ekleme çalışmaları devam ediyor. Bu platform henüz kullanıma hazır değil. Gelişmeler için takipte kalın.
  • Yeni özellik türleri olan GOAL_PROGRESS ve WEIGHTED_ELEMENTS için XML ComplicationSlot desteği ekledik.

Hata Düzeltmeleri

  • Samsung cihazlarda kadran düzenleyicisinin doğru şekilde yayınlanmadığı bir sızıntıyı düzeltir. (3b5987)
  • Bazen birden fazla favori saat yüzü arasında geçiş yaparken özelliklerin düzgün görüntülenmemesine neden olan hata düzeltildi. (b38ece)
  • perOptionScreenReaderNames ile saat yüzü kilitlenmelerine neden olan 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 yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.

Yeni Özellikler

  • Bir süre önce hiyerarşik UserStyleSettings desteği ekledik ve Android T'den bir hiyerarşide birden fazla ComplicationSlotsUserStyleSetting olması artık mümkün. Kullanıcının stil seçimlerine göre yalnızca bir ComplicationSlotsUserStyleSetting etkin olacak.

  • Bir screenReaderName alanı ekleyerek ListOption ve ComplicationSlotsOption için ekran okuyucu desteğini iyileştiriyoruz. Android T'den önce bu alanın tamamlayıcı düzenleyiciler tarafından yoksayılacağını unutmayın.

API Değişiklikleri

  • Düzenleyiciler tarafından kullanılması için ListOption ve ComplicationSlotsOption alan adına yeni bir isteğe bağlı screenReaderName alan ekledik. Android T'den önceki cihazlarda tamamlayıcı düzenleyiciler tarafından yoksayılır. (I75326)
  • Android T'den, aynı anda en fazla bir tanesi etkin olabildiği sürece stil hiyerarşisinde birden fazla ComplicationSlotsUserStyleSettings artık desteklenmektedir. Varsa etkin ComplicationSlotsOption öğesini bulmaya yardımcı olmak için UserStyleSchema öğesine findComplicationSlotsOptionForUserStyle yardımcı program işlevi ekledik. (Ic2b06)
  • RangedValuesTypes, RangedValueComplicationData adlı nesnenin tamamlayıcı nesnesine alındı ve TYPE_UNDEFINED, TYPE_RATING olarak yeniden adlandırıldı. Ayrıca yeni bir TYPE_PERCENTAGE eklendi. (I55d02)
  • DynamicFloat denemesini FloatExpression olarak yeniden adlandırdık 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 yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • Android T için GoalProgressComplicationData ve WeightedElementsComplicationData olmak üzere iki yeni özellik türü için destek ekledik.
  • GoalProgressComplicationData RangedValueComplicationData ile benzerdir. Ancak değerin hedefi aşmasına izin verilir (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 bazı sonuçlar doğurabilir.
  • GoalProgressComplicationData, pasta grafikleri ve basit verilerin benzer dökümlerini destekler.
  • RangedValueComplicationData için ColorRamps için isteğe bağlı destek ekledik.
  • Android T için ComplicationPersistencePolicy ve setCachePolicy özelliklerini ComplicationData ürününe ekledik.Bu sayede sağlayıcı, şu anda bir özelliğin devam edip etmediğini (ör. yeniden başlatma sonrasında önbelleğe alınıp alınmayacağını) kontrol edebilir. Çoğu özelliğin önbellek kontrolü ayarlanmasına gerek yoktur, ancak bunu yapmak sık sık güncellenen bazı komplikasyonlar (ör. sağlık verisi komplikasyonları) için eski verilere sahip köşe vakalarını düzeltebilir. Ayrıca DO_NOT_SHOW_WHEN_DEVICE_LOCKED, uyumlu bir kadrana cihaz kilitliyken özelliği görüntülememesini söyleyen ComplicationDisplayPolicy işlevini de ekledik. (Ic9574)

API Değişiklikleri

  • GoalProgressComplicationData, WeightedElementsComplicationData ve ColorRamp artık deneme aşamasında değil. (Ica9e2)
  • ComplicationPersistencePolicy ve ComplicationDisplayPolicy artık gerektiği gibi T API'leri olarak işaretleniyor. (I31d88)
  • Kullanımdan kaldırılan ComplicationSlotOverlay kurucusu, artık Java'dan tekrar çağrılabilmesine izin veren DeprecationLevel.WARNING özelliğine sahiptir. (Ib308c)
  • ComplicationRequestListener, CanvasComplication, ComplicationTapFilter ve InteractiveWatchFaceClient ile ilgili bazı Java uyumluluk sorunlarını @JvmDefaultWithCompatibility ile notlandırarak (Id94fc) düzelttik
  • Deneysel ProtoLayoutComplicationData ve ListComplicationData kaldırıldı. Bu uygulamaların geliştirici hikayesi net değildi. İleride tekrar ziyaret etmeyi umuyoruz. (I9df05)
  • RangedValueComplicationData hesabınıza ValueType ekledik. WeightedElementsComplicationData artık arka plan rengini destekliyor. İşlevleri WeightedElementsComplicationData alt kümesi olduğundan DiscreteRangedValueComplicationData kaldırıldı. (I6446c)

Hata Düzeltmeleri

  • isForScreenShot öğesini eşittir ve karma koduna ekleyin. onRenderParametersChanged için doğru isForScreenshot değeri verildiğinden emin olun (I04a41)
  • Gözetimsiz istemcilerden WatchFaceControlService ile ilgili 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 yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • Yeni özellik yok, ancak kadran düzenleyiciyle ilgili birkaç hatayı düzelttik.

API Değişiklikleri

  • rootUserStyleSettings olarak kullanımdan kaldırılan UserStyleSchema.userStyleSettings, deneysel olmayan bir sürüm haline geldi (Ie96e3)
  • rootUserStyleSettings adlı öğeyi deneme sürümünden (I8d6b3) taşı
  • Tüm sistemler tarafından desteklenmediği için WatchFaceColors hesabını deneysel olarak işaretledik (I6d75d)
  • IntDef ile çalışması için DisconnectReasons API'sini genel API'de kullanıma sunun. (I791f8)

Hata Düzeltmeleri

  • SysUI ölürse kol saati düzenleyicide açık olan tüm cihazları kapatın. Sistem, kullanıcı stili değişikliklerinin devam etmesi için SysUI kullandığı için SysUI kapanıp kadran düzenleyicisi kapanmazsa kadran tutarsız bir durumda kalabilir.(ba762a
  • ComplicationDataSourceInfoRetriever ürününde, kotlin eş kotin devam etmesinin gckök işlevi görüp düzenleyici etkinliğini tuttuğu bellek sızıntısı düzeltildi.(33ee06)

Sürüm 1.2.0-alpha02

21 Eylül 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha02 yayınlandı. Sürüm 1.2.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • Bazı kadranlar UserStyle dışında bir yapılandırmaya sahiptir ve bu yapılandırmalar kendisini görsel olarak etkiler (ör. arka plan fotoğrafı seçme). Kadranın güncellenmiş önizleme resmi istemesine olanak tanıyan Renderer.sendPreviewImageNeedsUpdateRequest özelliğini ekledik. Bu özelliğin çalışması için ilgili bir sistem güncellemesi gerektiğini unutmayın.

  • Ayrıca, renk paletini sisteme göre seçebilecek saat yüzlerine yönelik bir API de ekledik. Bunun, bir takip yaması kullanılarak deneysel hale getirildiğini unutmayın.

  • Artık neredeyse tüm ComplicationData türleri SmallImages destekleniyor.

API Değişiklikleri

  • Duvar kağıdı yöneticisi bazen bir motordan ayrılıp başka bir motor oluşturabilir. DisconnectReason int def ekledik ve ClientDisconnectListener öğesini, DisconnectReason içeren yeni bir yöntemle genişlettik. Böylece işleyicinin motor ayrılmalarını gözlemlemesini sağladık. (I45cce)
  • ComplicationSlotOverlay oluşturucuya iki isteğe bağlı parametre (nameResourceId ve screenReaderResourceId) eklendi (I157e8)
  • PreviewImageUpdateRequestedListener içeren yeni getOrCreateInteractiveWatchFaceClient aşırı yüklemesi için bir guava sarmalayıcı ekledik. (Ic31f0)
  • Durumu UserStyleSchema dışında olan kadranlar için kullanışlı bir özellik olan Renderer.sendPreviewImageNeedsUpdateRequest özelliğini ekledik.Bu durum, saatin görünüşünü etkiler (ör. seçilebilir bir arka plan resmi olan kadranı). İstemci tarafında, bu istekleri gözlemlemek için PreviewImageUpdateRequestedListener parametresini getOrCreateInteractiveWatchFaceClient öğesine isteğe bağlı bir parametre olarak ekledik. (Iff44a)
  • WatchFaceColors gösterimini göstermek için API'yi basitleştirdik. Artık saat yüzünün ayarlayabileceği watchFaceColors adlı basit bir özellik bulunmaktadır. Artık bu özellik, stil değişikliklerine yanıt olarak gerektiğinde güncellenmelidir. Renk değişikliklerini gözlemlemek için WallpaperManager kullanmak yerine, InteractiveWatchFaceClient öğesine OnWatchFaceColorsListener ekledik. (I490bc)
  • En belirgin üç kadran rengini içeren bir WatchFaceColors sınıfı ve Oluşturucu'ya watchfaceColors ve notifyWatchFaceColorsChanged açık yöntemlerini ekledik. Bunlar, sistemin WallpaperManager.getWallpaperColors aracılığıyla kadran renklerini almasını sağlar. (I3d611)
  • ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData (ve deneme amaçlı DiscreteRangedValueComplicationData, GoalProgressComplicationData ve WeightedElementsComplicationData) artık SmallImages desteklenmektedir. Bir kadran, bir özelliği birden fazla renkle oluşturmayı tercih ettiğinde artık tek renkli bir resim kullanması gereken çok renkli SmallImage kullanma seçeneği de sunuluyor. (I257df)
  • PreviewImageUpdateRequestedListener öğesini Consumer<> olacak şekilde değiştirin (Ia875d)
  • Özel Tekli Soyut Yöntem (SAM) türü OnWatchfaceColorsListener yerine genel Java SAM türünü (Tüketici) (I0c489) kullanın
  • PreviewImageUpdateRequestedListener belirtilmeyen eski getOrCreateInteractiveWatchFaceClient ve listenableGetOrCreateInteractiveWatchFaceClient yöntemleri kullanımdan kaldırıldı. (Iec502)

Hata Düzeltmeleri

  • DisconnectReason.BINDER_DIED, DisconnectReason.ENGINE_DIED olarak yeniden adlandırıldı. (I4eb0e)

Sürüm 1.2.0-alpha01

10 Ağustos 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha01 yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Çeşitli yeni özellik biçimleri için deneysel destek ekledik. Bu, aktif bir geliştirme alanıdır. Bu yeni biçimler önceden haber verilmeden değiştirilebilir ve şu anda CanvasComplicationDrawable tarafından oluşturucu desteği sunulmamaktadır.
  • Özellik alanlarına, küçük özelliklere dokunmayı kolaylaştırmak için isteğe bağlı kenar boşlukları da ekledik.

API Değişiklikleri

  • Deneysel BoundingArc sınıfı artık sabittir. (If624a)
  • Küçük özelliklere dokunmak zor olabilir. Bu sorunu azaltmak amacıyla, oluşturmayı etkilemeden dokunulabilir alanı artıran kenar boşlukları desteği sunmaya başladık. Belirtilmediği sürece (kodda veya XML aracılığıyla) ComplciationSlots sıfır boyutlu kenar boşluklarına sahiptir. (I14089)
  • getComplicationSlotInflationFactory(CurrentUserStyleRepository) imzası, boş olmayan bir fabrika örneği döndürülecek şekilde değiştirildi. Daha önce null değerinin döndürülmesi bir hataydı. Dolayısıyla bu, API sözleşmesini daha net bir hale getirmektedir. (I0fcc0)
  • createComplicationSlotsManager ile tutarlı olması için WatchFaceService.getComplicationSlotInflationFactory yöntemine currentUserStyleRepository bağımsız değişken ekledik. (I2ddd2)
  • UserStyleFlavors, deneysel olmayan özellik haline geldi. (I69cdc)
  • RangedValueComplicationData türündeki deneme amaçlı ValueType öğesini RangedValueComplicationData öğesinden kaldırdık ve bunun yerine tam sayı aralığı ve değer dışında RangedValueComplicationData benzeri deneme amaçlı DiscreteRangedValueComplicationData öğesini kullanıma sunduk. Ayrıca, minimum olarak örtülü olarak sıfır olduğu ve değerin targetValue değerinden büyük olmasına izin verilen bir hedefe yönelik ilerleme durumu için yapılmış olması dışında RangedValueComplicationData ile benzer olan deneme amaçlı GoalProgressComplicationData özelliğini de kullanıma sunduk. Tüm RangedValue varyantlar için en az bir monochromeImage, metin veya başlık belirtilmelidir. (I9590c)
  • Sistem yazılımında bunun bir kullanım alanı olmadığından boundsWithMargins öğesini ComplicationSlotState alan adından kaldırdık. (I42e26)
  • İsteğe bağlı metin/başlık/resim ile birlikte bir Elementler (ağırlık ve renk çiftleri) dizisinden oluşan WeightedElementsComplicationData için deneysel destek ekledik. Bunlar, genellikle etiketleri oluşturmak için karmaşıklık olmadığından bağlam açısından renklerin anlamlı olması gereken bir pasta grafik olarak görüntülenebilir. (I87eea)
  • İsteğe bağlı olarak RangedValueComplicationData ve GoalProgressComplicationData tarafından kullanılan deneysel ColorRamps, artık yedi adede kadar renkten oluşan bir dizi ve renkler arasında düzgün bir şekilde aralama yapılıp yapılmayacağını veya eşit boyutlu düz renk adımlarının oluşturulması gerekip gerekmediğini belirten bir işaret belirtmenize olanak tanıyor. (I9f5bf)
  • RangedValueComplicationData.drawSegmented, aralıklı değere anlamsal anlam sağlayan ve komplikasyon oluşturucu tarafından stili etkilemek için kullanılabilen ValueType IntDef ile karşılık gelen bir int olan valueType olarak değiştirildi. (I0616b)
  • RangedValueComplicationData için isteğe bağlı ColorRanges için deneysel destek ekledik. Normalde özellikler kadranın seçtiği renklerde oluşturulur, ancak bazen renkleri ayarlamak için en iyi seçenek, örneğin belirli bir anlamsal anlam olduğunda ComplicationDataSource. Ör. sıcaklık değeri için kırmızıdan maviye. (I5153a)
  • RangedValueComplicationData öğesine deneysel bir drawSegmented ipucu ekledik. Bu, oluşturuculara segmentlerle aralıklı değer göstergesini çizmeleri için sinyal gönderir. Burada 1 segment = 1 birimdir. (I7d7c1)

Hata Düzeltmeleri

  • Önceden tanımlanmış bir ekran koordinat sistemine göre ComplicationSlotBounds tanımlama özelliğini ekledik. (I0985d)

Sürüm 1.1

Sürüm 1.1.1

10 Ağustos 2022

androidx.wear.watchface:watchface-*:1.1.1 yayınlandı. 1.1.1 sürümü bu kayıtları içerir.

  • Bu, bir hata düzeltme sürümüdür. 1.1.0 sürümünü kullananların yeni sürüme geçmelerini önemle tavsiye ederiz.

Hata Düzeltmeleri

  • Kadranı başlatma işlemi eşzamansız olarak yapılır ve kadran hazır olmadan önce bir özellik elde edilirse kadran pendingInitialComplications listesine eklenir ve daha sonra uygulanır. Maalesef pendingInitialComplications çok erken uygulandı. Bu da kadranı başlatma işlemi sırasında, özelliklerin pendingInitialComplications özelliğine eklenip yoksayılacağı bir zaman aralığı olduğu anlamına geliyordu. Bu sorun artık düzeltildi. Ayrıca bu yama, ComplicationRenderer ürününün yer tutucuları yanlış bir şekilde eşzamansız olarak yüklemeye çalıştığı, bunun da derleme grafiğinin hiç güncellenmemesine neden olan bir hatayı düzeltir. Son olarak bu yama, birden fazla pendingInitialComplications öğesinin birleştirilmesi gereken teorik hatayı düzeltir. (0d03ba3)

  • getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance adlı kullanıcının kilidi gerekenden daha uzun süre tuttuğu InteractiveInstanceManager cihazında olası kilitlenmeyi düzeltin. Genellikle engine.setUserStyle ürününün hızlı olmasını bekleriz ancak herhangi bir nedenle hızlı olmazsa bir kilitlenme/ANR ile karşılaşabiliriz. Bu yama, gereksiz işleri kilitten çıkararak kilitlenme potansiyelini ortadan kaldırır.(5a2adca)

  • WatchFaceService uygulamasına neden olan sorunları düzeltin. WakeLock, bazen WatchFaceService bilgisini koruyabilir ve release() çağrısı ekleyerek bu sorunu düzeltebilir. Ayrıca StateFlows, WatchFaceService özelliğini koruyarak temel CoroutineScopes düzeltmelerini iptal edebilir.(fd48138)

  • awaitDeferredWatchFace* kampanyasına zaman aşımları ekleyin ve watchfaceOverlayStyle NullPointerException sorununu düzeltin. Normal koşullarda bu, yeni yükleme sonrası ve CPU yükünün yüksek olduğu DirectBoot senaryoları dahil olmak üzere zaman aşımına uğramamalıdır. getWatchfaceOverlayStyle, close() tarihinden sonra çağrılırsa da NPE sorununu düzelttik.(a4c3a5a)

Sürüm 1.1.0

15 Haziran 2022

androidx.wear.watchface:watchface-*:1.1.0 yayınlandı. 1.1.0 sürümü bu kayıtları içerir.

1.0.0'dan sonraki önemli değişiklikler

Geliş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 kadranda ve tamamlayıcı düzenleyicilerde kullanılmak üzere ayrı simgeler belirtebilirsiniz.
  • Bir kadranın birden fazla örneği için kaydolma desteği vardır. Her örneğin, tüm API yüzeylerinde kullanılabilen benzersiz bir kimliği vardır.
  • Artık düzenleyicilerde kullanılmak üzere ComplicationSlots için okunabilir adlar belirtebilirsiniz.
  • "Aromalar" için deneysel destek, tamamlayıcı düzenleyiciden görülebilecek, özenle seçilmiş stillerden oluşan bir seçkidir.
  • Kadranın iki örneğini düzenlerken, kadran örnekleri artık kaynakları paylaşabiliyor ve bellek tasarrufu yapabiliyor
  • Kadran düzenleyicisinde özellik seçerken mevcut sağlayıcının önceden seçilmiş olması gerekir.

İyileştirilmiş Özellikler:

  • Artık birincil ve ikincil veri kaynakları için ComplicationType belirterek geliştiricilere kullanıma hazır deneyim için daha fazla esneklik sağlayabilirsiniz.
  • Kadrana aktarılacak ve otomatik olarak güncellenebilecek, zaman sınırlamalı bir veri dizisi sağlayan ComplicationDataTimeline özelliğini ekledik. Örneğin, bugünün farklı saatlerdeki hava durumu tahmini veya yaklaşan birden çok takvim etkinliği.
  • Özellik sağlayıcısının ComponentName bölümü ComplicationData kapsamındadır.
  • Özellikler artık önbelleğe alınıyor. Böylece, kadranlar arasında geçiş yaparken daha iyi bir deneyim sunulur.

Diğer değişiklikler:

  • UserStyleSchema ve ComplicationSlots artık XML'de tanımlanabilir. Bu, kadran yapısını basitleştirir ve sistemden daha hızlı meta veri sorgularına olanak tanır.
  • Kadranlar artık sistem yer paylaşımını oluşturmak için kullanılan renkleri etkileyebilir.

Sürüm 1.1.0-rc01

18 Mayıs 2022

androidx.wear.watchface:watchface-*:1.1.0-rc01 yayınlandı. 1.1.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Kadran XML desteğinde kullanılabilirlikle ilgili bazı düzenlemeler yaparak ComplicationSlotBounds ve destekleyici referansların belirtilmesini kolaylaştırdık. Uç özelliği (BoundingArc) ile ilgili denemeler devam ediyor. Söz konusu özelliğin şu anda kullanılması önerilmese de drawHighlight bölgesinde kullanıma sunulmaktadır.

API Değişiklikleri

  • BoundingArc parametresini kabul eden deneysel bir drawHighlight eklentisi ekledik. (I705f8)
  • Kadran XML'i artık kaynak referanslarını destekliyor. Aynı sabit değerleri hem XML'de hem de kodunuzda kullanmanıza olanak tanır. (I3ef61)
  • ComplicationSlotBounds öğesini center_x, center_y, size_x ve size_y biçiminde tanımlama özelliğini ekledik. Artık kaynak referanslarını kullanarak farklı birimler (ör. dp) kullanmak da mümkündür. (Iace98)

Hata Düzeltmeleri

  • Görevleri yanlış bağlamda çalıştıran runBlockingWithTracing sorununu düzeltin.(4f595fe)
  • BaseEditorSession.close öğesini eşzamanlı hale getirin. BaseEditorSession.close öğesinin eşzamansız olmasıyla ilgili sorun, ComplicationDataSourceInfoRetriever öğesini çok geç yayınlamamız ve bu nedenle logcat'te spam uyarısı verilmesidir. Bu muhtemelen zararsızdır ancak logcat spam'leri dikkat dağıtıcıdır ve kaçınılması gerekir.(35a5308)

Sürüm 1.1.0-beta02

11 Mayıs 2022

androidx.wear.watchface:watchface-*:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Yeni ComplicationData türleri için deneysel destek ekledik. Bu türler henüz kullanıma hazır değil ancak bu alanı takip edin.

API Değişiklikleri

  • Bir kenar özelliği (komplikasyon) alanının geometrisini tanımlayan deneysel bir sınıf olan BoundingArc'i ekledik. Bu, ComplicationSlot etiketine eklendi ve ComplicationSlotState ve WatchFaceMetadataClient iş akışlarına iletildi. (I61a40)
  • UserStyleSetting XML'de ayarları devralma özelliğini ekledik. Ayrıntı düzeyini azaltmanıza ve kadranlar arasında belirli bir ayarı paylaşmanıza olanak tanır. (Ief841)
  • İki yeni deneme amaçlı ComplicationData türü ekledik: ListComplicationData ve ProtoLayoutComplicationData. Şu anda bu türlerden ikisi için de oluşturma desteği bulunmamaktadır ve WearOS, ComplicationDataSource's manifestine eklendiğinde şu anda bu türleri tanımaz. (I1811c)

Hata Düzeltmeleri

  • TimeLineEntry türünün serileştirme işlemi düzeltildi. TimeLineEntry türünü serileştirmiyorduk. Bu durum, NoData türündeki önbelleğe alınmış TimeLineEntries öğesinin, mevcut olmayan zorunlu alanlara erişildiğinde, üst özellik türünün yanlış bir şekilde NPE'lere yol açacağı şeklinde yorumlanacağı anlamına geliyordu. (55ffdf5)
  • setComplicationData ürününün zaman çizelgesi alanlarını bırakmasına neden olan hata düzeltildi(fb392f5)
  • runBlockingWithTracing ürününün nadiren NPE'ye(12ca62e) yol açtığı bir hatayı düzeltir
  • Bir komplikasyon alırken bazen ClassNotFoundException: android.support.wearable.complications.ComplicationText almamıza neden olan hata düzeltildi.(217942d9)
  • GlesRenderer.backgroundThreadInitInternal işlevinde, yalnızca EGL14.eglCreateContext arandığında onBackgroundThreadGlContextCreated çağrısının yapıldığı hata düzeltildi. Ekran görüntüsünde verticalFlip kaynaklı görsel bir hatanın bulunduğu başka bir hatayı düzeltir.(c674ad2)
  • Yanlış paketten yükleniyordu, WatchFaceService XML sürüm kontrolünü düzeltin.(dfa06f3)
  • Yer tutucu kablo biçimi artık bir iç paket kullanıyor. Yer tutucuların, içteki gizli a.s.w.c.ComplicationData öğesini kullanabilecek mevcut saat yüzlerini bozmasını istemeyiz. Önceden NoDataComplication verilerinin kablo biçimi, yer tutucuyu normal alanlarda saklıyordu (eski saat yüzleri amaçlanmayan yer tutucu dizesine neden olacağından sorun yaşanıyordu). Bunun yerine, bunu tamamen izole etmek için bir iç paket kullanıyoruz.(d5e7bd2)

Sürüm 1.1.0-beta01

20 Nisan 2022

androidx.wear.watchface:watchface-*:1.1.0-beta01 yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Artık WatchFaceMetadataClient yöntemleri (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) ve HeadlessWatchFaceClient.getUserStyleFlavors, WatchFaceException yerine işaretli RuntimeException hatası veriyor. (I0718a)
  • WatchFaceMetadataClient.WatchFaceException, yeniden kullanılabilmesi için sınıftan taşındı. (I4e869)

Hata Düzeltmeleri

  • ComplicationSlotBounds kısmi olarak gönderildiğinde WatchFaceMetadataClient artık kilitlenmeyecek.(Iaafd)

Sürüm 1.1.0-alpha05

6 Nisan 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha05 yayınlandı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.

Yeni Özellikler

  • Artık ComplicationData.dataSource öğesini inceleyerek hangi veri kaynağının ComplicationData gönderdiğini anlayabilirsiniz. Bazı saat yüzleri, özellik görünümünü özelleştirmek için bunu kullanabilir. (I44a73)

API Değişiklikleri

  • Renderer.CanvasRenderer ve Renderer.GlesRenderer kullanımdan kaldırılan Renderer.CanvasRenderer2 ve Renderer.GlesRenderer2 ile birlikte oluşturma yöntemlerine aktarılan SharedAssets desteklenir. Java birlikte çalışabilirlik için ListenableCanvasRenderer2 ve ListenableGlesRenderer2 özelliklerini kullanıma sunduk. (I31ffa)
  • @WatchFaceFlavorsExperimental aromaları tanımlama özelliği eklendi. Önceden yapılandırılmış kadranlar listesi (I04dd0)
  • Renderer.sharedAssets artık bir StateFlow ve kullanılmayan Renderer.SharedAssetsFactory (I12ac5) kaldırıldı
  • UserStyleSchema.userStyleSettings desteği sonlandırıldı (Iba7e3)
  • HeadlessWatchFaceClient öğesinin, özet karmasını hesaplamadan önce şemayı AIDL üzerinden geçirmenin neden olduğu nispeten düşük ek yükü önlemesini sağlayan HeadlessWatchFaceClient.getUserStyleSchemaDigestHash eklendi. (I33597)
  • isUserStyleSchemaStatic özelliğini WatchFaceMetadataClient uygulamasına ekledik. Bu koşul, yalnızca saat yüzü APK'sı güncellenmediği sürece UserStyleSchema öğesinin değişmeyecek olmasına güvenilmesi durumunda geçerlidir. (I45a3f)
  • Şemanın özet karmasını hesaplayan getDigestHash öğesini UserStyleSchema öğesine 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 (I9ba5d) olarak yeniden adlandırıldı
  • UserStyleSetting.OnWatchEditorData uygulaması UserStyleSetting.WatchFaceEditorData olarak yeniden adlandırıldı. Bu uygulama, sadece kadran üzerinde düzenleyici tarafından kullanılan verileri içeriyor. (If3afb)

Sürüm 1.1.0-alpha04

9 Mart 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha04 yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Güncel ComplicationData her zaman kullanılamayabilir (ör.süresi dolan önbelleğe alınmış ComplicationData), bu nedenle NoDataComplication öğesini isteğe bağlı bir yer tutucu ComplicationData ile genişlettik ve ComplicationText.PLACEHOLDER, MonochromaticImage.PLACEHOLDER, SmallImage.PLACEHOLDER, PhotoImage.PLACEHOLDER öğelerini ekledik. Bu değerlerin yalnızca NoDataComplicationData yer tutucu bağlamında kullanılmasına izin verilir. Seçilirse bu yer tutucuların gri kutular/yaylarla oluşturulması önerilir. (I6285d)
  • Referans Anında Arama'dan sonraki, özelliğin herhangi bir alanının değişebileceği bir sonraki Anında Arama'yı bildiren ComplicationData.getNextChangeInstant ekledik. Bu, komplikasyon güncellemelerine ilişkin çerçeveleri planlamak için dahili olarak kullanılır. Örneğin, bir kadran normalde dakikada bir güncelleniyorsa, kol saatini durdurma özelliğini ayarlamak onun saniyede bir güncellenmesine neden olur. (I7ceb2)
  • EditorSession.watchFaceId artık tüm API düzeylerinde kullanılabilir. Ayrıca değeri artık her zaman WatchState.watchFaceInstanceId ile tutarlı olacaktır. (I323b9)
  • Temel sorun çerçevede çözüldüğü için 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 kadranların PendingIntents ürününün etkinleşmesi için özel bir şey yapmasına gerek yoktur. (I1f2e8)
  • Oluşturma işlemi ekran görüntüsü için yapıldıysa doğru olacak RendererParameters.isForScreenShot değerini ekledik. Animasyonlu bazı saat yüzlerinin en iyi sonuçları elde etmek üzere ayarlamalar yapmak için bunu bilmesi gerekir. (I96d99)
  • Sorunun ne olduğuyla ilgili fikir vermek için WatchFaceException etiketine WatchFaceExceptionReason ekledik. (I01d15)
  • ComplicationDataSourceService.onImmediateComplicationRequest kaldırıldı. Bunun yerine, sağlayıcının hızlı bir şekilde yanıt vermesi (ideal olarak < 100 ms. içinde yanıt vermesi) gerektiğini belirtmek için ComplicationRequest.immediateResponseRequired eklendi. Bu işlevin, ayrıcalıklı com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE izninin arkasında korunduğunu unutmayın. (Ie6b23)
  • Core ve appcompat içindeki null değer, Tiramisu DP2'yle (I0cbb7) eşleşecek şekilde güncellendi

Hata Düzeltmeleri

  • Şema doğrulaması başarısız olursa kadran uygulaması bir istisnayla kilitleniyor (Ia400f)

Sürüm 1.1.0-alpha03

9 Şubat 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha03 yayınlandı. Sürüm 1.1.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • Hiyerarşik stil şemalar için deneysel destek ekledik. androidx.wear.watchface.style.UserStyleSetting.Option öğesine, subSettings başlangıçta yalnızca ListOption tarafından kullanılan yeni bir mülk ekledik. Bu, stiller hiyerarşisinin Düzenleyici kullanıcı arayüzleri tarafından kullanılmak üzere açıklanmasına olanak tanır. Temel UserStyle değiştirilmez ve Map<String, ByteArray> olarak kullanılmaya devam eder. (Iaf6f4)
  • Kadranın sistem durumu yer paylaşımının oluşturulmasını yapılandırmasına olanak tanıyan WatchFace.OverlayStyle özelliğini ekledik. (I8520d)
  • CanvasRenderer için isteğe bağlı yeni bir oluşturucu parametresi (clearWithBackgroundTintBeforeRenderingHighlightLayer) kullanıma sunduk. True (doğru) değerine ayarlanırsa tuval, arka plan tonlaması rengiyle temizlenir. (Ie01e5)
  • Özellik veri kaynaklarının herhangi bir yapılandırma olmadan varsayılan bir değer sağlayabileceklerini belirtmesine olanak tanıyan androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED meta veri anahtarı eklendi (Icc0d4)
  • Kadran düzenlenirken hem etkileşimli hem de gözetimsiz bir örnek olması yaygın bir durumdur. Bellekten tasarruf etmenize yardımcı olmak için kadran oluşturucunun örnekler arasında sabit veriler (ör. dokular ve gölgelendiriciler) paylaşmasına olanak tanıyan Renderer.SharedAssets özelliğini kullanıma sunduk. GlesRenderer.setEglConfig ve GlesRenderer.setEglDisplay desteği sonlandırıldığı için bunların hiçbir zaman ayarlanabilir olması amaçlanmamıştır ve böyle yapılması tanımlanmamış davranışa yol açacaktır. (I0d9e7)
  • setNameResourceId ve setScreenReaderNameResourceId öğelerini (referans dizesi kaynakları) ComplicationSlot.Builder ve androidx.wear.watchface.client.ComplicationSlotState reklam grubundaki karşılık gelen alıcıları ekledik. Bu, sistemin, düzenleyicilerde ve ekran okuyucularda kullanmak üzere ComplicationSlots adlarını getirmesine olanak tanır. (If6c6a)
  • WatchfaceMetadataClient.getUserStyleSchema ve getComplicationSlotMetadataMap artık RemoteException yerine WatchFaceException fırlatıyor. (I86f11)
  • onSynchronousComplicationRequest ve ComplicationDataSourceService içindeki ilgili işlevler onImmediateComplicationRequest olarak yeniden adlandırıldı... (I87ba0)
  • Kadran düzenleyicilerinin, tamamlayıcı düzenleyicilere kıyasla çok daha az ekran alanı vardır. Bu nedenle, kadran düzenleyicilerinde farklı simgelerin desteklenmesi önerilir. Bu yama, tüm UserStyleSettings ve uygun olduğu 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 oluşturucusuna @JvmOverloads öğesini ekledik. (I2974a)

Hata Düzeltmeleri

  • ListenableGlesRenderer kurucusu doğru şekilde @Throws(GlesException::class) olarak işaretlendi ve bu sınıfı Java'da genişletmek artık mümkün. (Iac6d0)
  • PhotoImageComplicationData TapAction'ın doğru işlenememesiyle ilgili hata düzeltildi (I1cc30)

Sürüm 1.1.0-alpha02

12 Ocak 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha02 yayınlandı. Sürüm 1.1.0-alpha02 bu kayıtları 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 karma kodunu, eşittir ve toString yöntemlerini geçersiz kılarak bunların daha kolay kullanılmasını sağlıyor.

API Değişiklikleri

  • WatchfaceMetadataClient yöntemleri bir kez daha uygun durumlarda RemoteExceptions hatası vererek istemci kodunun kadrandaki hataları yakalamasını kolaylaştırır. (I78785)
  • ComplicationData ve alt sınıflar artık karma kodu, eşittir ve toString özelliklerine sahip. (I24bc6)

Sürüm 1.1.0-alpha01

15 Aralık 2021

androidx.wear.watchface:watchface-*:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • UserStyleSchema ve ComplicationSlots artık XML'de tanımlanabilir. Bu, kadran yapısını 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'lerin bir parçası olacaktır. Sistem, isteğe bağlı olarak, her biri kullanıcı tanımlı farklı stil seçeneklerine sahip, kadranların birden fazla örneğini destekleyebilecektir. Bunlar, saat yüzü seçicide gösterilir. Bunu etkinleştirmek için kadranın manifest dosyasında aşağıdaki meta veri etiketini içermesi gerekir.

        <meta-data
            android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED"
            android:value="true" />
    
  • Bazı kadranlarda bu durum ve birden fazla örneği desteklemek amacıyla kadranların örnek kimliği artık WatchState.watchFaceInstanceId aracılığıyla belirtilemez. UserStyle

  • Özelliklerin yüklendikten hemen sonra görüntülenmesi için ComplicationData önbelleğe alınıyor. ComplicationData bazen sistem tarafından bellekte önbelleğe alınır, bazen de kadran kitaplıkları tarafından serileştirilir. Serileştirildiğinde ilişkili TapAction kaybolur.Bu durumda ComplicationData.tapActionLostDueToSerialization, true değerini döndürür ve kadranın, dokunulamayacağını belirtmek için özelliği farklı bir şekilde (ör. gri veya yarı şeffaf) oluşturması gerekir. Sistem en kısa sürede güncellenmiş ComplicationData öğesini tapAction ile gönderecektir.

  • Bazı ComplicationData özelliklerinin uzun süre önbellekte tutulmaması gerekiyor. Bunu desteklemek için daha genel bir özellik (ComplicationDataTimeline) ekledik. Bu, önbelleğe alınabilen ve otomatik olarak güncellenebilen saat yüzüne yayınlanacak bir zaman sınırlamalı ComplicationData dizisi sağlamak için kullanılabilir. Örneğin, bugünün farklı saatlerdeki hava durumu tahmini veya yaklaşan birden çok takvim etkinliği. ComplicationRequestListener, bu verileri döndürmek için kullanabileceğiniz yeni bir onComplicationDataTimeline yöntemiyle genişletildi.

  • Birincil ve ikincil veri kaynakları için ComplicationType belirtebileceğiniz şekilde DefaultComplicationDataSourcePolicy uzatıldı.

  • Saat kadranı göründüğü ve harici olduğu durumlarda, özelliğin normalden daha yüksek sıklıkta güncellendiği eşzamanlı özellik sağlayıcıları için destek ekledik. Not: Senkronize özellik sağlayıcılarının, bellek yetersizliği sorunları nedeniyle sınırlı kullanımı olabilir.

  • PendingIntentTapListener değişiklikleri büyük olasılıkla geri döndürülecektir çünkü temel sorunu çözdük (ana sayfa düğmesine basıldıktan sonra saat yüzünün etkinlikleri 5 saniye boyunca başlatması mümkün değildir).

API Değişiklikleri

  • ComplicationData.isCached, tapActionLostDueToSerialization olarak değiştirildi. Bu, özellik alanının dokunulamayacağını belirtmek için farklı şekilde oluşturulması gerekip gerekmediğini belirlerken daha yararlı olur. (I6de2f)
  • ComplicationDataTimeline, wear-complication-data-source koleksiyonuna eklendi. Bu, önbelleğe alınabilen ve otomatik olarak güncellenebilen saat yüzüne yayınlanacak bir zaman sınırlamalı ComplicationData dizisi sağlamak için kullanılabilir. Örneğin, bugünün farklı saatlerdeki hava durumu tahmini veya yaklaşan birden çok takvim etkinliği. ComplicationRequestListener, bu verileri döndürmek için kullanabileceğiniz yeni bir onComplicationDataTimeline yöntemiyle genişletildi. Veri kaynağı hizmetlerini askıya almak için yeni bir kotlin sarmalayıcı SuspendingTimelineComplicationDataSourceService kullanıma sunuldu. (Idecdc)
  • PendingIntentTapListener ve WatchFaceControlClient.getPendingIntentForTouchEvent eklendi. Bu, çerçevenin ana sayfa düğmesine bastıktan sonra 5 saniye boyunca yeni etkinlik başlatmayı engellediği bir sorunu çözmek için dokunma işlemlerine yanıt olarak niyet başlatması gereken kadranlara yardımcı olabilir. (I98074)
  • Kadran başına ComplicationData önbelleği kullanıma sunuldu. Bunun amacı, sistem bunları güncelleyene kadar saat yüzünün yükleme sonrasında bilinen son komplikasyon veri değerlerini göstermesini sağlamaktır. OEM'lere yönelik yeni bir API yöntemi WatchFaceControlClient.hasComplicationCache kullanıma sunulmuştur. Bu durum, sistemin kadranlara özellikler gönderme stratejisini etkileyebilir. Buna ek olarak, ComplicationData bir isCached özelliğine sahiptir. tapAction önbelleğe alınamadığı ve önbelleğe alınan bir komplikasyonda null olacağı için önbelleğe alınan özelliklerin farklı şekilde oluşturulması önerilir. (I404b0)
  • Kadranın örnek kimliğine artık WatchState.watchFaceInstanceId üzerinden ulaşabilirsiniz. Çoğu kadran bunu kullanmak zorunda değildir. Ancak Şemada kayıtlı olmayan kadran durumu bilgisi, kadran örneğini tanımlamak için kullanılacak anahtardır. Bu konuda destek alabilmek için, WatchFaceControlClient.createHeadlessWatchFaceClient numaralı telefonu ararken artık bir kimlik sağlayabilirsiniz. (I1ff98)
  • Birincil, ikincil sağlayıcı ve yedek sistem sağlayıcı için varsayılan ComplicationTypes değerini ayarlama olanağıyla DefaultComplicationDataSourcePolicy genişletildi. ComplicationSlot.defaultDataSourceType desteği sonlandırıldı. (If0ce3)
  • ComplicationSlot.configExtras artık değişebilir ve EditorSession.openComplicationDataSourceChooser() çağrılmadan önce güncellenebilir. (I6f852)
  • WatchFace.setComplicationDeniedDialogIntent ve setComplicationRationaleDialogIntent eklendi. Bu amaçlar, özellik izinleri istemeden önce gerekçe iletişim kutusu ve izinler reddedildiğinde bir özelliği düzenlemeye çalışırken karmaşıklık izni gerektiğini açıklayan başka bir iletişim kutusu olacak şekilde başlatılır (sağlayıcı seçici açılmaz ve bu nedenle iletişim kutusunu açılması gerekir). (I3a29c)
  • UserStyleSchema ve ComplicationSlots artık XML'de tanımlanabilir. Bu, kadran yapısını basitleştirir ve meta verileri almak için hizmete bağlanmasına gerek olmadığından WatchFaceMetadataClient sorgularının daha hızlı olmasını sağlar. (I85bfa)
  • Müşterinin, kadranın getPendingIntentForTouchEvent özelliğini destekleyip desteklemediğini belirleyebilmesi için InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent eklendi. (I0b917)
  • WatchFaceMetadataClient ve ListenableWatchFaceMetadataClient artık deneme aşamasında değil. Bu etiketler, mümkün olduğunda kadrana bağlı bir dosya açmadan kadran meta verilerini etkili bir şekilde elde etmek için kullanılabilir. (Ibb827)
  • Eşzamanlı özellik (komplikasyon) sağlayıcıları için destek eklendi. Bu destek, saat kadranı görünür ve ambiyans dışında olduğunda, özelliği (saniyede bir defaya kadar) normalden daha yüksek bir sıklıkta güncellemiştir. Bunu kullanmak için sağlayıcının manifest dosyasına yeni bir androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS meta veri etiketi eklemesi ve onSynchronousComplicationRequest politikasını geçersiz kılması gerekir. Veri kaynağının yapısına bağlı olarak, komplikasyonun ne zaman etkileşimli moda girip çıktığıyla ilgili bildirim almak için onStartSynchronousComplicationRequests ve onStopInteractiveComplicationRequests özelliklerinin geçersiz kılınması da gerekebilir. (I8fe9d)

Sürüm 1.0

Sürüm 1.0.1

9 Şubat 2022

androidx.wear.watchface:watchface-*:1.0.1 yayınlandı. 1.0.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • PhotoImageComplicationData TapAction'ın doğru işlenememesiyle ilgili hata düzeltildi (I1cc30)

Sürüm 1.0.0

1 Aralık 2021

androidx.wear.watchface:watchface-*:1.0.0 yayınlandı. 1.0.0 sürümü bu kayıtları içerir.

1.0.0'ın Temel Özellikleri

androidx.wear.watchface paketi, WearOS kadranların geliştirilmesi için önerilen yeni kitaplıktır. Eski Giyilebilir Cihaz Destek Kitaplığı'na kıyasla çok sayıda yeni özellik içeriyor.

  • Kullanıcı stili (ör. renk paletini, kolların stilini, saat işaretlerinin görünümünü vb. değiştirmek için) doğrudan kitaplık tarafından desteklenmektedir (bkz. androidx.wear.watchface.style). androidx.wear.watchface.editor kullanarak kadran üzerinde düzenleyici geliştirmek artık çok daha kolay ve kadranınız ekstra kod yazmaya gerek kalmadan sistem tamamlayıcı uygulamasından düzenlenebilir.
  • Hazırlanan en iyi uygulamalar. Kitaplık, özellikler için ekran okuyucu içerik etiketlerini otomatik olarak oluşturur (kendi etiketlerinizi de ekleyebilirsiniz) ve pil ömrünü uzatmak için, kare hızı pil azaldığında ve şarj edilmediğinde otomatik olarak düşer.
  • Özellikle, standart metinlerin büyük bir kısmının kitaplığa taşındığı özelliklerde, kadranı geliştirmek için daha az kod gerekir.

Hata Düzeltmeleri

  • EditorSession.userStyle.compareAndSet (I6f676) sorununu düzeltin
  • Kadranınızda çok kısa gecikmeleri düzeltme (Iffb97)
  • Kullanıcı arayüzü iş parçacığında InteractiveWatchFaceImpl.onDestroy gönder (I83340)
  • Yayın alıcılarıyla ilgili çeşitli sorunları düzeltme (I7d25f)

Sürüm 1.0.0-rc01

3 Kasım 2021

androidx.wear.watchface:watchface-*:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Akış taşıma işlemleriyle bozulan dump() (adb shell dumpsys tarafından adlandırılır) düzeltildi. (087cf9e)

  • writeDirectBootPrefs öğelerinin doğru sıralandığından emin olun. writeDirectBootPrefs öğelerinin her zaman initStyleAndComplications öğesinden sonra çalışmasını istiyoruz. Aksi takdirde, kullanıcı arayüzü iş parçacığının başlatılmasını geciktirme riskiyle karşı karşıya kalırız.(37650ac)

  • Renderer.onDestroy'un çağrıldığından emin olun. Oluşturucunun oluşturulduğu ancak WF başlatma işleminin tamamlanmadığı ve Engine.onDestroy'un çağrıldığı senaryoda, Renderer.onDestroy'u çağırmamız gerekir. (f9952dc)

  • isBatteryLowAndNot Charge olarak optimizasyon/düzeltme işlemi gerçekleştiriliyor. Bu yama, isBatteryLowAndNot Charge adlı özelliğinin ilk kurulumunu daha erkene taşıyor. Böylece, createWatchFace ile paralel olarak yapılabilir. Ayrıca şu anda ACTION_POWER_DISCONNECTED adlı parçayı da dinliyoruz. (ddffd80

  • InteractiveWatchFaceClientImpl.isConnectionAlive işlevini kapattıktan sonra yanlış olacak şekilde (ab9774e)

Sürüm 1.0.0-beta01

27 Ekim 2021

androidx.wear.watchface:watchface-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.

Sürüm 1.0.0-alpha24

13 Ekim 2021

androidx.wear.watchface:watchface-*:1.0.0-alpha24 yayınlandı. Sürüm 1.0.0-alpha24 bu kayıtları içerir.

API Değişiklikleri

  • androidx.wear.watchface.complications paketindeki sınıflar yeni bir wear:watchface:watchface-complications projesine taşındı. Bu durumda, kopya sınıflarla ilgili hatalar alacağınız için bu kitaplığı ve wear:watchface:watchface-complications-data uygulamasının önceki alfa sürümlerini dahil edemeyeceğinizi unutmayın. (I97195)
  • Renderer.dump'ın adı Renderer.onDump olarak değiştirildi ve bunlara @UiThread ek açıklaması eklendi. (I44845)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener adı addOnWatchFaceReadyListener, removeWatchFaceReadyListener de removeOnWatchFaceReadyListener olarak yeniden adlandırıldı. (I48fea)
  • EditorSession getComplicationsPreviewData ve getComplicationsDataSourceInfo artık askıya alma işlevleri değil, değerleri başlangıçta null olan StateFlow<> mülkleridir. ListenableEditorSession'da getListenableComplicationPreviewData ve getListenableComplicationsProviderInfo, temel sınıftaki yeni StateFlow<> nesnelerinin yerine kaldırıldı. Java kodundaki değişiklikleri dinlemeniz gerekiyorsa LiveData<> biçimine dönüştürmek için androidx.lifecycle.FlowLiveDataConversions.asLiveData kullanmayı düşünün. (Ic5483)

Sürüm 1.0.0-alfa23

29 Eylül 2021

androidx.wear.watchface:watchface-*:1.0.0-alpha23 yayınlandı. 1.0.0-alpha23 sürümü bu kayıtları içerir.

Yeni Özellikler

Kadran kitaplığı artık tek bir kitaplık grubu haline geldi. Sonuç olarak 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 kadranı ve özellikler kitaplıklarını androidx.wear.watchface kitaplık grubuna taşıyın. (b25f3c0)
  • Kadran düzenleyicisinin gözetimsiz düzenlemeyi destekleyip desteklemediğini müşteriye bildirmek için EditorRequest.canWatchFaceSupportHeadlessEditing eklendi. Asop/1756809 desteği eklendi ancak gelecekteki tüm kadranlar için doğru değeri döndürecek olan bu hatada bazı yanlış negatifler olacaktır. (ca55590)
  • Oluşturucu artık, ABD shell dumpsys etkinlik hizmeti WatchFaceService tarafından oluşturulan bilgilere özel veri eklemek için geçersiz kılınabilen bir dump() yöntemine sahip. (95235f9)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener artık önce yürütücüyü belirtir. (563ac2f)
  • StateFlowCompatHelper kaldırıldı. Bunun yerine asLiveData (androidx.lifecycle.asLiveData) kullanılmalıdır. (bd35d3)
  • CurrentUserStyleRepository.userStyle artık değişken değil. (I44889)
  • WatchFaceReadyListener, OnWatchFaceReadyListener olarak yeniden adlandırıldı. (Ic12a9)

Hata Düzeltmeleri

  • InteractiveInstanceManager.deleteInstance'ın onDestroy'u çağırması, InteractiveWatchFaceImpl'in çöp toplamasını sağlamak için gereklidir.(fce4af8, b/199485839)