خلفية شاشة الساعة على Wear OS
ملاحظة: يجب استخدام تنسيق خلفية شاشة الساعة لتطوير خلفيات شاشة الساعة التي سيتم تثبيتها مسبقًا على الأجهزة التي تعمل بنظام التشغيل Wear OS 5 أو الإصدارات الأحدث، وكذلك جميع خلفيات شاشة الساعة الجديدة التي سيتم نشرها على Google Play.
اعتبارًا من يناير 2026، سيصبح استخدام "تنسيق خلفية شاشة الساعة" شرطًا لتثبيت خلفيات شاشة الساعة على جميع أجهزة Wear OS.
يمكنك الاطّلاع على مزيد من المعلومات حول التغييرات التي تظهر للمستخدمين في هذه المقالة في مركز المساعدة.
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 17 ديسمبر 2025 | 1.2.1 | - | 1.3.0-beta01 | - |
تحديد الاعتماديات
لإضافة اعتمادية على 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. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.3
الإصدار 1.3.0-beta01
17 ديسمبر 2025
تم طرح androidx.wear.watchface:watchface-*:1.3.0-beta01. يتضمّن الإصدار 1.3.0-beta01 هذه التعديلات.
الميزات الجديدة
- تمت إضافة إمكانية عرض بيانات معاينة ثابتة للعناصر، حيث يمكن لموفّر العناصر تحديد بيانات معاينة ثابتة في ملف البيان، راجِع
androidx.wear.watchface.complications.data.parser.StaticPreviewDataParserلمزيد من التفاصيل. - تمت إضافة فئة الأداة
ComplicationTextFormattingمع إمكانية تنسيق البيانات والوقت بأقل قدر ممكن من التفاصيل، ما يفيد في العناصر الصغيرة التي تكون فيها المساحة محدودة للغاية.
تغييرات واجهة برمجة التطبيقات
- أصبحت السمة التجريبية
Renderer.watchfaceColorsخاصة الآن. لا تزال هناك أدوات وصول عامة لهذه السمة. (Ifdf60، b/409363281)
إصلاح الأخطاء
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP. (I48968، b/407632515)
الإصدار 1.3.0-alpha07
23 أبريل 2025
تم طرح androidx.wear.watchface:watchface-*:1.3.0-alpha07. يتضمّن الإصدار 1.3.0-alpha07 هذه التعديلات.
الميزات الجديدة
- لقد كان من الممكن تحديد مخطط UserStyle لخلفية شاشة الساعة لفترة من الوقت، كما يمكن تحديد
ColorUserStyleSettingفي XML.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP. (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 (مثل watchface وwatchface-client وwatchface-client-guava وwatchface-complications-rendering وwatchface-data وwatchface-editor وwatchface-editor-guava وwatchface-style) نهائيًا لصالح تنسيق خلفية شاشة الساعة على Wear، وستتم إزالتها نهائيًا من 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 مع الإصدار 7.3 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 3.3 من R8)، وجميع عمليات الإنشاء عند استخدام الإصدار 8.1 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 8.1 من D8). ننصح العملاء الذين لا يستخدمون "مكوّن Android الإضافي لبرنامج Gradle" بالترقية إلى الإصدار 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 هذه التعديلات.
الميزات الجديدة
- نستخدم الآن المساواة المرجعية لمقارنة أفضل و
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فقط، ولكن يُنصح بأن يقبلComplicationSlotعناصرSMALL_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 حيث نعيد تسمية تعريفات الأعداد الصحيحة حتى لا يحتاج أي رمز يعتمد على
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، ويمكن لكليهما استخدام التعبيرات الديناميكية بالإضافة إلى عمليات الربط بالمنصة التي يتم تعديلها بمعدّل مرة واحدة في الثانية على أجهزة 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 هذه التعديلات.
الميزات الجديدة
- بدءًا من الإصدار T من نظام التشغيل Android، يمكن لموفّري الإضافات الذين لديهم الإذن المميز
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) - More thrown exceptions from enum valueOf (I818fe)
- لقد أزلنا
renderWatchFaceToSurfaceواستبدلناه بـcreateRemoteWatchFaceViewالذي تم إنشاؤه استنادًا إلى SurfaceControlViewHost ويسمح للمتصل بتضمين عرض من خلفية شاشة الساعة، ويتم عرضه عندما يستدعي العميلRemoteWatchFaceViewHost#renderWatchFace. (Ib311d) - لقد أضفنا
renderWatchFaceToSurfaceإلىInteractiveWatchFaceClientوHeadlessWatchFaceClientوEditorSession. سيكون هذا عادةً أكثر فعالية من العرض إلى صورة نقطية. (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.يتوفّر أيضًا من 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) - لقد قرّرنا أن يكون
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 هذه التعديلات.
الميزات الجديدة
- نعمل حاليًا على إضافة إمكانية ربط المنصات بعناصر واجهة المستخدم المعقّدة، ولكن هذه الميزة غير جاهزة للاستخدام بعد، لذا يُرجى متابعتنا باستمرار.
- أضفنا إمكانية استخدام 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الهرمية، وبدءًا من الإصدار T من نظام التشغيل Android، أصبح من الممكن استخدام أكثر منComplicationSlotsUserStyleSettingواحد في التسلسل الهرمي. سيتم تفعيلComplicationSlotsUserStyleSettingواحد فقط استنادًا إلى اختيارات المستخدم للأسلوب.نعمل على تحسين توافُق قارئ الشاشة مع
ListOptionوComplicationSlotsOptionمن خلال إضافة حقلscreenReaderName، علمًا بأنّ محرّرات التطبيقات المصاحبة ستتجاهل هذا الحقل قبل الإصدار T من نظام التشغيل Android.
تغييرات واجهة برمجة التطبيقات
- أضفنا حقل
screenReaderNameاختياريًا جديدًا إلىListOptionوComplicationSlotsOptionليستخدمه المحرّرون، وسيتم تجاهله من قِبل المحرّرين المرافقين على الأجهزة التي تعمل بإصدارات Android الأقدم من T. (I75326) - بدءًا من الإصدار T من نظام التشغيل Android، أصبح من الممكن استخدام عدة
ComplicationSlotsUserStyleSettingsفي تسلسل هرمي للأنماط، شرط أن يكون واحد منها فقط نشطًا في أي وقت. أضفنا دالة مساعدةfindComplicationSlotsOptionForUserStyleإلىUserStyleSchemaللمساعدة في العثور علىComplicationSlotsOptionالنشط، إذا كان هناك أي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) - تم الآن وضع علامة T API على
ComplicationPersistencePolicyوComplicationDisplayPolicyبشكل صحيح. (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، حيث كان استمرار روتين فرعي في Kotlin يعمل كجذر لعملية جمع البيانات غير المستخدَمة ويحتفظ بنشاط المحرِّر (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إلى Renderer، ما يتيح للنظام الحصول على ألوان خلفية شاشة الساعة من خلالWallpaperManager.getWallpaperColors. (I3d611) - تتوافق الآن جميع إصدارات
ShortTextComplicationDataوRangedValueComplicationDataوNoPermissionComplicationData(والإصدارات التجريبيةDiscreteRangedValueComplicationDataوGoalProgressComplicationDataوWeightedElementsComplicationData) معSmallImages. إذا اختار خلفية شاشة الساعة عرض إحدى الإضافات بألوان متعددة، يمكنها الآن استخدامSmallImageمتعدد الألوان، بينما كان عليها في السابق استخدام صورة أحادية اللون. (I257df) - إعادة هيكلة
PreviewImageUpdateRequestedListenerليكونConsumer<>بدلاً من ذلك (Ia875d) - استبدال نوع طريقة التجريد الفردية (SAM) المخصّصة
OnWatchfaceColorsListenerبنوع طريقة التجريد الفردية (SAM) العام في Java (المستهلك) (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. ملاحظة: يجب تحديد واحد على الأقل من monochromeImage أو النص أو العنوان لجميع متغيرات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سريعة، ولكن إذا لم تكن كذلك لسبب ما، فقد ينتهي بنا الأمر إلى حدوث توقّف تام أو خطأ ANR. تنقل هذه الحزمة العمل غير الضروري خارج القفل، ما يزيل احتمال حدوث توقّف تام.(5a2adca)تم إصلاح عدّة مشاكل كانت تحتفظ بـ
WatchFaceService. يمكن أن يحتفظ WakeLock أحيانًا بـWatchFaceService، ويمكن حلّ هذه المشكلة من خلال إضافة استدعاءrelease(). يمكن أن تحتفظStateFlowsأيضًا بـWatchFaceService، ويؤدي إلغاءCoroutineScopesالأساسي إلى حلّ هذه المشكلة.(fd48138)إضافة مهلات إلى
awaitDeferredWatchFace* وإصلاحwatchfaceOverlayStyleNullPointerExceptionفي الظروف العادية، من المفترض ألا تنتهي مهلة هذا الإجراء، حتى بعد التثبيت الجديد وسيناريوهات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 بشكلٍ غير صحيح على أنّها تتضمّن نوع المضاعفة الرئيسية، ما يؤدي إلى أخطاء NPE عند الوصول إلى الحقول المطلوبة غير المتوفّرة. (55ffdf5) - إصلاح الخطأ الذي كانت فيه
setComplicationDataتسقط حقول المخطط الزمني(fb392f5) - تم إصلاح الخطأ الذي كان يؤدي في بعض الأحيان إلى حدوث خطأ NPE عند استخدام
runBlockingWithTracing(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.getUserStyleFlavorsRuntimeException غير مُعالج بدلاً من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الآن 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محدّثة دائمًا (مثل ComplicationData منتهية الصلاحية والمخزّنة مؤقتًا)، لذا أضفنا إلىNoDataComplicationComplicationData اختيارية للعنصر النائب، وأضفنا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) - تم تعديل إمكانية القيم الخالية في حزمتَي core وappcompat لتتوافق مع الإصدار التجريبي الثاني من 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(القيمة التلقائية هي false)، وفي حال ضبطها على true، سيتم محو لوحة الرسم باستخدام لون التظليل في الخلفية. (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)
إصلاح الأخطاء
- تم الآن وضع علامة
@Throws(GlesException::class)بشكل صحيح على طريقة وضع تصميمListenableGlesRenderer، وأصبح من الممكن توسيع نطاق هذه الفئة في Java. (Iac6d0) - إصلاح الخطأ الذي يتسبّب في عدم التعامل بشكل صحيح مع
PhotoImageComplicationDatatapAction (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والفئات الفرعية الآن 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أحيانًا في الذاكرة مؤقتًا، وتعمل مكتبات خلفيات شاشة الساعة أحيانًا على تسلسله. عند تسلسل أي tapAction مرتبط، سيتم فقدانه. وفي حال حدوث ذلك، ستعرضComplicationData.tapActionLostDueToSerializationالقيمةtrue، ويجب أن تعرض خلفية الساعة العنصر بشكل مختلف (على سبيل المثال، بلون رمادي أو شبه شفاف) للإشارة إلى أنّه لا يمكن النقر عليه. سيرسل النظامComplicationDataمعدَّلة تتضمّنtapActionفي أقرب وقت ممكن.لا يجب تخزين بعض
ComplicationDataمؤقتًا لفترة طويلة، ولتوفير هذه الإمكانية، أضفنا ميزة أكثر عموميةComplicationDataTimeline. يمكن استخدام ذلك لتوفير سلسلة منComplicationDataالتي يتم عرضها على خلفية الساعة بعد فترة زمنية محددة، ويمكن تخزينها مؤقتًا وتعديلها تلقائيًا. على سبيل المثال، توقعات الطقس اليوم في أوقات مختلفة أو أحداث متعددة قادمة في التقويم. تمت إضافة طريقة جديدةonComplicationDataTimelineإلىComplicationRequestListenerيمكنك استخدامها لعرض هذه البيانات.تمّت إضافة إمكانية تحديد
ComplicationTypeلمصادر البيانات الأساسية والثانوية إلىDefaultComplicationDataSourcePolicy.أضفنا إمكانية استخدام أدوات توفير الإضافات المتزامنة التي يتم تعديل الإضافة فيها بمعدّل تكرار أعلى من المعدّل العادي، يصل إلى مرة واحدة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير محيطة. ملاحظة: قد يكون استخدام مقدّمي البيانات المتزامنة للتعقيدات محدودًا بسبب مخاوف بشأن ضغط الذاكرة.
من المرجّح أن يتم التراجع عن التغييرات في
PendingIntentTapListenerلأنّنا حللنا المشكلة الأساسية (لا يمكن لوجه الساعة تشغيل الأنشطة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية) في إطار العمل بدلاً من ذلك.
تغييرات واجهة برمجة التطبيقات
- تم تغيير قيمة
ComplicationData.isCachedإلىtapActionLostDueToSerialization، وهي أكثر فائدة عند تحديد ما إذا كان يجب عرض خانة البيانات المعقّدة بشكل مختلف للإشارة إلى أنّه لا يمكن النقر عليها. (I6de2f) - تمّت إضافة "
ComplicationDataTimeline" إلى "wear-complication-data-source". يمكن استخدام ذلك لتوفير سلسلة منComplicationDataالتي يتم عرضها على خلفية الساعة بعد فترة زمنية محددة، ويمكن تخزينها مؤقتًا وتعديلها تلقائيًا. على سبيل المثال، توقعات الطقس اليوم في أوقات مختلفة أو أحداث متعددة قادمة في التقويم. تمت إضافة طريقة جديدةonComplicationDataTimelineإلىComplicationRequestListenerيمكنك استخدامها لعرض هذه البيانات. يتوفّر برنامج تضمين جديد بلغة KotlinSuspendingTimelineComplicationDataSourceServiceلتعليق خدمات مصدر البيانات. (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 هي false بعد الإغلاق (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) - لم يعُد
getComplicationsPreviewDataوgetComplicationsDataSourceInfoفي EditorSession دالتَين معلّقتَين، بل أصبحا سمتَينStateFlow<>تكون قيمتهما في البداية فارغة. تمت إزالةgetListenableComplicationPreviewDataوgetListenableComplicationsProviderInfoفي ListenableEditorSession لصالح عناصر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.wearخلفيات شاشة الساعة وعناصر واجهة المستخدم المنفصلتَين إلى مجموعة مكتباتandroidx.wear.watchface(b25f3c0) - تمت إضافة EditorRequest.canWatchFaceSupportHeadlessEditing لإعلام العميل ما إذا كانت أداة تعديل خلفية شاشة الساعة تتيح التعديل بدون واجهة مستخدم. يُرجى العِلم أنّه ستكون هناك بعض النتائج السلبية الخاطئة بسبب إضافة ميزة التوافق في asop/1756809، ولكن سيتم عرض القيمة الصحيحة لجميع خلفيات شاشة الساعة المستقبلية. (ca55590)
- يتضمّن Renderer الآن طريقة dump() يمكن إلغاؤها لإضافة بيانات مخصّصة إلى المعلومات التي يتم إنشاؤها بواسطة خدمة نشاط dumpsys في واجهة ADB WatchFaceService. (95235f9)
- تحدّد الدالة InteractiveWatchFaceClient.addWatchFaceReadyListener الآن المنفِّذ أولاً. (563ac2f)
- تمت إزالة StateFlowCompatHelper، ويجب استخدام asLiveData (androidx.lifecycle.asLiveData) بدلاً منه. (bd35d3)
- لم يعُد CurrentUserStyleRepository.userStyle قابلاً للتغيير. (I44889)
- تمت إعادة تسمية WatchFaceReadyListener إلى OnWatchFaceReadyListener. (Ic12a9)
إصلاح الأخطاء
- يجب استدعاء InteractiveInstanceManager.deleteInstance إلى onDestroy لضمان جمع البيانات غير الضرورية في InteractiveWatchFaceImpl.(fce4af8، b/199485839)