خلفية شاشة ساعة Wear
ملاحظة: يجب استخدام تنسيق خلفية شاشة الساعة لتثبيت خلفيات شاشة الساعة على الأجهزة التي تم تثبيت نظام التشغيل Wear OS 5 عليها مسبقًا اعتبارًا من 10 تموز (يوليو) 2024، ولجميع خلفيات شاشة الساعة الجديدة التي يتم نشرها على Google Play اعتبارًا من 27 كانون الثاني (يناير) 2025.
يمكنك الاطّلاع على مزيد من المعلومات عن التغييرات الموجَّهة للمستخدمين في مقالة مركز المساعدة هذه.
آخر تعديل | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار التجريبي الأول |
---|---|---|---|---|
18 أيلول (سبتمبر) 2024 | 1.2.1 | - | - | 1.3.0-alpha04 |
الإعلان عن التبعيات
لإضافة تبعية على Wear، عليك إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle
ل
تطبيقك أو وحدتك:
Groovy
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Kotlin
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإنشاء.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية عن طريق النقر على زر النجمة.
اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.
الإصدار 1.3
الإصدار 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
، ولكن يُنصح بأن يقبلComplicationSlot
SMALL_IMAGE
أيضًا لأنّ المصنّعين الأصليين للأجهزة قد يختارون عرض اختصار إلى تطبيق الصحة بدلاً من القيمة المباشرة. (I34223) - أضفنا
METADATA_KEY_CONFIG_RESTORE_SUPPORTED
الذي يتحكّم، بدءًا من Android U، في ما يحدث عند استعادة النظام من نسخة احتياطية لمصدر بيانات التعقيد باستخدامMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
. يفترض النظام تلقائيًا أنّ خدمة مصدر بيانات المكوّنات الإضافية تتيح الاحتفاظ بنسخة احتياطية من أي بيانات إعدادات، ولكن إذا لم تكن تتيح ذلك، يمكنها إضافة القيمة false إلى إعداد البيانات الوصفيةMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
، ما سيؤدي إلى وضع علامة على خانة المكوّن الإضافي بأنّها غير مُعدّة. (I6c505)
الإصدار 1.2
الإصدار 1.2.1
24 كانون الثاني (يناير) 2024
تم إصدار androidx.wear.watchface:watchface-*:1.2.1
. يحتوي الإصدار 1.2.1 على عمليات الربط هذه.
إصلاح الأخطاء
- تم إصلاح مشكلة تعطُّل على ساعات Samsung Galaxy Watch 4 و5 و6. (43f0b0)
الإصدار 1.2.0
29 تشرين الثاني (نوفمبر) 2023
تم إصدار androidx.wear.watchface:watchface-*:1.2.0
. يحتوي الإصدار 1.2.0 على هذه المراجعات.
التغييرات المهمة منذ الإصدار 1.1.0
- أضفنا إمكانية استخدام بعض أنواع التطبيقات المصغّرة الجديدة التي تتوفّر للاستخدام من Android T:
GoalProgressComplicationData
التي تشبهRangedValueComplicationData
باستثناء أنّها مخصّصة للتقدّم نحو هدف يكون فيه الحدّ الأدنى تلقائيًا صفرًا، ويُسمح بأن تكون القيمة أكبر منtargetValue
.WeightedElementsComplicationData
التي تتألف من صفيف من العناصر (أزواج من الوزن واللون) بالإضافة إلى نص/عنوان/صورة اختيارية وقد يتم عرضها كرسم بياني دائري يجب أن تكون فيه الألوان ذات مغزى وفقًا للسياق، لأنّه لا يتوفّر عادةً مساحة في الرسم المعقد لعرض التصنيفات.
- لقد أضفنا إمكانية استخدام السمة الاختيارية
ColorRanges
فيRangedValueComplicationData
. يتم عادةً عرض الإضافات بألوان خلفية شاشة الساعة، ولكن في بعض الأحيان يكونComplicationDataSource
هو الخيار الأفضل لضبط الألوان، مثلاً عندما يكون لها معنى دلالي معيّن. على سبيل المثال، من الأحمر إلى الأزرق لقياس درجة الحرارة - يتيح الآن كل نوع تقريبًا من
ComplicationData
استخدامSmallImages
. - أضفنا
ComplicationDisplayPolicy
حيث يوجّهDO_NOT_SHOW_WHEN_DEVICE_LOCKED
خلفية شاشة ساعة متوافقة بعدم عرض الإضافة عندما يكون الجهاز مقفلاً. - اعتبارًا من Android T، سيتمكّن المصنّعون الأصليون للأجهزة من تحديد ما إذا كان طلب التعقيد واردًا من خلفية شاشة ساعة في القائمة التي تحدّدها البيانات الوصفية
android.support.wearable.complications.SAFE_WATCH_FACES
في بيان موفّر الخدمة بحلولComplicationRequest#isForSafeWatchFace
. سيحتاج مقدّم الخدمة إلى إذنcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
لتلقّي أي شيء آخر غير TargetWatchFaceSafety.UNKNOWN. - أصبحت ميزة
UserStyleFlavors
ميزة غير تجريبية.
الإصدار 1.2.0-rc01
18 تشرين الأول (أكتوبر) 2023
تم إصدار androidx.wear.watchface:watchface-*:1.2.0-rc01
. يحتوي الإصدار 1.2.0-rc01 على هذه المراجعات.
الإصدار 1.2.0-beta02
6 أيلول (سبتمبر) 2023
تم إصدار androidx.wear.watchface:watchface-*:1.2.0-beta02
. يحتوي الإصدار 1.2.0-beta02 على هذه المراجعات.
الميزات الجديدة
- أصبح التطبيق
SuspendingComplicationDataSourceService#onDestroy
مفتوحًا الآن. يُرجى العِلم أنّه تم إيقاف ميزة عرض معلومات الطقس التلقائية في نظام التشغيل.
تغييرات واجهة برمجة التطبيقات
- ألغِ تفعيل الخيار "إظهار مصدر بيانات جديد للعناصر المخصّصة للطقس". (I6f335)
الإصدار 1.2.0-beta01
23 آب (أغسطس) 2023
تم إصدار androidx.wear.watchface:watchface-*:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على هذه المراجعات.
الميزات الجديدة
- اعتبارًا من Android T، سيتوفّر الآن في WearOS شاشة معلومات مخصّصة لنظام الطقس التلقائي.
تغييرات واجهة برمجة التطبيقات
- إضافة الإعداد التلقائي للنظام في الطقس إلى التطبيقات المصغّرة (Ia0994)
- يضيف هذا الإصلاح
WatchFaceRuntimeService
وWatchFaceControlClient.createWatchFaceRuntimeControlClient
مع ملفّات لفّ 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 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
.يتوفّر أيضًا استخدام ملف تعريف Android T
CustomValueUserStyleSetting2
الذي يمكنه تخزين ما يصل إلى 12.5 كيلوبايت. كان الحدّ الأقصى السابق لـCustomValueUserStyleSetting
هو 1 كيلوبايت. على الرغم من زيادة حدود الحجم، ننصح مطوّري خلفيات شاشة الساعة بجعل حجم البيانات صغيرًا لأنّه يتم إرسال الإعدادات عبر البلوتوث أثناء التعديل، ويكون معدل نقل البيانات عبر البلوتوث محدودًا.
تغييرات واجهة برمجة التطبيقات
- أضفنا مَعلمة اختيارية
eglContextAttribList
إلىGlesRenderer
وGlesRenderer2
تتيح لك ضبطEGL14.EGL_CONTEXT_CLIENT_VERSION
الذي تم تمريره إلىEGL14.eglCreateContext
. (I2a83e) - لقد نقلنا مكتبات خلفيات شاشة الساعة إلى
androidx.core.util.Consumer
بدلاً منjava.util.function.Consumer
. (I273f5) - المزيد من الاستثناءات التي تمّ طرحها من أدوات الوصول إلى سمات KT (Iff9d9)
- أضفنا
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
ليتمكّن العميل من تحديد ما إذا كان يجب محاكاة الدعم أم لا بالنيابة عن خلفيات شاشات الساعة القديمة. (I24c89) - لقد قرّرنا أن يكون
isForSafeWatchFace
IntDef
ثلاثي الحالات. (Ief2f7) - بالنسبة إلى Android T، طرحنا
ComplicationRequest.isForSafeWatchFace
المخصّص لاستخدام المصنّعين الأصليّين للأجهزة ويتطلّبcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
. بالنسبة إلى مصادر البيانات في صورة النظام، ستظهر القيمة "صحيح" إذا كانت خلفية شاشة الساعة التي تطلبها موجودة في قائمة خلفيات شاشة الساعة الآمنة التي حدّدها مصدر البيانات في البيان. (I0cbb6) - بالنسبة إلى Android T، أضفنا
CustomValueUserStyleSetting2
الذي يمكنه تخزين ما يصل إلى 12.5 كيلوبايت. كان الحدّ الأقصى السابق لـCustomValueUserStyleSetting
هو 1 كيلوبايت. (I0b100)
الإصدار 1.2.0-alpha06
25 كانون الثاني (يناير) 2023
تم إصدار androidx.wear.watchface:watchface-*:1.2.0-alpha06
. يحتوي الإصدار 1.2.0-alpha06 على هذه المراجعات.
الميزات الجديدة
- نحن نعمل على إضافة ميزة ربط منصات التطبيقات المعقدة، وهي غير جاهزة للاستخدام بعد، ولكن يُرجى متابعتنا باستمرار.
- أضفنا
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
* وأصلِحwatchfaceOverlayStyle
NullPointerException
. في الظروف العادية، من المفترض ألا تنتهي مهلة هذا الإجراء، بما في ذلك بعد التثبيت الجديد وسيناريوهاتDirectBoot
التي يكون فيها عبء وحدة المعالجة المركزية مرتفعًا. لقد أصلحنا أيضًا خطأ عدم توفّر مثيل للعنصر (NPE) في حال تمّ استدعاءgetWatchfaceOverlayStyle
بعدclose()
.(a4c3a5a)
الإصدار 1.1.0
15 حزيران (يونيو) 2022
تم إصدار androidx.wear.watchface:watchface-*:1.1.0
. يحتوي الإصدار 1.1.0 على عمليات الربط هذه.
التغييرات المهمة منذ الإصدار 1.0.0
ميزات التعديل المحسَّنة:
- أضفنا إمكانية استخدام المخططات الهرمية، ما يسمح بإنشاء تسلسل هرمي للأنماط من خلال واجهات مستخدم المحرّر. يمكنك الآن تحديد رموز منفصلة لاستخدامها في خلفية شاشة الساعة ومحرّري التطبيقات المصاحبة.
- تتوفّر إمكانية تفعيل مثيلات متعددة لخلفية شاشة الساعة، ولكل مثيل رقم تعريف فريد متاح على جميع مساحات عرض واجهات برمجة التطبيقات.
- يمكنك الآن تحديد أسماء
ComplicationSlots
قابلة للقراءة من قِبل المستخدمين لاستخدامها في المحرّرات. - إتاحة تجريبية لاستخدام "نكهات" التصميم، وهي مجموعة من الأنماط المنظَّمة التي ستظهر من خلال المحرِّر المصاحب
- عند تعديل نسختَين من خلفية شاشة الساعة، أصبح من الممكن الآن أن تشارك نُسخ خلفية شاشة الساعة الموارد، ما يوفر مساحة في الذاكرة.
- عند اختيار ميزة مضمّنة في أداة تعديل خلفية شاشة الساعة، يتم الآن اختيار مقدّم الخدمة الحالي مسبقًا.
الإضافات المحسّنة:
- يمكنك الآن تحديد
ComplicationType
لمصادر البيانات الأساسية والثانوية، ما يمنح المطوّرين مزيدًا من المرونة في التجربة التلقائية. - أضفنا
ComplicationDataTimeline
الذي يقدّم تسلسلاً من البيانات المشروطة بالوقت لإرسالها إلى خلفية شاشة الساعة، ويمكن تخزينها مؤقتًا وتعديلها تلقائيًا. على سبيل المثال، توقعات الطقس لهذا اليوم في أوقات مختلفة أو أحداث متعدّدة قادمة في التقويم - إنّ
ComponentName
لموفّر التطبيق المصغّر هو جزء منComplicationData
. - يتم الآن تخزين التطبيقات المصغّرة مؤقتًا، ما يقدّم تجربة أفضل عند التبديل بين خلفيات شاشة الساعة.
التغييرات الأخرى:
- يمكن الآن تحديد
UserStyleSchema
وComplicationSlots
في ملف XML. ويؤدي ذلك إلى تبسيط عملية إنشاء خلفية شاشة الساعة والسماح بطلبات بحث أسرع للبيانات الوصفية من النظام. - يمكن الآن لخلفيات شاشة الساعة التأثير في الألوان المستخدَمة لعرض العناصر التي تظهر على سطح الشاشة.
الإصدار 1.1.0-rc01
18 أيار (مايو) 2022
تم إصدار androidx.wear.watchface:watchface-*:1.1.0-rc01
. يحتوي الإصدار 1.1.0-rc01 على هذه المراجعات.
الميزات الجديدة
- لقد أجرينا بعض التعديلات على واجهة مستخدم تنسيق XML لخلفيات الشاشة، ما سهّل تحديد
ComplicationSlotBounds
والمراجع الداعمة. لا تزال التجربة جارية على ميزة "المعلومات المخصّصة للشاشة"BoundingArc
، وسيتم إتاحتها في الإصدارdrawHighlight
، ولكن لا يُنصح باستخدامها في الوقت الحالي.
تغييرات واجهة برمجة التطبيقات
- لقد أضفنا ميزة تجريبية لتحميل
drawHighlight
تسمح باستخدام مَعلمةBoundingArc
. (I705f8) - يتيح تنسيق XML لخلفية شاشة الساعة الآن استخدام مراجع الموارد. ويتيح لك استخدام الثوابت نفسها في ملف XML وفي الرمز البرمجي. (I3ef61)
- أضفنا إمكانية تحديد
ComplicationSlotBounds
بتنسيقcenter_x
وcenter_y
وsize_x
وsize_y
. أصبح من الممكن الآن أيضًا استخدام وحدات مختلفة (مثل 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
(القيمة التلقائية هي 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)
إصلاح الأخطاء
- تم وضع علامة على طريقة وضع تصميم
ListenableGlesRenderer
الآن بشكل صحيح على أنّها@Throws(GlesException::class)
، ومن الممكن الآن توسيع هذه الفئة في Java. (Iac6d0) - إصلاح خطأ عدم معالجة
PhotoImageComplicationData
tapAction بشكل صحيح (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
في الذاكرة، وفي أحيان أخرى تُسلسله مكتبات خلفية خلفية شاشة الساعة. عند التسلسل، سيتم فقدان أيّ tapAction مرتبط، وفي هذه الحالة سيعرض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
يمكنك استخدامها لعرض هذه البيانات. هناك حزمة جديدة من 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 على هذه المراجعات.
إصلاح الأخطاء
- إصلاح خطأ عدم معالجة
PhotoImageComplicationData
tapAction بشكل صحيح (I1cc30)
الإصدار 1.0.0
1 كانون الأول (ديسمبر) 2021
تم إصدار androidx.wear.watchface:watchface-*:1.0.0
. يحتوي الإصدار 1.0.0 على عمليات الربط هذه.
الميزات الرئيسية في الإصدار 1.0.0
حزمة androidx.wear.watchface
هي المكتبة الجديدة المقترَحة لتطوير خلفيات شاشة الساعة في WearOS. وتتضمّن هذه المكتبة عددًا من الميزات الجديدة مقارنةً بـ "مكتبة دعم الأجهزة القابلة للارتداء" القديمة.
- تتيح المكتبة إمكانية استخدام أسلوب المستخدم (مثل تغيير لوحة الألوان وأسلوب عقارب الساعة ومظهر علامات الساعة وما إلى ذلك) مباشرةً (راجِع
androidx.wear.watchface.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.wear
Watchface و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)