خلفية شاشة ساعة Wear

إنشاء تطبيقات لساعات "Wear OS من Google" الذكية
التعديل الأخير الإصدار المستقر إصدار مرشح الإصدار التجريبي إصدار ألفا
7 شباط (فبراير) 2024 1.2.1 - - 1.3.0-alpha01

إعلان التبعيات

لإضافة تبعية إلى Wear، يجب إضافة مستودع Google Maven إلى مشروعك. لمزيد من المعلومات، يمكنك الاطّلاع على مستودع Maven من Google.

أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle لتطبيقك أو الوحدة الخاصة بك:

رائع

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"
}

لمزيد من المعلومات حول التبعيات، انظر إضافة تبعيات الإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء عدد جديد

راجِع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.

الإصدار 1.3

الإصدار 1.3.0-alpha01

7 شباط (فبراير) 2024

تم طرح "androidx.wear.watchface:watchface-*:1.3.0-alpha01". يحتوي الإصدار 1.3.0-alpha01 على هذه الالتزامات.

الميزات الجديدة

  • يمكن إعداد WatchFaceServices بالتزامن، ولذلك يجب أن تكون بلا حالة. ولدعم ذلك، أضفنا StatefulWatchFaceService والتي يتم فيها تمرير مستخدم تم تحديده بشكلٍ إضافي بواسطة createExtra() إلى جميع عمليات الإلغاء التي يتم طلبها أثناء الإعداد.
  • تشتمل GlesRenderer2 الآن على حمل زائد للدالة الإنشائية يتيح لك تحديد قائمة بالسمات لتجربتها بدورها مع eglChooseConfig.

تغييرات واجهة برمجة التطبيقات

  • تتيح StatefulWatchFaceService الآن تجاوز getComplicationSlotInflationFactory التي يتم فيها تمرير الإضافة التي حددها المستخدم بواسطة createExtra(). (I82d9f)
  • يجب أن تشارك بعض خلفيات شاشة الساعة بيانات إضافية تم إنشاؤها في createUserStyleSchema مع طُرق الإعداد الأخرى. وبسبب عدم توفّر بديل أفضل، حرص مطوّرو البرامج عادةً على إبراز WatchFaceServices الخاصة بهم. هذا أمر خطير لأنّه يمكن إنشاء مثيلات متعدّدة بشكل متزامن، ما قد يؤدي إلى حدوث أخطاء. لحل هذه المشكلة، طرحنا StatefulWatchFaceService وStatefulWatchFaceRuntimeService حيث يتم إنشاء نوع من تحديد المستخدم بواسطة createExtra() ويتم تمريره إلى طرق الإنشاء المختلفة كمَعلمة. (If8a99)
  • لقد أضفنا السمة getUserStyleFlavors إلى InteractiveWatchFaceClient، والتي تهم المصنّعين الأصليين للأجهزة في المقام الأول. (I0f5d8)
  • تشتمل GlesRenderer2 الآن على حمل زائد للدالة الإنشائية يتيح لك تحديد قائمة بالسمات لتجربتها بدورها مع eglChooseConfig. على سبيل المثال، يسمح لك ذلك بتجربة عملية ضبط أولاً باستخدام إعدادات تشذيب، والرجوع إلى أحد الإعدادات بدون الحاجة إلى ذلك. (I1ba74)
  • من Android U، سنتيح استخدام SystemDataSources.DATA_SOURCE_HEART_RATE في WearOS. يمكن أن تضمن هذه الإضافة تثبيت إضافات SHORT_TEXT فقط، ولكن ننصح ComplicationSlot بقبول SMALL_IMAGE أيضًا لأنّ المصنّعين الأصليين للأجهزة قد يختارون عرض اختصار لتطبيق الصحة الخاص بهم بدلاً من القيمة المباشرة. (I34223)
  • أضفنا METADATA_KEY_CONFIG_RESTORE_SUPPORTED للتحكُّم في ما يحدث عند استعادة النظام من نسخة احتياطية لمصدر بيانات الإضافة باستخدام METADATA_KEY_DATA_SOURCE_CONFIG_ACTION، وذلك بدءًا من نظام Android U والإصدارات الأحدث. يفترض النظام تلقائيًا أنّ خدمة مصدر البيانات الإضافية تتيح الاحتفاظ بنسخة احتياطية من أي بيانات إعدادات. وإذا لم يحدث ذلك، يمكنه إضافة إعداد البيانات الوصفية METADATA_KEY_DATA_SOURCE_CONFIG_ACTION إلى القيمة "خطأ"، ما سيحدّد موضع الإضافة بأنّه لم يتم ضبطه. (I6c505)

الإصدار 1.2

الإصدار 1.2.1

24 كانون الثاني (يناير) 2024

تم طرح "androidx.wear.watchface:watchface-*:1.2.1". يتضمّن الإصدار 1.2.1 هذه الالتزامات.

إصلاح الأخطاء

  • تم إصلاح عطل على ساعة Samsung Galaxy Watch 4 و5 و6. (43f0b0)

الإصدار 1.2.0

29 تشرين الثاني (نوفمبر) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0". يتضمّن الإصدار 1.2.0 هذه الالتزامات.

التغييرات المهمة منذ الإصدار 1.1.0

  • أتحنا إمكانية استخدام بعض أنواع الإضافات الجديدة المتاحة للاستخدام من Android T:
    • GoalProgressComplicationData التي تشبه RangedValueComplicationData باستثناء أنها للتقدم نحو هدف يكون فيه الحد الأدنى ضمنيًا صفرًا، ويُسمح بأن تكون القيمة أكبر من targetValue.
    • WeightedElementsComplicationData الذي يتكون من مصفوفة من العناصر (أزواج من الوزن واللون) بالإضافة إلى نص/عنوان/صورة اختيارية. قد يتم عرض هذه كمخطط دائري حيث يجب أن تكون الألوان ذات معنى بالنظر إلى السياق، نظرًا لعدم وجود مجال عادةً في الإضافة لعرض التسميات.
  • لقد أتحنا استخدام السمة ColorRanges الاختيارية إلى RangedValueComplicationData. يتم عرض التعقيدات عادةً بألوان خلفية شاشة الساعة، ولكن في بعض الأحيان يكون من الأفضل ضبط ألوان ComplicationDataSource، مثلاً إذا كان لها معنى دلالي معيّن. على سبيل المثال، من الأحمر إلى الأزرق لدرجة الحرارة.
  • يتوافق كل نوع من أنواع ComplicationData تقريبًا الآن مع SmallImages.
  • لقد أضفنا تطبيق "ComplicationDisplayPolicy" حيث يطلب تطبيق "DO_NOT_SHOW_WHEN_DEVICE_LOCKED" خلفية شاشة ساعة متوافقة بعدم عرض الإضافة عندما يكون الجهاز مقفلاً.
  • بدءًا من Android T، سيتمكّن المصنّعون الأصليون للأجهزة من تحديد ما إذا كان طلب الإضافة صادرًا عن خلفية شاشة ساعة في القائمة التي تحدّدها بيانات android.support.wearable.complications.SAFE_WATCH_FACES الوصفية ضمن بيان مقدّم الخدمة بحلول ComplicationRequest#isForSafeWatchFace. سيحتاج مقدّم الخدمة إلى إذن "com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE" لتلقّي أي معلومات أخرى غير TargetWatchFaceSafety.UNKNOWN`.
  • أصبحت "UserStyleFlavors" ميزة غير تجريبية.

الإصدار 1.2.0-rc01

18 تشرين الأول (أكتوبر) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-rc01". يحتوي الإصدار 1.2.0-rc01 على هذه الالتزامات.

الإصدار 1.2.0-beta02

6 أيلول (سبتمبر) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-beta02". يتضمّن الإصدار 1.2.0-beta02 هذه الالتزامات.

الميزات الجديدة

  • "SuspendingComplicationDataSourceService#onDestroy" مفتوح الآن. يُرجى العلم أنّه تم إيقاف إمكانية إضافة الإضافة التلقائية الخاصة بالطقس في النظام.

تغييرات واجهة برمجة التطبيقات

  • إلغاء التغييرات الأخيرة على خيار "كشف مصدر بيانات جديد للمشاكل المتعلّقة بالطقس" (I6f335)

الإصدار 1.2.0-beta01

23 آب (أغسطس) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-beta01". يحتوي الإصدار 1.2.0 -beta01 على هذه الالتزامات.

الميزات الجديدة

  • بدءًا من Android T، سيدعم نظام التشغيل WearOS إضافة تلقائية لنظام الطقس.

تغييرات واجهة برمجة التطبيقات

  • أضِف العنصر الاحتياطي التلقائي للنظام الخاص بالطقس للحصول على الإضافات. (Ia0994)
  • تضيف هذه اللاصقة WatchFaceRuntimeService وWatchFaceControlClient.createWatchFaceRuntimeControlClient مع أغلفة الجوافة. تتوافق هذه التطبيقات مع أوقات تشغيل خلفية شاشة الساعة، وهي نوع خاص من الخلفيات التي تُحمِّلها من حزمة أخرى. لا يتوافق نظام التشغيل WearOS حاليًا إلا مع تنسيق خلفية شاشة ساعة Android. (I2799f)
  • يُطلق على رمز التصحيح هذا متابعة لـ aosp/2636578 حيث تتم إعادة تسمية دفاتر int، لذا لا يلزم تغيير أي رمز يعتمد على WatchFaceType أو CanvasType أو TapType أو ComplicationsSlotBoundsType. (I4098b)
  • تم تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية إلى قمع التوافق. (I8e87a، b/287516207)
  • تعرض هذه التصحيح الثوابت WatchFaceType في WatchFaceTypes والثوابت CanvasType في CanvasTypes والثوابت TapType في TapTypes والثوابت ComplicationsSlotBoundsType في ComplicationsSlotBoundsType. (I3b85a، b/288750666)
  • يتم استخدام WatchFace.OverlayStyle بشكل منخفض جدًا ولا يتوافق مع المصنّعين الأصليين للأجهزة، لذا نعمل على إيقافها نهائيًا بنيّة إزالتها في وقت لاحق. (I7344a)

الإصدار 1.2.0-alpha09

‫21 حزيران (يونيو) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha09". يتضمّن الإصدار 1.2.0-alpha09 هذه الالتزامات.

الميزات الجديدة

  • أصبحت السمة RangedValueComplicationData.Builder تقبل الآن السمة DynamicFloat، وتتوفّر السمة DynamicComplicationText الجديدة كفئة فرعية من ComplicationText، ويمكن لكليهما استخدام التعبيرات الديناميكية بالإضافة إلى عمليات ربط النظام الأساسي التي يتم تعديلها بتردد 1 هرتز على أجهزة Wear 4 المتوافقة.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة أنواع ديناميكية للمسافة اليومية والسعرات الحرارية اليومية والأرضيات اليومية. أصبحت مفاتيح مصادر سلامة النظام الأساسي الآن ضمن PlatformHealthSources.Keys (Ib7637).
  • نفِّذ PlatformDataProvider لتحديد معدّل نبضات القلب وعدد الخطوات اليومية. تمت إزالة واجهة SensorGateway من واجهة برمجة التطبيقات المتاحة للجميع. (I55b84)
  • أعِد تسمية "StateEntryValue" إلى "DynamicDataValue"، وعدِّل واجهات برمجة التطبيقات للحالة لاستخدام DynamicDataKey. (If1c01)
  • يجب إضافة AppDataKey للوصول إلى الحالة المدفوعة للتطبيق، وإضافة PlatformDataKey للوصول إلى بيانات النظام الأساسي، وإضافة إتاحة مساحة الاسم في StateStore. (I7985e)
  • تمت إزالة enable طرق من أصل disablePlatformSource من DynamicTypeEvaluator. يجب أن يكون المتصل مسؤولاً عن التحديثات. (I78c6d)
  • السماح بتحديد حجم أنواع البيانات المرتبطة. (Ie2966)

الإصدار 1.2.0-alpha08

19 نيسان (أبريل) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha08". يحتوي الإصدار 1.2.0-alpha08 على هذه الالتزامات.

الميزات الجديدة

  • بدءًا من Android T، يمكن لموفّري الإضافات الذين لديهم إذن مميّز com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE تسجيل بيانات androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES الوصفية التي تلغي android.support.wearable.complications.SUPPORTED_TYPES لخلفيات آمنة لشاشة الساعة. وهذا يعني أنّه قد يختار موفّر الإضافة عرض أنواع مختلفة لخلفيات شاشة الساعة الموثوق بها وغير الموثوق بها.

تغييرات واجهة برمجة التطبيقات

  • نشر فئة @Deprecated إلى موقع (I882d1، b/271441831)
  • تم تغيير اسم معلَمة القيمة لـ Enum.valueOf (Ia9b89)
  • المزيد من الاستثناءات المقترحة من قيمة التعداد (I818fe)
  • أزلنا renderWatchFaceToSurface لصالح createRemoteWatchFaceView الذي بُني على SurfaceControlViewHost ويسمح للمتصل بتضمين عرض من خلفية شاشة الساعة يتم عرضه عندما يتصل العميل بـ RemoteWatchFaceViewHost#renderWatchFace. (Ib311d)
  • أضفنا renderWatchFaceToSurface إلى InteractiveWatchFaceClient وHeadlessWatchFaceClient وEditorSession. وعادةً ما يكون هذا الإجراء أكثر أداءً من عرضه على صورة نقطية. (Ieacad)
  • تمت إعادة تسمية ObservableStateStore إلى StateStore. (Ieb0e2)
  • تمت إضافة DynamicTypeEvaluator.Builder بدلاً من وسيطات دالة الإنشاء للسماح بالمزيد من الوسيطات الاختيارية، بما في ذلك ObservableStateStore التي يتم الآن ضبطها تلقائيًا على متجر فارغ. (I6f832)
  • ترتيب معادِل للمعلَمات في DynamicTypeEvaluator. (Ic1ba4)
  • تمت إضافة جهة التنفيذ إلى DynamicTypeEvaluator.bind طريقة. (I346ab)
  • لقد أضفنا طريقة startEvaluation إلى BoundDynamicType لتشغيل التقييم بعد ربط النوع الديناميكي. (I19908)
  • بالنسبة إلى موفّري الإضافات الذين لديهم إذن com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE مميّز، يمكنهم تسجيل بيانات androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES الوصفية التي تتجاهل android.support.wearable.complications.SUPPORTED_TYPES في ما يخص خلفيات شاشة الساعة الآمنة. (Id1c73)
  • أعدنا تسمية CustomValueUserStyleSettings2 إلى LargeCustomValueUserStyleSettings. (Ic17ac)

إصلاح الأخطاء

  • تمت إزالة DynamicTypeValueReceiver#onPreUpdate. (I2dc35)

الإصدار 1.2.0-alpha07

22 شباط (فبراير) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha07". يحتوي الإصدار 1.2.0-alpha07 على هذه الالتزامات.

الميزات الجديدة

  • بدءًا من Android T، سيتمكّن المصنّعون الأصليون للأجهزة من تحديد ما إذا كان طلب الإضافة صادرًا عن خلفية شاشة ساعة في القائمة التي تحدّدها بيانات android.support.wearable.complications.SAFE_WATCH_FACES الوصفية ضمن بيان مقدّم الخدمة بحلول ComplicationRequest#isForSafeWatchFace. سيحتاج مقدّم الخدمة إلى إذن com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE لتلقّي أي بيانات بخلاف TargetWatchFaceSafety.UNKNOWN.

  • يتوفّر أيضًا من Android T CustomValueUserStyleSetting2 للاستخدام الذي يمكن أن يصل حجمه إلى 12.5 كيلوبايت. كان الحد الأقصى السابق لـ CustomValueUserStyleSetting هو 1 كيلوبايت. على الرغم من زيادة الحدود القصوى للحجم، ننصح مطوّري خلفية شاشة الساعة بإبقاء البيانات صغيرة لأنّ الإعدادات يتم إرسالها عبر البلوتوث أثناء التعديل وضبط معدل نقل بيانات البلوتوث.

تغييرات واجهة برمجة التطبيقات

  • أضفنا مَعلمة اختيارية eglContextAttribList إلى GlesRenderer وGlesRenderer2، ما يتيح لك ضبط قيمة EGL14.EGL_CONTEXT_CLIENT_VERSION التي تم ضبطها على EGL14.eglCreateContext. (I2a83e)
  • لقد نقلنا خلفيات شاشة الساعة إلى androidx.core.util.Consumer بدلاً من java.util.function.Consumer. (I273f5)
  • المزيد من الاستثناءات من أدوات الوصول إلى ملكية KT (Iff9d9)
  • لقد أضفنا InteractiveWatchFaceClient.isComplicationDisplayPolicySupported حتى يتمكّن العميل من تحديد ما إذا كان عليه محاكاة الدعم أم لا نيابةً عن خلفيات شاشة الساعة القديمة. (I24c89)
  • لقد قرّرنا أنّ isForSafeWatchFace يجب أن يكون IntDef ثلاثي الحالات. (Ief2f7)
  • بالنسبة إلى android T، طرحنا السمة ComplicationRequest.isForSafeWatchFace المخصّصة لاستخدام المصنّع الأصلي للجهاز وتتطلب com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE. بالنسبة إلى مصادر البيانات في صورة النظام، سيتم عرض القيمة "صحيح" إذا كانت خلفية شاشة الساعة المطلوبة مُدرَجة في قائمة خلفيات شاشة الساعة الآمنة التي حدّدها مصدر البيانات في ملف البيان. (I0cbb6)
  • بالنسبة إلى android T، أضفنا واجهة برمجة التطبيقات CustomValueUserStyleSetting2 التي يمكن أن يصل حجمها إلى 12.5 كيلوبايت. كان الحد الأقصى السابق لـ CustomValueUserStyleSetting هو 1 كيلوبايت. (I0b100)

الإصدار 1.2.0-alpha06

25 كانون الثاني (يناير) 2023

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha06". يتضمّن الإصدار 1.2.0-alpha06 هذه الالتزامات.

الميزات الجديدة

  • لا يزال العمل مستمرًا لإتاحة عمليات ربط المنصات.
  • أتحنا إمكانية استخدام تنسيق XML ComplicationSlot لأنواع الإضافات الجديدة، وهي GOAL_PROGRESS وWEIGHTED_ElementS.

إصلاح الأخطاء

  • إصلاح تسرُّب سبب عدم إصدار محرّر خلفية شاشة الساعة بشكل صحيح على أجهزة Samsung (3b5987)
  • إصلاح خطأ قد لا تظهر فيه الإضافات بشكل صحيح في بعض الأحيان عند التبديل بين خلفية شاشة ساعة تحتوي على عدة خلفيات مفضّلة (b38ece)
  • إصلاح خطأ تسلسلي مع perOptionScreenReaderNames الذي يؤدي إلى أعطال خلفية شاشة الساعة. (e9f466)

الإصدار 1.2.0-alpha05

7 كانون الأول (ديسمبر) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha05". يحتوي الإصدار 1.2.0-alpha05 على هذه الالتزامات.

الميزات الجديدة

  • أتحنا سابقًا واجهة برمجة التطبيقات UserStyleSettings الهرمية، ومن خلال Android T، أصبح من الممكن الآن إضافة أكثر من عنصر ComplicationSlotsUserStyleSetting واحد في تسلسل هرمي. وسيتم تفعيل نوع واحد من ComplicationSlotsUserStyleSetting فقط، وذلك استنادًا إلى أنماط أنماط المستخدِم التي اختارها المستخدم.

  • نحن نعمل على تحسين إمكانية استخدام قارئ الشاشة لكلّ من ListOption وComplicationSlotsOption من خلال إضافة الحقل screenReaderName. تجدر الإشارة إلى أنّ هذا الحقل سيتجاهله المحرّرون المصاحبون قبل android T.

تغييرات واجهة برمجة التطبيقات

  • أضفنا حقل screenReaderName اختياريًا جديدًا إلى ListOption وComplicationSlotsOption حتى يستخدمه المحرِّرون، وسيتم تجاهله من قِبل أدوات التعديل المصاحبة على الأجهزة قبل android T. (I75326)
  • بدايةً من Android T، يتم دعم العديد من ComplicationSlotsUserStyleSettings في التدرج الهرمي للأنماط طالما أنه لا يمكن تفعيل أكثر من عنصر واحد منها في الوقت نفسه. لقد أضفنا دالة الخدمات findComplicationSlotsOptionForUserStyle إلى UserStyleSchema للمساعدة في العثور على دالة ComplicationSlotsOption النشطة، إن توفّرت. (Ic2b06)
  • تم جلب RangedValuesTypes إلى الكائن المصاحب لـ RangedValueComplicationData وتمت إعادة تسميته إلى TYPE_UNDEFINED، TYPE_RATING وتمت إضافة TYPE_PERCENTAGE جديد. (I55d02)
  • أعدنا تسمية الإصدار التجريبي من DynamicFloat إلى FloatExpression ووضع علامة عليه بأنّه @hide. (Idf4f1)
  • إضافة تعليق توضيحي @JvmDefaultWithCompatibility (I8f206)

الإصدار 1.2.0-alpha04

9 تشرين الثاني (نوفمبر) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha04". يحتوي الإصدار 1.2.0-alpha04 على هذه الالتزامات.

الميزات الجديدة

  • بالنسبة إلى Android T، أتحنا إمكانية استخدام نوعَين جديدَين من الإضافات، هما GoalProgressComplicationData وWeightedElementsComplicationData.
  • تشبه السمة GoalProgressComplicationData القيمة RangedValueComplicationData ولكن قيمتها مسموح بها لتجاوز القيمة المستهدفة (بالنسبة إلى RangedValueComplicationData، يتم تثبيت القيمة على النطاق [min .. max])، ما قد يترتّب عنه تداعيات على التصميم المرئي قد لا يناسب جميع خلفيات شاشة الساعة.
  • تتيح ميزة GoalProgressComplicationData استخدام الرسوم البيانية الدائرية والتفصيلات المشابهة للبيانات البسيطة.
  • لقد أضفنا دعمًا اختياريًا إلى ColorRamps إلى RangedValueComplicationData.
  • بالنسبة إلى Android T، أضفنا ComplicationPersistencePolicy وsetCachePolicy إلى ComplicationData الذي يتيح حاليًا لمقدّم الخدمة إمكانية التحكّم في استمرار الإضافة من عدمه (أي ما إذا كانت قد تم تخزينها مؤقتًا بعد إعادة التشغيل). لا تحتاج معظم الإضافات إلى ضبط التحكّم في ذاكرة التخزين المؤقت، ولكن يمكن أن يؤدي ذلك إلى إصلاح الحالات غير المعتادة التي تتضمّن بيانات قديمة لبعض الإضافات التي يتم تحديثها بشكل متكرر (مثل الإضافات المتعلقة بالبيانات الصحية). أضفنا أيضًا تطبيق "ComplicationDisplayPolicy" حيث يطلب تطبيق "DO_NOT_SHOW_WHEN_DEVICE_LOCKED" خلفية شاشة ساعة متوافقة بعدم عرض الإضافة عندما يكون الجهاز مقفلاً. (Ic9574)

تغييرات واجهة برمجة التطبيقات

  • لم يعُد GoalProgressComplicationData وWeightedElementsComplicationData وColorRamp في مرحلة تجريبية. (Ica9e2)
  • تم الآن وضع علامة على ComplicationPersistencePolicy وComplicationDisplayPolicy بشكل صحيح على أنّها واجهات T APIs. (I31d88)
  • تحتوي الدالة الإنشائية ComplicationSlotOverlay المتوقّفة الآن على DeprecationLevel.WARNING، ما يسمح بطلبها من جافا مرة أخرى. (Ib308c)
  • تم حلّ بعض مشاكل لغة JavaScript المتوافقة مع ComplicationRequestListener وCanvasComplication وComplicationTapFilter وInteractiveWatchFaceClient من خلال إضافة تعليقات توضيحية إليها باستخدام @JvmDefaultWithCompatibility (Id94fc).
  • لقد أزلنا الإصدارين التجريبيين ProtoLayoutComplicationData وListComplicationData. لم تكن قصة المطوِّرين الخاصة بهما واضحة، ونأمل أن نعيد النظر في هذه المشكلة في المستقبل. (I9df05)
  • تمت إضافة ValueType إلى RangedValueComplicationData. يتيح تطبيق "WeightedElementsComplicationData" الآن استخدام لون الخلفية. تمت إزالة DiscreteRangedValueComplicationData لأنّ وظيفته هي مجموعة فرعية من WeightedElementsComplicationData. (I6446c)

إصلاح الأخطاء

  • أدرِج isForScreenShot في رمزَي التساوي وتجزئة البيانات. تأكَّد من حصول onRenderParametersChanged على قيمة isForScreenshot صحيحة (I04a41).
  • تم إصلاح تسريب WatchFaceControlService من عملاء بلا واجهة مستخدم رسومية. (e90e00)

الإصدار 1.2.0-alpha03

5 تشرين الأول (أكتوبر) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha03". يحتوي الإصدار 1.2.0-alpha03 على هذه الالتزامات.

الميزات الجديدة

  • ما مِن ميزات جديدة، ولكننا أصلحنا بعض الأخطاء في محرّر خلفية شاشة الساعة.

تغييرات واجهة برمجة التطبيقات

  • تم إيقاف ميزة "UserStyleSchema.userStyleSettings" نهائيًا بسبب تحوّل rootUserStyleSettings إلى إصدار غير تجريبي (Ie96e3).
  • نقل rootUserStyleSettings خارج المجموعة التجريبية (I8d6b3)
  • تم وضع علامة على WatchFaceColors باعتباره تجريبيًا لأنه غير متوافق مع جميع الأنظمة (I6d75d).
  • اعرض DisconnectReasons في واجهة برمجة التطبيقات العامة ليكون متوافقًا مع IntDef. (I791f8)

إصلاح الأخطاء

  • أغلِق أي فتح في محرّر الساعة في حال وفاة "SysUI". إذا مات "SysUI" ولم يتم إغلاق أداة تعديل خلفية شاشة الساعة، قد يتم تركها في حالة غير متسقة لأنّ النظام يعتمد على SysUI لمواصلة أي تغييرات في نمط المستخدمين.(ba762a
  • إصلاح تسرُّب الذاكرة في ComplicationDataSourceInfoRetriever، حيث كانت عملية مواصلة استخدام الكوروتين في لغة kotlin تعمل كجذر gc مع الاحتفاظ بنشاط المحرّر.(33ee06)

الإصدار 1.2.0-alpha02

21 أيلول (سبتمبر) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha02". يحتوي الإصدار 1.2.0-alpha02 على هذه الالتزامات.

الميزات الجديدة

  • تم ضبط بعض خلفيات شاشة الساعة خارج UserStyle، ما يؤثر في الصورة بشكل مرئي (مثل اختيار صورة خلفية). أضفنا Renderer.sendPreviewImageNeedsUpdateRequest التي تتيح لخلفية شاشة الساعة طلب صورة معاينة محدَّثة. تجدر الإشارة إلى أنّ هذا الإجراء يتطلّب تاريخًا متوافقًا مع النظام ليعمل.

  • أضفنا أيضًا واجهة برمجة تطبيقات لخلفيات شاشة الساعة بهدف إظهار ألوانها للنظام الذي قد يختار لوحة ألوانه بناءً على ذلك. يُرجى العلم أنّه تمّ إجراء ذلك بشكل تجريبي من خلال رمز تصحيح تابع.

  • يمكن الآن استخدام SmallImages في كل نوع من أنواع ComplicationData تقريبًا.

تغييرات واجهة برمجة التطبيقات

  • يمكن أحيانًا أن ينفصل تطبيق "مدير الخلفية" عن المحرّك وإنشاء آخر. لقد أضفنا DisconnectReason int def وتوسيع ClientDisconnectListener باستخدام طريقة جديدة تتضمّن DisconnectReason، ما يتيح للمستمعين ملاحظة حالات فصل المحرّك. (I45cce)
  • تمت إضافة معلمتين اختياريتين nameResourceId وscreenReaderResourceId إلى الدالة الإنشائية ComplicationSlotOverlay (I157e8).
  • أضفنا برنامج تضمين جوافة لحمل الزائد الجديد من getOrCreateInteractiveWatchFaceClient مع PreviewImageUpdateRequestedListener. (Ic31f0)
  • لقد أضفنا Renderer.sendPreviewImageNeedsUpdateRequest، وهو مفيد لخلفيات شاشة الساعة خارج UserStyleSchema، ما يؤثر في شكلها (مثل خلفية شاشة ساعة مع صورة خلفية يمكن اختيارها). من جهة العميل، أضفنا PreviewImageUpdateRequestedListener كمَعلمة اختيارية إلى getOrCreateInteractiveWatchFaceClient لمراقبة هذه الطلبات. (Iff44a)
  • لقد بسّطنا واجهة برمجة التطبيقات لعرض WatchFaceColors. وتتوفّر الآن خاصية بسيطة تُعرف باسم watchFaceColors على Renderer والتي يمكن ضبطها على خلفية شاشة الساعة. يجب تعديل هذه السمة عند الضرورة استجابةً لأي تغييرات على النمط. بدلاً من استخدام السمة WallpaperManager لملاحظة التغيّرات في الألوان، أضفنا السمة OnWatchFaceColorsListener إلى السمة InteractiveWatchFaceClient. (I490bc)
  • لقد أضفنا فئة WatchFaceColors تحتوي على الألوان الثلاثة الأكثر بروزًا لخلفية شاشة الساعة وأضفنا طريقتين مفتوحتين watchfaceColors وnotifyWatchFaceColorsChanged إلى العارض، وهي تتيح للنظام التعرّف على ألوان خلفية شاشة الساعة من خلال WallpaperManager.getWallpaperColors. (I3d611)
  • تتوافق الآن كل من ShortTextComplicationData وRangedValueComplicationData وNoPermissionComplicationData (وإصدارات DiscreteRangedValueComplicationData وGoalProgressComplicationData وWeightedElementsComplicationData التجريبية) مع SmallImages. إذا اختارت خلفية شاشة الساعة عرض إضافة بألوان متعددة، أصبح بإمكانها الآن استخدام خلفية "SmallImage" متعدّدة الألوان بدلاً من استخدام صورة أحادية اللون. (I257df)
  • إعادة هيكلة PreviewImageUpdateRequestedListener لتصبح Consumer<> بدلاً من ذلك (Ia875d)
  • استبدال الطريقة المجرّدة الفردية (SAM) من النوع OnWatchfaceColorsListener بالنوع العام من Java SAM (المستهلك) (I0c489)
  • لقد أوقفنا العمل بالطريقتَين getOrCreateInteractiveWatchFaceClient وlistenableGetOrCreateInteractiveWatchFaceClient القديمتَين اللتَين لا تحدّدان PreviewImageUpdateRequestedListener. (Iec502)

إصلاح الأخطاء

  • تمت إعادة تسمية DisconnectReason.BINDER_DIED إلى DisconnectReason.ENGINE_DIED. (I4eb0e)

الإصدار 1.2.0-alpha01

10 آب (أغسطس) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha01". يحتوي الإصدار 1.2.0-alpha01 على هذه الالتزامات.

الميزات الجديدة

  • لقد أتحنا إمكانية استخدام تجريبي لتنسيقات مختلفة جديدة للإضافة. وهذا مجال التطوير النشط، وقد تخضع هذه التنسيقات الجديدة للتغيير بدون إشعار، ولا يمكن حاليًا استخدام أجهزة العرض من CanvasComplicationDrawable.
  • أضفنا أيضًا هوامش اختيارية إلى خانات الإضافات لتسهيل النقر عليها.

تغييرات واجهة برمجة التطبيقات

  • أصبحت فئة BoundingArc التجريبية غير قابلة للتغيير الآن. (If624a)
  • قد يكون من الصعب النقر على الإضافات الصغيرة. للمساعدة في الحدّ من هذه المشكلة، وفّرنا الهوامش التي تزيد من المساحة القابلة للنقر بدون التأثير في العرض. ما لم يتم تحديد هوامش في ComplciationSlots (سواء في رمز أو بتنسيق XML)، لا تتوفر هوامش بحجم صفر. (I14089)
  • تم تغيير توقيع getComplicationSlotInflationFactory(CurrentUserStyleRepository) لعرض مثيل غير فارغ من المصنع. كان من الخطأ عرض قيمة فارغة من قبل، لذا فإن هذا جعل عقد واجهة برمجة التطبيقات أكثر وضوحًا. (I0fcc0)
  • أضفنا الوسيطة currentUserStyleRepository إلى الطريقة WatchFaceService.getComplicationSlotInflationFactory لتكون متسقة مع createComplicationSlotsManager. (I2ddd2)
  • أصبحت ميزة "UserStyleFlavors" ميزة غير تجريبية. (I69cdc)
  • أزلنا ValueType التجريبية من RangedValueComplicationData وقدّمنا بدلاً من ذلك السمة DiscreteRangedValueComplicationData التجريبية التي تشبه RangedValueComplicationData باستثناء نطاق الأعداد الصحيحة وقيمتها. لقد قدمنا أيضًا GoalProgressComplicationData التجريبية التي تشبه RangedValueComplicationData باستثناء أنها بصدد التقدم نحو هدف يكون فيه الحد الأدنى ضمنيًا صفرًا، ويُسمح بأن تكون القيمة أكبر من targetValue. في جميع خيارات RangedValue، يجب تحديد صورة واحدة على الأقل صورة أو نص أو عنوان أحادي اللون. (I9590c)
  • لقد أزلنا boundsWithMargins من ComplicationSlotState لأنّ برنامج النظام لا يتضمّن حالة استخدام له. (I42e26)
  • أتحنا استخدامًا تجريبيًا لـ WeightedElementsComplicationData الذي يتكوّن من مجموعة من العناصر (أزواج من الوزن واللون) بالإضافة إلى نص/عنوان/صورة اختيارية. قد يتم عرض هذه كمخطط دائري حيث يجب أن تكون الألوان ذات معنى بالنظر إلى السياق، نظرًا لعدم وجود مجال عادةً في الإضافة لعرض التسميات. (I87eea)
  • تتيح لك الآن السمة ColorRamps التجريبية، التي يستخدمها كل من RangedValueComplicationData وGoalProgressComplicationData، بشكل اختياري، تحديد تسلسل يصل إلى سبعة ألوان، وعلامة توضح ما إذا كان يجب تسوية الألوان بسلاسة أو ما إذا كان يجب عرض خطوات اللون الصلبة ذات الحجم المتساوي. (I9f5bf)
  • تم تغيير الحقل "RangedValueComplicationData.drawSegmented" إلى "valueType"، وهو عدد صحيح مع قيمة "ValueType IntDef" مقابلة توفّر معنى دلالي للقيمة ذات النطاق الزمني، وقد يستخدمه عارض الإضافة للتأثير في النمط. (I0616b)
  • لقد أضفنا دعمًا تجريبيًا إلى السمة ColorRanges الاختيارية إلى RangedValueComplicationData. يتم عرض التعقيدات عادةً بألوان خلفية شاشة الساعة، ولكن في بعض الأحيان يكون من الأفضل ضبط ألوان ComplicationDataSource، مثلاً إذا كان لها معنى دلالي معيّن. على سبيل المثال، من الأحمر إلى الأزرق لدرجة الحرارة. (I5153a)
  • لقد أضفنا تلميحًا تجريبيًا من drawSegmented إلى RangedValueComplicationData. يشير هذا العرض إلى أجهزة العرض لرسم مؤشر القيمة ذات النطاق الزمني على شكل قطاعات، حيث يكون المقطع الواحد = وحدة واحدة. (I7d7c1)

إصلاح الأخطاء

  • لقد أضفنا إمكانية تحديد ComplicationSlotBounds وفقًا لنظام إحداثي الشاشة المحدَّد مسبقًا. (I0985d)

الإصدار 1.1

الإصدار 1.1.1

10 آب (أغسطس) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.1". يتضمّن الإصدار 1.1.1 هذه الالتزامات.

  • تمّ إطلاق هذا الإصدار لإصلاح الأخطاء، وننصح مستخدمي الإصدار 1.1.0 بالترقية.

إصلاح الأخطاء

  • إنّ إعداد خلفية شاشة الساعة غير متزامن، وإذا تم تلقّي إضافة قبل أن تصبح خلفية شاشة الساعة جاهزة، يتم إدراجها في قائمة "pendingInitialComplications" وتطبيقها لاحقًا. تم تطبيق "pendingInitialComplications" في وقت قريب جدًا، ما يعني أنّ عملية إعداد خلفية شاشة الساعة ما زالت تحتوي على فترة زمنية معيّنة، ويتم فيها تجاهل الإضافات على "pendingInitialComplications". نودّ إعلامك بأنّه تمّ الآن إصلاح هذه المشكلة. بالإضافة إلى ذلك، تعمل حزمة التصحيح هذه على إصلاح خطأ كان يحاول ComplicationRenderer عن طريق الخطأ تحميل العناصر النائبة بشكل غير متزامن، ما أدّى إلى عدم تحديث الرسم المجمّع مطلقًا. وأخيرًا، يساعد هذا التصحيح في إصلاح خطأ نظري حيث يلزم دمج pendingInitialComplications المتعددة. (0d03ba3)

  • إصلاح القفل الهوائي المحتمل في InteractiveInstanceManager حيث بقي "getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance" على القفل لفترة أطول من اللازم. نتوقّع عادةً أن يكون الخطأ engine.setUserStyle سريعًا، ولكن إذا لم يحدث ذلك لسبب ما، قد ينتهي الأمر بتوقُّف حدوث خطأ بأي شكلٍ من الأشكال. تؤدي هذه التصحيح إلى نقل العمل غير الضروري إلى مكان آخر، ما قد يؤدي إلى التوقّف عن العمل.(5a2adca)

  • يُرجى حلّ عدّة مشاكل احتفظت بـ WatchFaceService. قد يحتفظ WakeLock أحيانًا بـ WatchFaceService، ويؤدي إضافة مكالمة release() إلى إصلاح ذلك. ويمكن أيضًا لـ StateFlows الاحتفاظ بـ WatchFaceService، ما يؤدي إلى إلغاء إصلاح CoroutineScopes الأساسي الذي.(fd48138)

  • أضِف مهلات إلى awaitDeferredWatchFace* وأصلح watchfaceOverlayStyle NullPointerException. في الظروف العادية، يجب ألا تنتهي مهلة هذه العملية، بما في ذلك بعد التثبيت الجديد وسيناريوهات DirectBoot التي يكون فيها الحِمل على وحدة المعالجة المركزية مرتفعًا. لقد أصلحنا أيضًا رقم NPE في حال استدعاء getWatchfaceOverlayStyle بعد close().(a4c3a5a)

الإصدار 1.1.0

15 حزيران (يونيو) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0". يتضمّن الإصدار 1.1.0 هذه الالتزامات.

التغييرات المهمة منذ الإصدار 1.0.0

تعديل محسَّن:

  • أتحنا إمكانية استخدام المخططات الهرمية، ما يسمح بتدوين التسلسل الهرمي للأنماط في واجهات المستخدم للمحرّر. يمكنك الآن تحديد رموز منفصلة لاستخدامها على خلفية شاشة الساعة وأدوات التحرير المصاحبة.
  • تتوفّر إمكانية الموافقة على نُسخ متعددة من خلفية شاشة الساعة، ولكل مثيل معرّف فريد متاح في جميع مساحات عرض واجهة برمجة التطبيقات.
  • يمكنك الآن تحديد أسماء يمكن للمستخدمين قراءتها للسمة ComplicationSlots من أجل استخدامها في أدوات التحرير.
  • تتوفّر هذه الميزة التجريبية على أنماط "النكهات"، وهي مجموعة منتقاة من الأنماط ستظهر من خلال أداة التعديل المصاحبة.
  • عند تعديل نسختَين من خلفية شاشة الساعة، يمكن الآن أن تشارك مثيلات خلفية شاشة الساعة الموارد، ما يوفّر مساحة في الذاكرة.
  • عند اختيار إضافة من أداة تعديل خلفية شاشة الساعة، يتم الآن اختيار مقدِّم الخدمة الحالي مسبقًا.

إضافات محسَّنة:

  • يمكنك الآن تحديد ComplicationType لمصادر البيانات الأساسية والثانوية، ما يمنح المطوّرين مزيدًا من المرونة لتجربة استخدام غير تقليدية.
  • أضفنا ComplicationDataTimeline التي توفّر سلسلة من البيانات المحدّدة زمنيًا لعرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتعديلها تلقائيًا. على سبيل المثال، توقّعات الطقس اليوم في أوقات مختلفة أو عدّة أحداث قادمة في التقويم.
  • ComponentName الخاص بموفّر الإضافة هو جزء من ComplicationData.
  • يتم الآن تخزين الإضافات مؤقتًا لتوفير تجربة أفضل عند التبديل بين خلفيات شاشة الساعة.

التغييرات الأخرى:

  • يمكن الآن تحديد UserStyleSchema وComplicationSlots في XML. يساهم ذلك في تبسيط عملية إنشاء خلفية شاشة الساعة ويتيح إجراء طلبات بحث أسرع عن البيانات الوصفية من النظام.
  • يمكن لخلفيات شاشة الساعة الآن التأثير في الألوان المستخدَمة لعرض عناصر النظام المركّبة.

الإصدار 1.1.0-rc01

18 أيار (مايو) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-rc01". يحتوي الإصدار 1.1.0-rc01 على هذه الالتزامات.

الميزات الجديدة

  • لقد أجرينا بعض التعديلات على سهولة الاستخدام لإتاحة استخدام تنسيق XML لخلفية شاشة الساعة، وذلك لتسهيل تحديد ComplicationSlotBounds والمراجع الداعمة. ستستمر تجربة إضافة الحافة BoundingArc في السباكة حتى drawHighlight على الرغم من أنّه لا يُنصح باستخدامها في الوقت الحالي.

تغييرات واجهة برمجة التطبيقات

  • أضفنا حِملًا تجريبيًا زائدًا من drawHighlight يقبل المعلَمة BoundingArc. (I705f8)
  • يتيح تنسيق XML لخلفية شاشة الساعة الآن استخدام مراجع الموارد. فهو يتيح لك استخدام الثوابت نفسها في كلّ من XML والتعليمات البرمجية. (I3ef61)
  • أتحنا إمكانية تعريف ComplicationSlotBounds في نماذج center_x وcenter_y وsize_x وsize_y. الآن، من الممكن أيضًا استخدام وحدات مختلفة (أي وحدة بكسل مستقلة الكثافة) باستخدام مراجع الموارد. (Iace98)

إصلاح الأخطاء

  • إصلاح runBlockingWithTracing الذي كان يُشغِّل المهام في سياق غير صحيح.(4f595fe)
  • جعل BaseEditorSession.close متزامنًا تكمن مشكلة عدم مزامنة BaseEditorSession.close في أنّنا أطلِق ComplicationDataSourceInfoRetriever بعد فوات الأوان، ما يؤدي إلى تحذير المستخدمين من المحتوى غير المرغوب فيه في أداة Logcat. ربما لم يكن هذا الإجراء ضارًا، ولكن محتوى Logcat غير المرغوب فيه يشتت الانتباه ويجب تجنُّبه.(35a5308)

الإصدار 1.1.0-beta02

11 أيار (مايو) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-beta02". يتضمّن الإصدار 1.1.0 -beta02 هذه الالتزامات.

الميزات الجديدة

  • لقد أضفنا دعمًا تجريبيًا لأنواع ComplicationData الجديدة، وهي غير جاهزة للاستخدام بعد، ولكن يمكنك مشاهدة هذه المساحة.

تغييرات واجهة برمجة التطبيقات

  • لقد أضفنا BoundingArc، وهي فئة تجريبية تصف هندسة خانة إضافة الحواف. تمت إضافة هذا الإطار إلى ComplicationSlot وتوصيله إلى ComplicationSlotState وWatchFaceMetadataClient. (I61a40)
  • لقد أضفنا إمكانية اكتساب الإعدادات في ملف XML الخاص بـ UserStyleSetting. يتيح لك ذلك تقليل مستوى الإسهاب ومشاركة إعدادات بين خلفيات شاشة الساعة. (Ief841)
  • لقد أضفنا نوعَين تجريبيَين جديدَين من ComplicationData: ListComplicationData وProtoLayoutComplicationData. لا يتوفّر حاليًا أي عرض من هذَين النوعَين، ولا يتعرّف نظام التشغيل WearOS حاليًا على هذه الأنواع في حال إضافتها إلى بيان ComplicationDataSource's. (I1811c)

إصلاح الأخطاء

  • إصلاح التسلسل من النوع TimeLineEntry لم نكن ننشئ تسلسلاً للنوع TimeLineEntry، ما يعني أنّ النسخة المخزَّنة مؤقتًا من النوع TimeLineEntries من النوع NoData سيتم تفسيرها بشكل غير صحيح على أنّها تتضمّن نوع الإضافة الرئيسية الذي يؤدي إلى NPEs عند الوصول إلى حقول مطلوبة غير متوفّرة. (55ffdf5)
  • إصلاح خطأ أدّى إلى تجاهل setComplicationData لحقول المخطط الزمني(fb392f5)
  • إصلاح خطأ قد يؤدي أحيانًا runBlockingWithTracing إلى ظهور NPE(12ca62e)
  • إصلاح خطأ حيث نحصل أحيانًا على ClassNotFoundException: android.support.wearable.complications.ComplicationText عند تلقي إضافة.(217942d9)
  • إصلاح خطأ في GlesRenderer.backgroundThreadInitInternal حيث كان يتم طلب onBackgroundThreadGlContextCreated فقط في حال استدعاء EGL14.eglCreateContext. إصلاح خطأ آخر تسبب في حدوث خلل بصري في لقطة الشاشة بسبب verticalFlip.(c674ad2)
  • أصلِح مشكلة التحقّق من إصدار XML الخاص بـ WatchFaceService لأنّه تم تحميله من حزمة غير صحيحة.(dfa06f3)
  • تستخدم صيغة السلك النائب حزمة داخلية الآن. لا نريد أن تقسّم العناصر النائبة خلفيات شاشة الساعة الحالية التي قد تستخدم المحتوى الداخلي المخفي a.s.w.c.ComplicationData. في السابق، كان يتم في السابق تخزين العنصر النائب في الحقول المعتادة باستخدام تنسيق الأسلاك في بيانات NoDataComplication (هذه مشكلة لأنّ خلفيات شاشة الساعة القديمة تعرض سلسلة العنصر النائب غير المقصودة)، بدلاً من ذلك، نستخدم الآن حزمة داخلية لعزل هذه السلسلة بالكامل (d5e7bd2).

الإصدار 1.1.0-beta01

20 نيسان (أبريل) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-beta01". يتضمّن الإصدار 1.1.0-beta01 هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • الآن، تعرض طُرق WatchFaceMetadataClient (getUserStyleSchema وgetComplicationSlotMetadataMap وgetUserStyleFlavors) وHeadlessWatchFaceClient.getUserStyleFlavors سياسة RuntimeException بدون علامة بدلاً من WatchFaceException. (I0718a)
  • تم نقل "WatchFaceMetadataClient.WatchFaceException" إلى خارج الصف للسماح بإعادة استخدامه. (I4e869)

إصلاح الأخطاء

  • لن يتعطل WatchFaceMetadataClient بعد الآن عند إرسال جزء من ComplicationSlotBounds.(Iaafd)

الإصدار 1.1.0-alpha05

6 نيسان (أبريل) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha05". يحتوي الإصدار 1.1.0-alpha05 على هذه الالتزامات.

الميزات الجديدة

  • يمكنك الآن تحديد مصدر البيانات الذي أرسل "ComplicationData" من خلال فحص "ComplicationData.dataSource". قد تستخدم بعض خلفيات شاشة الساعة هذا لتخصيص عرض الإضافة. (I44a73)

تغييرات واجهة برمجة التطبيقات

  • تم إيقاف Renderer.CanvasRenderer وRenderer.GlesRenderer نهائيًا لصالح Renderer.CanvasRenderer2 وRenderer.GlesRenderer2 اللذَين يتيحان استخدام SharedAssets التي يتم تمريرها إلى طرق العرض. بالنسبة إلى إمكانية التشغيل التفاعلي للغة JavaScript، طرحنا ListenableCanvasRenderer2 وListenableGlesRenderer2. (I31ffa)
  • تمت إضافة إمكانية @WatchFaceFlavorsExperimental لتحديد النكهات - قائمة مُعدّة مسبقًا لخلفيات شاشة الساعة ذات التصميم (I04dd0)
  • أصبح Renderer.sharedAssets الآن StateFlow وقد أزلنا Renderer.SharedAssetsFactory (I12ac5) غير المستخدمة.
  • لم يعُد الموقع الإلكتروني UserStyleSchema.userStyleSettings متوقفًا نهائيًا (Iba7e3).
  • أضفنا السمة HeadlessWatchFaceClient.getUserStyleSchemaDigestHash التي تتيح لـ HeadlessWatchFaceClient تجنُّب مقدار النفقات العامة المنخفضة نسبيًا لتمرير المخطط عبر AIDL قبل احتساب تجزئة الملخّص. (I33597)
  • لقد أضفنا السمة isUserStyleSchemaStatic إلى WatchFaceMetadataClient، وهذا الإجراء صحيح إذا كان من الممكن الاعتماد على عدم تغيير UserStyleSchema إلّا إذا تم تحديث حزمة APK لخلفية شاشة الساعة. (I45a3f)
  • لقد أضفنا getDigestHash إلى UserStyleSchema التي تحسب تجزئة ملخّصة للمخطط. ويمكن استخدام هذه البيانات لتحديد ما إذا كان قد تم تغيير UserStyleSchema بكفاءة أم لا. (I2063d)
  • تمت إعادة تسمية METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED إلى METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED (I9ba5d)
  • تمت إعادة تسمية "UserStyleSetting.OnWatchEditorData" إلى "UserStyleSetting.WatchFaceEditorData"، وهو يحتوي على بيانات لا يستخدمها سوى "محرِّر خلفية شاشة الساعة". (If3afb)

الإصدار 1.1.0-alpha04

9 آذار (مارس) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha04". يحتوي الإصدار 1.1.0-alpha04 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • قد لا تكون الميزات الأحدث في ComplicationData متاحة دائمًا (مثلاً، الإضافات التي تم تخزينها مؤقتًا والتي انتهت صلاحيتها)، لذا وسّعنا نطاق NoDataComplication باستخدام عنصر نائب اختياري integrationData وإضافة ComplicationText.PLACEHOLDER وMonochromaticImage.PLACEHOLDER وSmallImage.PLACEHOLDER وPhotoImage.PLACEHOLDER والتي لا يُسمح باستخدامها إلا داخل سياق العنصر النائب NoDataComplicationData. في حال تحديد هذه العناصر، يتم اقتراح عرضها بمربّعات/أقواس رمادية. (I6285d)
  • أضفنا ComplicationData.getNextChangeInstant الذي يخبرك عن البحث الفوري التالي بعد المرجع "فوري" الذي قد يتغير فيه أي حقل من الإضافة. ويتم استخدام هذه الطريقة داخليًا لجدولة الإطارات الخاصة بتحديثات الإضافات. على سبيل المثال، إذا كان يتم تحديث خلفية شاشة الساعة عادةً مرّة واحدة في الدقيقة، يؤدي ضبط إضافة ساعة الإيقاف إلى تحديثها مرة واحدة في الثانية. (I7ceb2)
  • يمكن الآن استخدام EditorSession.watchFaceId في جميع مستويات واجهة برمجة التطبيقات. بالإضافة إلى ذلك، ستكون قيمتها الآن متسقة دائمًا مع السمة WatchState.watchFaceInstanceId. (I323b9)
  • لم تعُد واجهة برمجة التطبيقات getPendingIntentForTouchEvent ضرورية بما أنّه تم إصلاح المشكلة الأساسية في إطار العمل، وبالتالي تمت إزالة جميع واجهات برمجة التطبيقات ذات الصلة. لا تحتاج خلفيات شاشة الساعة إلى اتّخاذ أي إجراءات خاصة لتنشيط "PendingIntents"، حتى إذا تم الضغط على زر الشاشة الرئيسية مؤخرًا. (I1f2e8)
  • لقد أضفنا السمة RendererParameters.isForScreenShot والتي ستكون صحيحة إذا كان العرض للقطة شاشة. تحتاج بعض خلفيات شاشة الساعة إلى معرفة ذلك من أجل إجراء تعديلات لضمان تحقيق أفضل النتائج. (I96d99)
  • لقد أضفنا السمة WatchFaceExceptionReason إلى السمة WatchFaceException لتوفير مزيد من المعلومات حول المشكلة التي حدثت. (I01d15)
  • تمت إزالة ComplicationDataSourceService.onImmediateComplicationRequest، وبدلاً من ذلك تمت إضافة ComplicationRequest.immediateResponseRequired للإشارة إلى ضرورة استجابة مقدّم الخدمة بسرعة (يُفضَّل الاستجابة في أقل من 100 ملّي ثانية). تجدر الإشارة إلى أنّ هذه الوظيفة محمية وراء إذن "com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE" المميّز. (Ie6b23)
  • تم تعديل إمكانية القيم الفارغة في النظام الأساسي وتطبيق التطبيق لتتوافق مع Tiramisu DP2 (I0cbb7)

إصلاح الأخطاء

  • يحدث استثناء الآن في تطبيق خلفية شاشة الساعة في حال تعذّر التحقّق من صحة المخطط (Ia400f)

الإصدار 1.1.0-alpha03

9 شباط (فبراير) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha03". يتضمّن الإصدار 1.1.0-alpha03 هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • لقد أضفنا دعمًا تجريبيًا لمخططات النمط الهرمي. لقد أضفنا موقعًا جديدًا إلى androidx.wear.watchface.style.UserStyleSetting.Option، وهو childSettings والذي لا يتم استخدامه إلا من قِبل ListOption في البداية. ويسمح هذا بوصف التسلسل الهرمي للأنماط ليستخدمه واجهات المستخدم للمحرّر، ولا يتم تغيير UserStyle الأساسي، ولا يزال Map<String, ByteArray>. (Iaf6f4)
  • لقد أضفنا WatchFace.OverlayStyle التي تسمح لخلفية شاشة الساعة بإعداد عرض تراكب حالة النظام. (I8520d)
  • لقد طرحنا clearWithBackgroundTintBeforeRenderingHighlightLayer مَعلمة إنشائية اختيارية جديدة للسمة CanvasRenderer (القيمة التلقائية هي "خطأ"). في حال ضبطها على "صحيح"، سيتم محو لوحة الرسم بلون الخلفية. (Ie01e5)
  • تمت إضافة مفتاح البيانات الوصفية "androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED" الذي يسمح لمصادر بيانات الإضافة بالإشارة إلى أنّها يمكن أن توفّر قيمة تلقائية بدون أي إعدادات (Icc0d4).
  • من الشائع عند تعديل خلفية شاشة الساعة أن تكون هناك حالة تفاعلية وأخرى بلا واجهة مستخدم رسومية. للمساعدة في توفير الذاكرة، طرحنا Renderer.SharedAssets التي تتيح لبرنامج عرض خلفية شاشة الساعة مشاركة بيانات غير قابلة للتغيير (مثل الزخارف وأدوات التظليل) بين الحالات المختلفة. تم إيقاف GlesRenderer.setEglConfig وGlesRenderer.setEglDisplay نهائيًا، ولم يكن من المفترض أبدًا أن تكون هذه الإعدادات قابلة للضبط، وأدّى ذلك إلى سلوك غير محدّد. (I0d9e7)
  • لقد أضفنا setNameResourceId وsetScreenReaderNameResourceId (اللذين يشيران إلى موارد السلسلة) إلى ComplicationSlot.Builder وعلامات الالحصول المقابلة في androidx.wear.watchface.client.ComplicationSlotState. يسمح هذا الإجراء للنظام بجلب أسماء integrationSlots لاستخدامها في أدوات التحرير وقارئات الشاشة. (If6c6a)
  • طرح WatchfaceMetadataClient.getUserStyleSchema وgetComplicationSlotMetadataMap الآن WatchFaceException بدلاً من RemoteException. (I86f11)
  • تمت إعادة تسمية onSynchronousComplicationRequest والدوال ذات الصلة في ComplicationDataSourceService إلى onImmediateComplicationRequest وغيرها... (I87ba0)
  • تحتوي أدوات تعديل خلفيات شاشة الساعة على ميزات شاشة أقل بكثير من المحرّرين المصاحبين، لذلك من المنطقي إتاحة رموز مختلفة على محرّري خلفية شاشة الساعة. تضيف رمز التصحيح هذا OnWatchEditorData (يحتوي حاليًا على رمز فقط) إلى جميع UserStyleSettings وفئات Option الخاصة بهم حيثما كان ذلك مناسبًا. (If1886)
  • أضفنا @JvmOverloads إلى الدالة الإنشائية لـ ListenableGlesRenderer لتحسين إمكانية التشغيل التفاعلي لـ Java. (I2974a)

إصلاح الأخطاء

  • تم الآن وضع علامة @Throws(GlesException::class) بشكل صحيح على الدالة الإنشائية لـ ListenableGlesRenderer، ويمكن الآن توسيع هذه الفئة في جافا. (Iac6d0)
  • إصلاح الخطأ المتمثل في عدم معالجة PhotoImageComplicationData TapAction بشكل صحيح (I1cc30)

الإصدار 1.1.0-alpha02

12 كانون الثاني (يناير) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha02". يحتوي الإصدار 1.1.0-alpha02 على هذه الالتزامات.

الميزات الجديدة

  • للمساعدة في تصحيح الأخطاء والاختبار، تم الآن تجاهل طريقة الترميز ComplicationData والفئات الفرعية المرتبطة بها في رموز التجزئة وتساوي وtoString لتسهيل استخدامها.

تغييرات واجهة برمجة التطبيقات

  • عند استخدام طرق WatchfaceMetadataClient، يتم عرض RemoteExceptions مرة أخرى متى كان ذلك مناسبًا، ما يسهّل على رمز العميل اكتشاف الأخطاء من خلفية شاشة الساعة. (I78785)
  • تتضمّن السمة ComplicationData والفئات الفرعية الآن رمز تجزئة ويساوي وtoString. (I24bc6)

الإصدار 1.1.0-alpha01

15 كانون الأول (ديسمبر) 2021

تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha01". يحتوي الإصدار 1.1.0-alpha01 على هذه الالتزامات.

الميزات الجديدة

  • يمكن الآن تحديد UserStyleSchema وComplicationSlots في XML. يؤدي ذلك إلى تبسيط عملية إنشاء خلفية شاشة الساعة. بالإضافة إلى ذلك، تكون طلبات البحث WatchFaceMetadataClient أسرع لأنها لا تحتاج إلى الربط بالخدمة للحصول على البيانات الوصفية. لم يعُد WatchFaceMetadataClient وListenableWatchFaceMetadataClient في مرحلة تجريبية وسيتمان جزءًا من واجهة برمجة التطبيقات الثابتة. وسيتمكّن النظام من دعم مثيلات متعددة لخلفية شاشة الساعة بشكل اختياري، مع خيارات تصميم مختلفة يحدّدها المستخدم. ستظهر هذه العناصر في أداة اختيار خلفية شاشة الساعة. لتفعيل هذه الميزة، يجب أن تتضمّن خلفية شاشة الساعة علامة البيانات الوصفية التالية في ملف البيان.

        <meta-data
            android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED"
            android:value="true" />
    
  • بعض خلفيات شاشة الساعة لها حالة غير مُسجّلة في "UserStyle". لإتاحة هذه الخلفيات وفي حالات متعددة، يتوفّر الآن رقم تعريف المثيل لخلفية شاشة الساعة من خلال WatchState.watchFaceInstanceId.

  • يتم الآن تخزين ComplicationData مؤقتًا للسماح بعرض الإضافات فور التحميل. في بعض الأحيان، يتم تخزين ComplicationData مؤقتًا في الذاكرة من خلال النظام، وأحيانًا يتم إدراجه تسلسليًا من خلال مكتبات خلفية شاشة الساعة. عند نشر أي إجراء نقر على الشاشة على تسلسل، سيتم فقدان أي إجراء نقر. إذا حدث ذلك، سيعرض ComplicationData.tapActionLostDueToSerialization القيمة true، ومن المفترض أن تعرض خلفية شاشة الساعة الإضافة بشكل مختلف (على سبيل المثال، باللون الرمادي أو شبه شفاف) للإشارة إلى أنّه لا يمكن النقر على الرمز. سيرسل النظام ComplicationData المحدَّث مع tapAction في أقرب وقت ممكن.

  • يجب عدم تخزين بعض ComplicationData مؤقتًا لفترة طويلة، ولدعم ذلك، أضفنا ميزة أكثر عمومية ComplicationDataTimeline. يمكن استخدام ذلك لتوفير سلسلة من ComplicationData المحددة بوقت لعرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتحديثها تلقائيًا. على سبيل المثال، توقّعات الطقس اليوم في أوقات مختلفة أو عدّة أحداث قادمة في التقويم. تم تمديد نطاق ComplicationRequestListener باستخدام طريقة onComplicationDataTimeline جديدة يمكنك استخدامها لعرض هذه البيانات.

  • تم تمديد DefaultComplicationDataSourcePolicy حتى تتمكن من تحديد ComplicationType لمصدري البيانات الأساسي والثانوي.

  • أتحنا مزوِّدي خدمات الإضافات المتزامنة الذين يتم تحديث الإضافة بمعدّل تكرار أعلى من المعتاد، بما يصل إلى مرة واحدة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير محيطة. ملاحظة:قد يكون استخدام مقدِّمي الخدمات الإضافات المتزامنة محدودًا بسبب مشاكل تتعلق بضغط الذاكرة.

  • من المرجَّح أن يتم التراجع عن تغييرات PendingIntentTapListener لأنّنا حللنا المشكلة الأساسية (لا يمكن لخلفية شاشة الساعة تفعيل الأنشطة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية) في إطار العمل.

تغييرات واجهة برمجة التطبيقات

  • تم تغيير الحقل "ComplicationData.isCached" إلى "tapActionLostDueToSerialization"، ما يوفّر تجربة أكثر فائدة عند تحديد ما إذا كان يجب عرض خانة الإضافة بشكل مختلف للإشارة إلى عدم إمكانية النقر عليها. (I6de2f)
  • تمّت إضافة "ComplicationDataTimeline" إلى "wear-complication-data-source". يمكن استخدام ذلك لتوفير سلسلة من ComplicationData المحددة بوقت لعرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتحديثها تلقائيًا. على سبيل المثال، توقّعات الطقس اليوم في أوقات مختلفة أو عدّة أحداث قادمة في التقويم. تم تمديد نطاق ComplicationRequestListener باستخدام طريقة onComplicationDataTimeline جديدة يمكنك استخدامها لعرض هذه البيانات. يتوفّر برنامج تضمين SuspendingTimelineComplicationDataSourceService جديد بلغة Kotlin لتعليق خدمات مصدر البيانات. (Idecdc)
  • تمّت إضافة "PendingIntentTapListener" و"WatchFaceControlClient.getPendingIntentForTouchEvent". ويمكن أن يساعد ذلك في خلفيات شاشة الساعة التي تحتاج إلى إطلاق أغراض استجابة للنقر لتفادي مشكلة، حيث يحظر إطار العمل إطلاق أنشطة جديدة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية. (I98074)
  • تم تقديم ذاكرة تخزين مؤقت لميزة "ComplicationData" لكل خلفية شاشة في الساعة. والغرض من ذلك هو السماح لخلفية شاشة الساعة بعرض آخر قيم بيانات الإضافة المعروفة عند التحميل إلى أن يُتاح للنظام الفرصة لتحديثها. تم توفير طريقة جديدة من واجهة برمجة التطبيقات WatchFaceControlClient.hasComplicationCache للمصنّعين الأصليين للأجهزة. قد يؤثر ذلك على استراتيجية النظام لإرسال الإضافات إلى خلفية شاشة الساعة. بالإضافة إلى ذلك، يتضمن ComplicationData خاصية isCached ويُنصح بعرض التعقيدات المخزنة مؤقتًا بشكل مختلف بسبب عدم إمكانية تخزين tapAction في ذاكرة التخزين المؤقت وسيتم null إضافتها في ذاكرة التخزين المؤقت. (I404b0)
  • رقم تعريف المثيل لخلفية شاشة الساعة متاح الآن عبر "WatchState.watchFaceInstanceId". لا تحتاج معظم خلفيات شاشة الساعة إلى استخدام هذه الميزة، ولكن إذا كانت هناك حالة خلفية لكل ساعة لم يتم تخزينها في المخطّط، يجب استخدام هذا الخيار لتحديد مثيل خلفية شاشة الساعة. للمساعدة في هذا الإجراء، يمكنك الآن تقديم مستند تعريف عند الاتصال برقم WatchFaceControlClient.createHeadlessWatchFaceClient. (I1ff98)
  • تم توسيع نطاق DefaultComplicationDataSourcePolicy مع إمكانية ضبط ComplicationTypes التلقائي لموفّر الخدمة الأساسي والثانوي ولمزوّد النظام الاحتياطي. تم إيقاف ComplicationSlot.defaultDataSourceType نهائيًا الآن. (If0ce3)
  • ComplicationSlot.configExtras قابل للتغيير الآن ويمكن تحديثه قبل الاتصال برقم EditorSession.openComplicationDataSourceChooser(). (I6f852)
  • تمّت إضافة "WatchFace.setComplicationDeniedDialogIntent" و"setComplicationRationaleDialogIntent". تم إطلاق هذه الأغراض لعرض مربّع حوار السبب المنطقي قبل طلب أذونات الإضافة، ومربّع حوار آخر يوضّح ضرورة الحصول على إذن الإضافة عند محاولة تعديل الإضافة عند رفض الأذونات (تعذّر فتح أداة اختيار الموفّر، وبالتالي لن يكون هناك حاجة إلى مربّع الحوار). (I3a29c)
  • يمكن الآن تحديد UserStyleSchema وComplicationSlots في XML. يساهم ذلك في تبسيط عملية إنشاء خلفية شاشة الساعة وزيادة سرعة طلبات البحث إلى "WatchFaceMetadataClient" لأنّه لا يحتاج إلى الربط بالخدمة للحصول على البيانات الوصفية. (I85bfa)
  • تمت إضافة "InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent" ليتمكّن العميل من تحديد ما إذا كانت خلفية شاشة الساعة متوافقة مع "getPendingIntentForTouchEvent". (I0b917)
  • لم يعُد WatchFaceMetadataClient وListenableWatchFaceMetadataClient في مرحلة تجريبية. ويمكن استخدامها للحصول على البيانات الوصفية لخلفية شاشة الساعة بكفاءة بدون الحاجة إلى فتح رابط لها. (Ibb827)
  • تمت إتاحة موفّري الإضافات المتزامنة الذين يتم تحديث الإضافة فيها بمعدّل تكرار أعلى من المعتاد، بمعدّل يصل إلى مرة واحدة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير محيطة. لاستخدام هذه الميزة، على مقدّم الخدمة تضمين علامة بيانات وصفية androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS جديدة في ملف البيان وإلغاء onSynchronousComplicationRequest. استنادًا إلى طبيعة مصدر البيانات، قد تحتاج أيضًا إلى إلغاء onStartSynchronousComplicationRequests وonStopInteractiveComplicationRequests لتلقّي إشعارات عند دخول الإضافة إلى الوضع التفاعلي وخروجه منها. (I8fe9d)

الإصدار 1.0

الإصدار 1.0.1

9 شباط (فبراير) 2022

تم طرح "androidx.wear.watchface:watchface-*:1.0.1". يتضمّن الإصدار 1.0.1 هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح الخطأ المتمثل في عدم معالجة PhotoImageComplicationData TapAction بشكل صحيح (I1cc30)

الإصدار 1.0.0

1 كانون الأول (ديسمبر) 2021

تم طرح "androidx.wear.watchface:watchface-*:1.0.0". يتضمّن الإصدار 1.0.0 هذه الالتزامات.

الميزات الرئيسية للإصدار 1.0.0

حزمة androidx.wear.watchface هي المكتبة الجديدة المقترَحة لتطوير خلفيات شاشة ساعة WearOS. يحتوي التطبيق على عدد من الميزات الجديدة مقارنةً بمكتبة الدعم القديمة الخاصة بالأجهزة القابلة للارتداء.

  • توفّر المكتبة بشكل مباشر تصميم المستخدم (مثل تغيير لوحة الألوان أو تصميم اليد أو علامات الساعات أو غير ذلك). أصبحت الآن عملية تطوير أداة تعديل خلفية شاشة الساعة أسهل من خلال استخدام androidx.wear.watchface.editor ويمكن تعديل خلفية شاشة الساعة من التطبيق المصاحب للنظام بدون الحاجة إلى كتابة أي رمز إضافي.androidx.wear.watchface.style
  • أفضل الممارسات الأساسية أنشأت المكتبة تلقائيًا تصنيفات لمحتوى قارئ الشاشة للإضافات (يمكنك أيضًا إضافة تصنيفات خاصة بك)، وسينخفض عدد اللقطات في الثانية تلقائيًا عند انخفاض طاقة البطارية وعدم شحنها، وذلك لتحسين عمر البطارية.
  • لإنشاء خلفية شاشة ساعة، يجب استخدام رموز أقل، خاصةً في الإضافات التي يتم فيها نقل الكثير من النصوص النموذجية إلى المكتبة.

إصلاح الأخطاء

  • إصلاح EditorSession.userStyle.compareAndSet (I6f676)
  • إصلاح تأخيرات خلفية شاشة الساعة القصيرة (Iffb97)
  • إرسال InteractiveWatchFaceImpl.onDestroy إلى سلسلة واجهة المستخدم (I83340)
  • حل عدّة مشاكل في أجهزة استقبال البث (I7d25f)

الإصدار 1.0.0-rc01

3 تشرين الثاني (نوفمبر) 2021

تم طرح "androidx.wear.watchface:watchface-*:1.0.0-rc01". يحتوي الإصدار 1.0.0-rc01 على هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح dump () (087cf9e)

  • تأكَّد من الترتيب الصحيح لـ writeDirectBootPrefs. نريد أن يتم تنفيذ writeDirectBootPrefs دائمًا بعد initStyleAndComplications أو أنّنا نخاطر بتأخير عملية إعداد سلسلة واجهة المستخدم.(37650ac)

  • تأكَّد من طلب الرمز Renderer.onDestroy. في السيناريو الذي تم فيه إنشاء العارض ولكن لم يكتمل إعداد WF ويتم استدعاء Engine.onDestroy، نحتاج إلى استدعاء Renderer.onDestroy. (f9952dc)

  • تحسين/إصلاح لـ isالبطاريةLowAndNotCharging. تنقل رمز التصحيح هذا الإعداد الأولي لـ isLessSmallAndNotCharging بشكلٍ سابق، ما يعني أنّه يمكن إجراء ذلك بالتوازي مع createWatchFace. بالإضافة إلى ذلك، نستمع الآن إلى ACTION_POWER_DISCONNECTED. (ddffd80

  • InteractivewatchFaceClientImpl.isConnectionAlive ليكون خطأ بعد الإغلاق (ab9774e)

الإصدار 1.0.0-beta01

27 تشرين الأول (أكتوبر) 2021

تم طرح "androidx.wear.watchface:watchface-*:1.0.0-beta01". يتضمّن الإصدار 1.0.0-beta01 هذه الالتزامات.

الإصدار 1.0.0-alpha24

13 تشرين الأول (أكتوبر) 2021

تم طرح "androidx.wear.watchface:watchface-*:1.0.0-alpha24". يحتوي الإصدار 1.0.0-alpha24 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تم نقل الصفوف في الحزمة androidx.wear.watchface.complications إلى مشروع wear:watchface:watchface-complications جديد. لاحظ أنّ هذا يعني أنّه لا يمكنك تضمين هذه المكتبة بالإضافة إلى أي إصدار ألفا سابق من wear:watchface:watchface-complications-data لأنك ستتلقّى أخطاء بشأن الفئات المكرّرة. (I97195)
  • تمت إعادة تسمية Renderer.dump إلى Renderer.onDump، وتمت إضافة تعليقات توضيحية إليها باستخدام @UiThread. (I44845)
  • تمت إعادة تسمية "InteractiveWatchFaceClient.addWatchFaceReadyListener" إلى "addOnWatchFaceReadyListener"، وتمت إعادة تسمية "removeWatchFaceReadyListener" إلى "removeOnWatchFaceReadyListener". (I48fea)
  • لم تعُد السمتان EditorSession getComplicationsPreviewData وgetComplicationsDataSourceInfo يعلّقان الدوال، بدلاً من ذلك، هما سمتان StateFlow<> تكون قيمتهما خالية في البداية. في ListenableEditorSession، تمت إزالة getListenableComplicationPreviewData وgetListenableComplicationsProviderInfo لصالح كائنات StateFlow<> الجديدة من الفئة الأساسية. إذا كنت بحاجة إلى رصد التغييرات في رمز JavaScript، يمكنك استخدام androidx.lifecycle.FlowLiveDataConversions.asLiveData للتحويل إلى LiveData<>. (Ic5483)

الإصدار 1.0.0-alpha23

29 أيلول (سبتمبر) 2021

تم طرح "androidx.wear.watchface:watchface-*:1.0.0-alpha23". يتضمّن الإصدار 1.0.0-alpha23 هذه الالتزامات.

الميزات الجديدة

أصبحت مكتبة خلفية شاشة الساعة الآن مجموعة مكتبة واحدة، ونتيجةً لذلك تم نقل المكتبات وستحتاج إلى تعديل عمليات استيراد Gradle على النحو التالي:

قديم جديد
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

تغييرات واجهة برمجة التطبيقات

  • يمكنك نقل مكتبات خلفية شاشة الساعة والإضافات المنفصلة في androidx.wear إلى مجموعة المكتبة androidx.wear.watchface. (b25f3c0)
  • تمت إضافة EditorRequest.canwatchFaceSupportlessEditing الخاص بالبرنامج للسماح للعميل بمعرفة ما إذا كان محرّر خلفية شاشة الساعة يتيح إمكانية التعديل بلا واجهة مستخدم رسومية. لاحظ أنه سيكون هناك بعض السلبيات الخاطئة لذلك لأنه تمت إضافة الدعم في asop/1756809 ولكنه سيعرض القيمة الصحيحة لجميع واجهات الساعة في المستقبل. (ca55590)
  • يحتوي العارض الآن على طريقة dump() التي يمكن تجاوزها لإضافة بيانات مخصّصة إلى المعلومات التي أنشأتها خدمة نشاط ABD Shell dumpsys الخاصة بنشاط WatchFaceService. (95235f9)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener يحدد الآن أداة التنفيذ أولاً. (563ac2f)
  • تمت إزالة StateFlowCompatHelper. ويجب استخدام asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
  • لم يعُد نمط UserStyleRepository.userStyle قابلاً للتغيير. (I44889)
  • تمّت إعادة تسمية WatchFaceReadListener إلى OnWatchFace الشبكةListener. (Ic12a9)

إصلاح الأخطاء

  • InteractiveInstanceManager.deleteInstance tocall onDestroy