خلفية شاشة ساعة Wear
ملاحظة: يجب استخدام تنسيق خلفية شاشة الساعة لتثبيت خلفيات شاشة الساعة على الأجهزة التي تم تثبيت نظام التشغيل Wear OS 5 أو الإصدارات الأحدث عليها مسبقًا ولجميع خلفيات شاشة الساعة الجديدة المنشورة على Google Play.
اعتبارًا من كانون الثاني (يناير) 2026، سيكون "تنسيق خلفية شاشة الساعة" مطلوبًا لتثبيت خلفيات شاشة الساعة على جميع أجهزة Wear OS.
يمكنك الاطّلاع على مزيد من المعلومات عن التغييرات الموجّهة للمستخدمين في مقالة مركز المساعدة هذه.
| آخر تعديل | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأولي |
|---|---|---|---|---|
| 23 أبريل 2025 | 1.2.1 | - | - | 1.3.0-alpha07 |
تحديد التبعيات
لإضافة تبعية على 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-alpha07
23 أبريل 2025
تم إصدار androidx.wear.watchface:watchface-*:1.3.0-alpha07. يحتوي الإصدار 1.3.0-alpha07 على عمليات الربط هذه.
الميزات الجديدة
- كان من الممكن منذ فترة تعريف مخطّط UserStyle لخلفية شاشة الساعة، ومن الممكن تعريف
ColorUserStyleSettingفي ملف XML.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام KGP 2.0.0 أو إصدار أحدث. (Idb6b5)
- تمت إضافة Watch Face Push API التي تسمح لتطبيق Wear OS بتثبيت خلفية شاشة ساعة على ساعة بشكل آلي.
إصلاح الأخطاء
- ننصحك بترقية موفّري التطبيقات المصغّرة الذين يستخدمون الإصدار 1.3.0-alpha06 بسبب إصلاح خطأ في الأعطال في
ComplicationDataSourceUpdateRequesterعلى الإصدار التالي من WearOS.
الإصدار 1.3.0-alpha06
26 مارس 2025
تم إصدار androidx.wear.watchface:watchface-*:1.3.0-alpha06. يتضمّن الإصدار 1.3.0-alpha06 عمليات الربط هذه.
الميزات الجديدة
- تم إيقاف واجهات برمجة التطبيقات الخاصة بخلفيات شاشة الساعة على Wear OS (watchface وwatchface-client وwatchface-client-guava وwatchface-complications-rendering وwatchface-data وwatchface-editor وwatchface-editor-guava وwatchface-style) نهائيًا لصالح تنسيق خلفية شاشة الساعة على Wear OS، وسيتمّت إزالتها في النهاية من AndroidX. لن يتم إيقاف واجهات برمجة التطبيقات الخاصة بالمزايا الإضافية نهائيًا، وستظل متاحة. (Ice960)
- يمكن الآن لواجهات برمجة تطبيقات الملحقات التواصل مع
WearSDKمباشرةً، ما يُعدّ أكثر فعالية بسبب عدد أقل من عمليات الربط بين العمليات.
الإصدار 1.3.0-alpha05
15 كانون الثاني (يناير) 2025
تم إصدار androidx.wear.watchface:watchface-*:1.3.0-alpha05. يتضمّن الإصدار 1.3.0-alpha05 عمليات الربط هذه.
الميزات الجديدة
تسمح خلفيات شاشة الساعة عادةً للمستخدم باختيار الألوان باستخدام ListUserStyle. على الرغم من أنّ هذا الإجراء يعمل، إلا أنّه يتطلّب إرسال الرموز عبر البلوتوث إلى المحرِّر المصاحب، ما يُعدّ غير فعّال. لذلك، طرحنا ColorUserStyleSetting حيث تكون الحمولة عبارة عن قائمة بلون واحد أو أكثر لكل نمط، مع تنسيق سلك أكثر كثافة.
أضفنا ميزة موجّهة إلى المصنّعين الأصليين للأجهزة تتيح لموفّري الإضافات في التطبيق إضافة عناصر إضافية إلى ComplicationData لاستخدامها في خلفيات شاشات الساعات من المصنّعين الأصليين للأجهزة.
تغييرات واجهة برمجة التطبيقات
- تتضمّن فئتَا
UserStyleSettingوUserStyleOptionالآن أدوات إنشاء، وهي الطريقة المُقترَحة لإنشاء هذه الفئتَين. (Iacd03) - إتاحة تمرير البيانات الإضافية في
ComplicationDataيُعدّ هذا الإجراء مخصّصًا لمصنّعي الأجهزة الأصليين الذين يتحكّمون في كلّ من مقدّم الإضافات وخلفية شاشة الساعة المستلِمة. يتطلب إعداد ميزة إضافية الحصول على إذنcom.google.android.wearable.permission.COMPLICATION_EXTRASالمميّز. (I4e3b2) - تسمح خلفيات شاشة الساعة عادةً للمستخدم باختيار الألوان باستخدام
ListUserStyle، مع رمز لكلListOption. بما أنّه يتم إرسال مخططاتUserStyleعبر البلوتوث، من المهم تقليل حجم المخطط، ما قد يشكّل مشكلة إذا تم توفير العديد من خيارات الألوان بسبب كل هذه الرموز. للمساعدة في ذلك، أضفناColorUserStyleSettingحيث يحتوي الخيار على قائمة بالألوان بدلاً من رمز، وهو أكثر ملاءمةً. (Ib542e) - تتطلّب واجهتا برمجة التطبيقات
ColorUserStyleSettingوColorOptionاستخدام الإصدار 34. (I8771d)
إصلاح الأخطاء
- تستخدم هذه المكتبة الآن تعليقات JSpecify التوضيحية حول القيمة الخالية، وهي عبارة عن استخدام للنوع. على مطوّري Kotlin استخدام وسيطة المُجمِّع التالية لفرض الاستخدام الصحيح:
-Xjspecify-annotations=strict(هذه هي القيمة التلقائية بدءًا من الإصدار 2.1.0 من مُجمِّع Kotlin). (Ifd363، b/326456246)
الإصدار 1.3.0-alpha04
18 أيلول (سبتمبر) 2024
تم إصدار androidx.wear.watchface:watchface-*:1.3.0-alpha04. يتضمّن الإصدار 1.3.0-alpha04 عمليات الربط هذه.
الميزات الجديدة
- تمت إضافة ميزة "التحميل غير المتزامن" للرموز في
UserStyleSettingsوUserStyleOptions، ما يؤدي إلى تحسين أداء تحميل خلفيات شاشة الساعة. (Iaf43d) - تمت إضافة خيار لالتقاط لقطة شاشة معدَّلة عند تغيير إعدادات النظام (مثلاً في حال تغيير اللغة) من خلال
Watchface.setUpdateScreenshotOnConfigurationChangeالجديد. يكون هذا الخيار غير مفعّل بشكل تلقائي. (I765a1)
إصلاح الأخطاء
- تمت إزالة التحديد اليدوي للوصول إلى واجهات برمجة تطبيقات المنصة الجديدة لأنّ ذلك يحدث تلقائيًا من خلال وضع نماذج لواجهات برمجة التطبيقات عند استخدام R8 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) ولجميع الإصدارات عند استخدام AGP 8.1 أو إصدار أحدث (مثل D8 الإصدار 8.1). ننصح العملاء الذين لا يستخدمون AGP بالتحديث إلى الإصدار 8.1 من D8 أو إصدار أحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (Ia60e0، b/345472586)
الإصدار 1.3.0-alpha03
17 نيسان (أبريل) 2024
تم إصدار androidx.wear.watchface:watchface-*:1.3.0-alpha03. يحتوي الإصدار 1.3.0-alpha03 على عمليات الربط هذه.
تغييرات واجهة برمجة التطبيقات
- أضفنا
EditorSession#setOverrideComplicationsالذي يضبط مؤقتًاComplicationDataلنسخة خلفية شاشة الساعة أثناء التعديل. إذا كانت التعقيدات تتغيّر بشكل غير متكرّر، يكون هذا الإجراء أكثر فعالية من إدخال عمليات الاستبدال من خلالEditorSession#renderWatchFaceToBitmap. (I19384)
إصلاح الأخطاء
- في السابق، كان
selectComplicationDataForInstantيستدعيtoApiComplicationDataلأي مخططات زمنية، ما يعني أنّ اختبار المساواة بين المراجع التالي === سيتعذّر إجراؤه دائمًا. وكان ذلك يعني إعادة تحميل الملحقات في كل لقطة، ما يؤدي إلى استنزاف البطارية. (717406)
الإصدار 1.3.0-alpha02
3 نيسان (أبريل) 2024
تم إصدار androidx.wear.watchface:watchface-*:1.3.0-alpha02. يحتوي الإصدار 1.3.0-alpha02 على عمليات الربط هذه.
الميزات الجديدة
- نستخدم الآن مساواة المراجع لمقارنة best و
selectedDataلأنّ عامل المساواة باهظ التكلفة. (446b00)
تغييرات واجهة برمجة التطبيقات
- أضفنا واجهة برمجة تطبيقات ديناميكية لا تتضمّن بديلاً لـ
GoalProgressComplicationData. (c33264)
الإصدار 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، ولكن يُنصح بأن يقبلComplicationSlotSMALL_IMAGEأيضًا لأنّ المصنّعين الأصليين للأجهزة قد يختارون عرض اختصار إلى تطبيق الصحة الخاص بهم بدلاً من القيمة المباشرة. (I34223) - أضفنا
METADATA_KEY_CONFIG_RESTORE_SUPPORTEDالذي يتحكّم، بدءًا من Android U، في ما يحدث عند استعادة النظام من نسخة احتياطية لمصدر بيانات المكوّنات المعقدة باستخدامMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION. يفترض النظام تلقائيًا أنّ خدمة مصدر بيانات المكوّنات الإضافية تتيح الاحتفاظ بنسخة احتياطية من أي بيانات إعدادات، ولكن إذا لم تكن تتيح ذلك، يمكنها إضافة الإعدادMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONللبيانات الوصفية إلى false، ما سيؤدي إلى وضع علامة على خانة المكوّن الإضافي بأنّها غير مُعدّة. (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مع ملفّات لفّ guava. توفّر هذه الإصدارات إمكانية استخدام أوقات تشغيل خلفيات شاشة الساعة، وهي نوع خاص من خلفيات شاشة الساعة التي تحمّل تعريفها من حزمة أخرى. لا يتيح نظام التشغيل 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 OS 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) - المزيد من الاستثناءات التي تمّ طرحها من valueOf (I818fe) في التعداد
- لقد أزلنا
renderWatchFaceToSurfaceواستبدلناه بـcreateRemoteWatchFaceViewالذي تم إنشاؤه على SurfaceControlViewHost ويسمح للمتصل بتضمين عرض من خلفية شاشة الساعة، ويتم عرض هذا العرض عندما يتصل العميل بـRemoteWatchFaceViewHost#renderWatchFace. (Ib311d) - أضفنا
renderWatchFaceToSurfaceإلىInteractiveWatchFaceClientوHeadlessWatchFaceClientوEditorSession. وعادةً ما يكون هذا الإجراء أفضل أداءً من التصدير إلى ملف بتنسيق bitmap. (Ieacad) - تمت إعادة تسمية
ObservableStateStoreإلىStateStore. (Ieb0e2) - تمت إضافة
DynamicTypeEvaluator.Builderبدلاً من وسيطات المُنشئ للسماح بمزيد من الوسائط الاختيارية، بما في ذلكObservableStateStoreالتي يتم ضبطها تلقائيًا الآن على متجر فارغ. (I6f832) - تمّ إعادة ترتيب المَعلمات في
DynamicTypeEvaluator. (Ic1ba4) - تمت إضافة Executor إلى طرق
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.يتوفّر أيضًا استخدام رمز
CustomValueUserStyleSetting2من Android T الذي يمكنه تخزين ما يصل إلى 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) - لقد قرّرنا أن يكون
isForSafeWatchFaceIntDefثلاثي الحالات. (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 على هذه المراجعات.
الميزات الجديدة
- نحن نعمل على إضافة ميزة ربط منصات التطبيقات المعقدة، وهي غير جاهزة للاستخدام بعد، ولكن يُرجى متابعتنا باستمرار.
- أضفنا
ComplicationSlotتنسيق XML لأنواع التعقيدات الجديدة، وهما 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هرميًا، وأصبح من الممكن الآن استخدام أكثر منComplicationSlotsUserStyleSettingواحد في التسلسل الهرمي من Android T. سيكون هناك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. (I31d88) - تتضمّن الآن طريقة وضع التصميم
ComplicationSlotOverlayالتي تم إيقافها نهائيًاDeprecationLevel.WARNING، ما يتيح استدعاؤها من java مرة أخرى. (Ib308c) - لقد أصلحنا بعض مشاكل التوافق مع Java في
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، حيث كان استمرار coroutine في Kotlin يعمل كجذر gc ويحتفظ بنشاط المحرِّر (33ee06)
الإصدار 1.2.0-alpha02
21 أيلول (سبتمبر) 2022
تم إصدار androidx.wear.watchface:watchface-*:1.2.0-alpha02. يحتوي الإصدار 1.2.0-alpha02 على هذه المراجعات.
الميزات الجديدة
تتضمّن بعض خلفيات الشاشة على الساعة إعدادات خارج
UserStyleتؤثر فيها بشكل مرئي (مثل اختيار صورة خلفية). أضفناRenderer.sendPreviewImageNeedsUpdateRequestالذي يسمح لخلفية شاشة الساعة بطلب صورة معاينة معدَّلة. يُرجى العِلم أنّ هذا الإجراء يتطلّب تحديثًا ملائمًا للنظام لكي يعمل.أضفنا أيضًا واجهة برمجة تطبيقات لخلفيات شاشة الساعة من أجل عرض ألوانها على النظام الذي قد يختار لوحة ألوانه استنادًا إلى ذلك. ملاحظة: تم توفير هذه الميزة التجريبية في تصحيح لاحق.
يتيح الآن كلّ نوع من
ComplicationDataتوفُّرSmallImages.
تغييرات واجهة برمجة التطبيقات
- يمكن أن ينفصل مدير الخلفيات أحيانًا عن محرّك وينشئ محرّكًا آخر. أضفنا تعريفًا لعدد صحيح
DisconnectReasonوأضفناClientDisconnectListenerممتدًا باستخدام طريقة جديدة تتضمّنDisconnectReason، ما يسمح للمستمع بمراقبة عمليات فصل المحرّك. (I45cce) - تمت إضافة مَعلمتَين اختياريتَين
nameResourceIdوscreenReaderResourceIdإلىComplicationSlotOverlay(I157e8) - لقد أضفنا حزمة guava لتحميل
getOrCreateInteractiveWatchFaceClientالجديد معPreviewImageUpdateRequestedListener. (Ic31f0) - أضفنا
Renderer.sendPreviewImageNeedsUpdateRequest، وهو مفيد لخلفيات شاشة الساعة التي لها حالة خارجUserStyleSchemaتؤثر في شكلها (مثل خلفية شاشة ساعة يمكن اختيارها). من جانب العميل، أضفناPreviewImageUpdateRequestedListenerكمَعلمة اختيارية إلىgetOrCreateInteractiveWatchFaceClientلمراقبة هذه الطلبات. (Iff44a) - لقد سهّلنا واجهة برمجة التطبيقات لعرض
WatchFaceColors، فأصبح هناك الآن سمة بسيطة تُسمىwatchFaceColorsفي أداة التقديم التي يمكن لخلفية شاشة الساعة ضبطها، ويجب تعديلها حسب الحاجة استجابةً لأي تغييرات في التصميم. بدلاً من استخدام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) - قد يكون من الصعب النقر على المضاعفات الصغيرة. للمساعدة في تخفيف هذه المشكلة، أضفنا إمكانية استخدام الهوامش التي تزيد من مساحة النقر بدون التأثير في العرض. ما لم يتم تحديد قيمة (إما في الرمز أو عبر XML)، تكون الهوامش في
ComplciationSlotsبحجم صفر. (I14089) - تم تغيير توقيع
getComplicationSlotInflationFactory(CurrentUserStyleRepository)لعرض مثيل مصنع غير صفري. كان من الخطأ عرض قيمة فارغة في السابق، لذا فإنّ هذا التغيير سيجعل اتّفاقية واجهة برمجة التطبيقات أكثر وضوحًا. (I0fcc0) - أضفنا وسيطة
currentUserStyleRepositoryإلى طريقةWatchFaceService.getComplicationSlotInflationFactoryلتكون متسقة معcreateComplicationSlotsManager. (I2ddd2) - أصبحت
UserStyleFlavorsميزة غير تجريبية. (I69cdc) - لقد أزلنا العنصر التجريبي
ValueTypeمنRangedValueComplicationDataوأضفنا بدلاً منه العنصر التجريبيDiscreteRangedValueComplicationDataالذي يشبهRangedValueComplicationDataباستثناء النطاق والقيمة الصحيحَين. لقد طرحنا أيضًا دالةGoalProgressComplicationDataالتجريبية التي تشبه دالةRangedValueComplicationDataباستثناء أنّها مخصّصة للتقدّم نحو هدف يكون فيه الحدّ الأدنى تلقائيًا صفرًا، ويُسمح بأن تكون القيمة أكبر منtargetValue. ملاحظة لجميع الأسعار المتغيرةRangedValue: يجب تحديد واحد على الأقل من monochromeImage أو text أو title. (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سريعة، ولكن إذا لم تكن كذلك لأي سبب، قد يؤدي ذلك إلى حدوث مشكلة في عمليات الربط أو ANR. ينقل هذا الإصلاح العمل غير الضروري خارج القفل، ما يزيل احتمال حدوث حالة جمود.(5a2adca)حلّ عدّة مشاكل أدّت إلى الاحتفاظ بـ
WatchFaceServiceيمكن أن يحتفظ WakeLock أحيانًا بحالةWatchFaceService، ويمكن حلّ هذه المشكلة من خلال إضافة طلبrelease(). يمكن أيضًا أن يحتفظStateFlowsبـWatchFaceService، ويؤدي إلغاءCoroutineScopesالأساسي إلى حلّ هذه المشكلة.(fd48138)أضِف مهلات إلى
awaitDeferredWatchFace* وأصلِحwatchfaceOverlayStyleNullPointerException. في الظروف العادية، من المفترض ألا تنتهي مهلة هذا الإجراء، بما في ذلك بعد التثبيت الجديد وسيناريوهاتDirectBootالتي يكون فيها عبء وحدة المعالجة المركزية مرتفعًا. لقد أصلحنا أيضًا خطأ عدم توفّر مثيل للعنصر في حال تمّ استدعاء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. أصبح من الممكن الآن أيضًا استخدام وحدات مختلفة (مثل dp) باستخدام مراجع الموارد. (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 بشكلٍ غير صحيح على أنّها ذات نوع المضاعفة الرئيسية، ما يؤدي إلى حدوث أخطاء في وقت التشغيل عند الوصول إلى الحقول المطلوبة غير المتوفّرة. (55ffdf5) - إصلاح خطأ كان يؤدي إلى إسقاط حقول المخطط الزمني(fb392f5)
setComplicationData - إصلاح خطأ يؤدي في بعض الأحيان إلى حدوث خطأ في وقت التشغيل(12ca62e)
runBlockingWithTracing - إصلاح خطأ يؤدي أحيانًا إلى ظهور
ClassNotFoundException: android.support.wearable.complications.ComplicationTextعند تلقّي شاشة معلومات مصغّرة (217942d9) - إصلاح خطأ في
GlesRenderer.backgroundThreadInitInternalكان يؤدي إلى استدعاءonBackgroundThreadGlContextCreatedفقط إذا تم استدعاءEGL14.eglCreateContextإصلاح خطأ آخر كان يتسبب في حدوث خلل في الرؤية في لقطة الشاشة بسببverticalFlip.(c674ad2) - حلّ مشكلة التحقّق من إصدار
WatchFaceServiceبتنسيق XML، حيث كان يتم تحميله من الحزمة غير الصحيحة (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التي يتم تمريرها إلى طرق العرض. بالنسبة إلى إمكانية التشغيل التفاعلي لتطبيقات Java، طرحناListenableCanvasRenderer2وListenableGlesRenderer2. (I31ffa) - تمت إضافة
@WatchFaceFlavorsExperimentalإمكانية تحديد النكهات - قائمة مُعدّة مسبقًا من خلفيات شاشة الساعة المصمّمة (I04dd0) - أصبح
Renderer.sharedAssetsالآن مسارًا متسلسلًا للحالات، وقد أزلنا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محدّثًا في بعض الأحيان (مثل ComplicationData المخزّنة مؤقتًا والتي انتهت صلاحيتها)، لذلك أضفنا إلى العنصرNoDataComplicationعنصر ComplicationData النائب الاختياري وأضفنا العناصر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) - تم تعديل nullability في core وappcompat لمطابقة الإصدار DP2 من Tiramisu (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. يتيح ذلك للنظام جلب أسماء ComplicationSlots لاستخدامها في المحرّرين وبرامج قراءة الشاشة. (If6c6a) - يرمي
WatchfaceMetadataClient.getUserStyleSchemaوgetComplicationSlotMetadataMapالآنWatchFaceExceptionبدلاً منRemoteException. (I86f11) - تمّت إعادة تسمية الدالة
onSynchronousComplicationRequestوالدوالّ ذات الصلة بها فيComplicationDataSourceServiceإلىonImmediateComplicationRequestوما إلى ذلك. (I87ba0) - تشغل تطبيقات تعديل خلفيات شاشة الساعة مساحة أقل بكثير على الشاشة مقارنةً بتطبيقات تعديل التطبيقات المصاحبة، لذا من المنطقي أن تتيح هذه التطبيقات استخدام رموز مختلفة. تضيف هذه الرقع
OnWatchEditorData(التي تحتوي حاليًا على رمز فقط) إلى جميع UserStyleSettings وإلى فئات Option كلما كان ذلك مناسبًا. (If1886) - أضفنا
@JvmOverloadsإلى المنشئ ListenableGlesRenderer لتحسين إمكانية التشغيل التفاعلي مع Java. (I2974a)
إصلاح الأخطاء
- تم الآن وضع علامة على طريقة وضع تصميم
ListenableGlesRendererبشكل صحيح على أنّها@Throws(GlesException::class)، ومن الممكن الآن توسيع هذه الفئة في Java. (Iac6d0) - إصلاح خطأ في
PhotoImageComplicationDatatapAction الذي لا تتم معالجته بشكل صحيح (I1cc30)
الإصدار 1.1.0-alpha02
12 كانون الثاني (يناير) 2022
تم إصدار androidx.wear.watchface:watchface-*:1.1.0-alpha02. يحتوي الإصدار 1.1.0-alpha02 على هذه المراجعات.
الميزات الجديدة
- للمساعدة في تصحيح الأخطاء والاختبار، تم استبدال طرق hashcode وequals وtoString في
ComplicationDataوالفئات الفرعية ذات الصلة، ما يسهّل التعامل معها.
تغييرات واجهة برمجة التطبيقات
- تُعرِض طرق
WatchfaceMetadataClientمرة أخرىRemoteExceptionsعند الاقتضاء، ما يسهِّل على رمز العميل رصد الأخطاء من خلفية شاشة الساعة. (I78785) - تحتوي فئة
ComplicationDataوالفئات الفرعية الآن على hashcode وequals و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ذات قيود زمنية لإرسالها إلى خلفية شاشة الساعة التي يمكن الاحتفاظ بذاكرتها المؤقتة وتعديلها تلقائيًا. على سبيل المثال، توقعات الطقس لهذا اليوم في أوقات مختلفة أو أحداث متعدّدة قادمة في التقويم تمّت إضافة طريقة جديدةonComplicationDataTimelineإلىComplicationRequestListenerيمكنك استخدامها لعرض هذه البيانات.تمّت توسيع نطاق
DefaultComplicationDataSourcePolicyلكي تتمكّن من تحديدComplicationTypeلمصادر البيانات الأساسية والثانوية.أضفنا ميزة التوافق مع مزوّدي التطبيقات الملحقة المتزامنة التي يتم تعديلها بمعدّل تكرار أعلى من المعتاد، يصل إلى مرّة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير شاشة الإضاءة السينمائية. ملاحظة: قد يكون استخدام مقدّمي التطبيقات المتوافقة مع ميزة "المعلومات المخصّصة" المتزامنة محدودًا بسبب المخاوف المتعلّقة بضغط الذاكرة.
من المحتمل أن يتم التراجع عن
PendingIntentTapListenerتغيير لأنّنا حللنا المشكلة الأساسية (لا يمكن لشاشة الساعة تشغيل الأنشطة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية) في إطار العمل بدلاً من ذلك.
تغييرات واجهة برمجة التطبيقات
- تم تغيير الرمز
ComplicationData.isCachedإلىtapActionLostDueToSerialization، وهو أكثر فائدة عند تحديد ما إذا كان يجب عرض خانة المكوّن المعقد بشكل مختلف للإشارة إلى أنّه لا يمكن النقر عليها. (I6de2f) - تمت إضافة
ComplicationDataTimelineإلىwear-complication-data-source. يمكن استخدام هذا الإجراء لتوفير تسلسل منComplicationDataذات قيود زمنية لإرسالها إلى خلفية شاشة الساعة التي يمكن الاحتفاظ بذاكرتها المؤقتة وتعديلها تلقائيًا. على سبيل المثال، توقعات الطقس لهذا اليوم في أوقات مختلفة أو أحداث متعدّدة قادمة في التقويم تمّت إضافة طريقة جديدةonComplicationDataTimelineإلىComplicationRequestListenerيمكنك استخدامها لعرض هذه البيانات. هناك حزمة kotlin جديدةSuspendingTimelineComplicationDataSourceServiceلإيقاف خدمات مصادر البيانات. (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 على هذه المراجعات.
إصلاح الأخطاء
- إصلاح خطأ في
PhotoImageComplicationDatatapAction الذي لا تتم معالجته بشكل صحيح (I1cc30)
الإصدار 1.0.0
1 كانون الأول (ديسمبر) 2021
تم إصدار androidx.wear.watchface:watchface-*:1.0.0. يحتوي الإصدار 1.0.0 على عمليات الربط هذه.
الميزات الرئيسية في الإصدار 1.0.0
حزمة androidx.wear.watchface هي المكتبة الجديدة المقترَحة لتطوير خلفيات شاشة الساعة في WearOS. وتتضمّن هذه المكتبة عددًا من الميزات الجديدة مقارنةً بـ Wearable Support Library القديمة.
- تتيح المكتبة إمكانية استخدام أسلوب المستخدم (مثل تغيير لوحة الألوان ونمط عقارب الساعة ومظهر علامات الساعة وما إلى ذلك) مباشرةً (راجِع
androidx.wear.watchface.style). أصبح من الأسهل الآن تطوير محرِّر على خلفية شاشة الساعة باستخدام androidx.wear.watchface.editor ويمكن تعديل خلفية شاشة الساعة من التطبيق المصاحب للنظام بدون الحاجة إلى كتابة أي رمز إضافي. - أفضل الممارسات مضمّنة تُنشئ المكتبة تلقائيًا تصنيفات محتوى قارئ الشاشة للعناصر المعقدة (يمكنك أيضًا إضافة تصنيفاتك الخاصة)، وينخفض معدّل عرض اللقطات تلقائيًا عندما تكون البطارية منخفضة الشحن وغير مشحونة لتحسين عمر البطارية.
- لا يتطلّب تطوير خلفية شاشة الساعة الكثير من الرموز البرمجية، خاصةً في حالة التطبيقات الملحقة التي تم نقل الكثير من الرموز البرمجية الثابتة إليها.
إصلاح الأخطاء
- حلّ المشكلة
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() (التي يتمّ استدعاؤها من خلال adb shell dumpsys) التي تعطّلت بسبب عمليات نقل البيانات (087cf9e)
تأكَّد من ترتيب writeDirectBootPrefs بشكل صحيح. نريد أن يتم تنفيذ writeDirectBootPrefs دائمًا بعد initStyleAndComplications، وإلا سنخاطر بتأخير بدء سلسلة مهام واجهة المستخدم.(37650ac)
تأكَّد من استدعاء Renderer.onDestroy. في السيناريو الذي تم فيه إنشاء العارض ولكن لم تكتمل عملية إعداد WF وتم استدعاء Engine.onDestroy، يجب استدعاء Renderer.onDestroy. (f9952dc)
تحسين/إصلاح isBatteryLowAndNotCharging ينقل هذا الإصلاح الإعداد الأولي لـ isBatteryLowAndNotCharging في وقت أبكر، ما يعني أنّه يمكن إجراؤه بالتوازي مع 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<>الجديدة من الفئة الأساسية. إذا كنت بحاجة إلى الاستماع إلى التغييرات في رمز Java، ننصحك باستخدام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.wearWatchface وComplications المنفصلتَين إلى مجموعة مكتباتandroidx.wear.watchface(b25f3c0) - تمت إضافة EditorRequest.canWatchFaceSupportHeadlessEditing لإعلام العميل إذا كان محرِّر خلفية شاشة الساعة يتيح التعديل بدون واجهة مستخدم. يُرجى العِلم أنّه ستظهر بعض النتائج السلبية الخاطئة بسبب إضافة الدعم في asop/1756809، ولكن سيتم عرض القيمة الصحيحة لجميع خلفيات الشاشة المستقبلية. (ca55590)
- يحتوي "المشغِّل" الآن على طريقة dump() التي يمكن إلغاء تحديدها لإضافة بيانات مخصّصة إلى المعلومات التي يتم إنشاؤها بواسطة خدمة نشاط dumpsys shell ABD WatchFaceService. (95235f9)
- يحدّد InteractiveWatchFaceClient.addWatchFaceReadyListener الآن المُنفِّذ أولاً. (563ac2f)
- تمّت إزالة StateFlowCompatHelper. يجب استخدام asLiveData (androidx.lifecycle.asLiveData) بدلاً منها. (bd35d3)
- لم تعُد سمة CurrentUserStyleRepository.userStyle قابلة للتغيير. (I44889)
- تمت إعادة تسمية WatchFaceReadyListener ليصبح OnWatchFaceReadyListener. (Ic12a9)
إصلاح الأخطاء
- InteractiveInstanceManager.deleteInstance لطلب onDestroy. هذا مطلوب لضمان جمع المهملات في InteractiveWatchFaceImpl.(fce4af8، b/199485839)