خلفية شاشة ساعة Wear
ملاحظة: اعتبارًا من 10 يوليو 2024، يجب أن تستخدم خلفيات شاشة الساعة تنسيق واجهة الساعة ويتم تثبيته على الساعات الجديدة التي تعمل بنظام التشغيل Wear OS 5 المثبّت مسبقًا. مزيد من المعلومات حول التغييرات التي تواجه المستخدم في هذه مركز المساعدة المقالة.
بالإضافة إلى ذلك، بدءًا من أوائل عام 2025 (سيتم الإعلان عن التاريخ المحدّد خلال الربع الرابع من عام 2024)، يجب أن تستخدم جميع خلفيات شاشة الساعة الجديدة المنشورة على Google Play خلفية شاشة الساعة. تهيئة.
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
17 أبريل 2024 | 1.2.1 | - | - | 1.3.0-alpha03 |
إعلان التبعيات
لإضافة اعتمادية على 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-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
إلى "خطأ"، ما يؤدي إلى وضع علامة على خانة البيانات الإضافية بأنّه لم يتم ضبطها. (I6c505)
الإصدار 1.2
الإصدار 1.2.1
24 يناير 2024
تم طرح androidx.wear.watchface:watchface-*:1.2.1
. يحتوي الإصدار 1.2.1 على عمليات الالتزام هذه.
إصلاح الأخطاء
- تم إصلاح عطل في ساعة Samsung Galaxy Watch 4 و5 و5 6- (43f0b0)
الإصدار 1.2.0
29 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.wear.watchface:watchface-*:1.2.0
. يحتوي الإصدار 1.2.0 على عمليات الالتزام هذه.
تغييرات مهمة منذ الإصدار 1.1.0
- لقد أتحنا بعض أنواع الإضافات الجديدة المتاحة للاستخدام من Android T:
GoalProgressComplicationData
الذي يشبهRangedValueComplicationData
باستثناء أنه يتعلق بالتقدم نحو هدف حيث يكون الحد الأدنى ضمنيًا صفرًا، ويُسمح بأن تكون القيمة أكبر منtargetValue
.WeightedElementsComplicationData
التي تتألّف من مصفوفة من العناصر (أزواج من الوزن واللون) بالإضافة إلى نص/عنوان/صورة اختياري. يمكن عرض هذه النتائج كمخطط دائري حيث يجب أن تكون الألوان ذات معنى بالنظر إلى السياق، حيث لا يكون هناك عادة مجال في الإضافة لعرض التصنيفات.
- لقد أتحنا طريقة الدفع الاختيارية
ColorRanges
إلىRangedValueComplicationData
. عادةً ما يتم عرض الإضافات بالألوان التي تختارها خلفية شاشة الساعة، ولكن في بعض الأحيان يكون من الأفضل وضع "ComplicationDataSource
" لضبط الألوان، مثلاً عندما يكون لها معنى دلالي معين. مثلاً: الأحمر إلى الأزرق لدرجة الحرارة. - يتوافق كل نوع من أنواع
ComplicationData
تقريبًا معSmallImages
. - لقد أضفنا
ComplicationDisplayPolicy
حيث يطلب تطبيقDO_NOT_SHOW_WHEN_DEVICE_LOCKED
من خلفية شاشة الساعة المتوافقة عدم عرض الإضافة عندما يكون الجهاز مقفلاً. - بدءًا من الإصدار Android T، سيتمكّن المصنّعون الأصليون للأجهزة في تحديد ما إذا كان طلب الإضافة واردًا من خلفية شاشة الساعة في القائمة المحدّدة من خلال بيانات
android.support.wearable.complications.SAFE_WATCH_FACES
الوصفية في بيان موفّر الخدمة من قِبلComplicationRequest#isForSafeWatchFace
. سيحتاج موفّر الخدمة إلى إذنcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
لتلقّي أي شيء آخر بخلاف TargetWatchFaceSafety.UNKNOWN`. - أصبحت الميزة "
UserStyleFlavors
" ميزة غير تجريبية.
الإصدار 1.2.0-rc01
18 تشرين الأول (أكتوبر) 2023
تم طرح androidx.wear.watchface:watchface-*:1.2.0-rc01
. يحتوي الإصدار 1.2.0-rc01 على هذه عمليات التنفيذ.
الإصدار 1.2.0-beta02
6 أيلول (سبتمبر) 2023
تم طرح androidx.wear.watchface:watchface-*:1.2.0-beta02
. يحتوي الإصدار 1.2.0-beta02 على عمليات التنفيذ هذه.
الميزات الجديدة
- "
SuspendingComplicationDataSourceService#onDestroy
" مفتوح الآن. يُرجى ملاحظة أنه قد تمت إزالة الإضافة التلقائية الخاصة بالطقس في النظام.
التغييرات في واجهة برمجة التطبيقات
- ارجع إلى الخيار "كشف مصدر بيانات جديد لمضاعفات الطقس". (I6f335)
الإصدار 1.2.0-beta01
23 آب (أغسطس) 2023
تم طرح androidx.wear.watchface:watchface-*:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.
الميزات الجديدة
- من Android T، سيدعم WearOS الآن إضافة تلقائية لنظام الطقس.
التغييرات في واجهة برمجة التطبيقات
- يمكنك إضافة العنصر الاحتياطي التلقائي للطقس من أجل الإضافات. (Ia0994)
- تضيف هذه التصحيح
WatchFaceRuntimeService
وWatchFaceControlClient.createWatchFaceRuntimeControlClient
إلى جانب برامج تضمين جوافة. وتدعم بيئات تشغيل خلفية شاشة الساعة التي هي نوع خاص من خلفيات شاشة الساعة تُحمّل تعريفها من حزمة أخرى. لا يمكن حاليًا استخدام نظام التشغيل WearOS إلا مع تنسيق خلفية شاشة ساعة Android. (I2799f) - يمثّل رمز التصحيح هذا متابعةً لـ aosp/2636578 حيث نعيد تسمية int defs بحيث لا يكون من الضروري تغيير أي رمز يعتمد على
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) - المزيد من الاستثناءات المستثناة من enum valueOf (I818fe)
- أزلنا
renderWatchFaceToSurface
لصالح "createRemoteWatchFaceView
" الذي تم إنشاؤه في أعلى SurfaceControlViewHost، وتسمح هذه الشريحة للمتصل بتضمين مشهد من خلفية شاشة الساعة يتم عرضه عندما يتصل العميل بـRemoteWatchFaceViewHost#renderWatchFace
. (Ib311d) - لقد أضفنا
renderWatchFaceToSurface
إلىInteractiveWatchFaceClient
وHeadlessWatchFaceClient
وEditorSession
. وعادةً ما يكون هذا الأداء أكثر فعالية من العرض على صورة نقطية. (Ieacad) - تمت إعادة تسمية "
ObservableStateStore
" إلى "StateStore
". (Ieb0e2) - تمت إضافة
DynamicTypeEvaluator.Builder
بدلاً من وسيطات الدالة الإنشائية لإتاحة المزيد من الوسيطات الاختيارية، بما في ذلكObservableStateStore
التي يتم ضبطها تلقائيًا على متجر فارغ. (I6f832) - تمت إعادة ترتيب المعلمات في
DynamicTypeEvaluator
. (Ic1ba4) - تمت إضافة برنامج التنفيذ إلى طرق
DynamicTypeEvaluator.bind
. (I346ab) - لقد أضفنا طريقة
startEvaluation
إلىBoundDynamicType
لبدء التقييم بعد ربط النوع الديناميكي. (I19908) - يمكن لمقدّمي خدمات الإضافات الذين لديهم الامتياز
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
تسجيل البيانات الوصفيةandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
التي تلغيandroid.support.wearable.complications.SUPPORTED_TYPES
خلفيات آمنة لشاشة الساعة. (Id1c73) - لقد أعدنا تسمية "
CustomValueUserStyleSettings2
" إلى "LargeCustomValueUserStyleSettings
". (Ic17ac)
إصلاح الأخطاء
- تمت إزالة
DynamicTypeValueReceiver#onPreUpdate
. (I2dc35)
الإصدار 1.2.0-alpha07
22 شباط (فبراير) 2023
تم طرح androidx.wear.watchface:watchface-*:1.2.0-alpha07
. يحتوي الإصدار 1.2.0-alpha07 على هذه عمليات التنفيذ.
الميزات الجديدة
بدءًا من الإصدار Android T، سيتمكّن المصنّعون الأصليون للأجهزة في تحديد ما إذا كان طلب الإضافة واردًا من خلفية شاشة الساعة في القائمة المحدّدة من خلال بيانات
android.support.wearable.complications.SAFE_WATCH_FACES
الوصفية في بيان موفّر الخدمة من قِبلComplicationRequest#isForSafeWatchFace
. سيحتاج موفّر الخدمة إلى إذنcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
لتلقّي أي شيء بخلافTargetWatchFaceSafety.UNKNOWN
.ويتوفّر أيضًا من إصدار Android T
CustomValueUserStyleSetting2
للاستخدام الذي يمكن أن يتّسع لما يصل إلى 12.5 كيلوبايت. كان الحدّ السابق لـCustomValueUserStyleSetting
هو 1 كيلوبايت. على الرغم من حدود الحجم المتزايدة، ننصح مطوّري خلفيات شاشة الساعة بتصغير حجم البيانات لأنّ الإعدادات يتم إرسالها عبر البلوتوث أثناء التعديل، ويكون معدل نقل بيانات البلوتوث محدودًا.
التغييرات في واجهة برمجة التطبيقات
- لقد أضفنا مَعلمة اختيارية
eglContextAttribList
إلىGlesRenderer
.GlesRenderer2
تسمح لك بضبطEGL14.EGL_CONTEXT_CLIENT_VERSION
التي تم تمريرها علىEGL14.eglCreateContext
. (I2a83e) - تم نقل libs خلفية شاشة الساعة إلى
androidx.core.util.Consumer
بدلاً منjava.util.function.Consumer
. (I273f5) - المزيد من الاستثناءات التي تم طرحها من موصّلات خصائص KT (Iff9d9)
- لقد أضفنا "
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
" ليتمكّن العميل من تحديد ما إذا كان عليه محاكاة الدعم أم لا نيابةً عن خلفيات شاشة الساعة القديمة. (I24c89) - لقد قرَّرنا أن تكون صيغة
isForSafeWatchFace
هيIntDef
ثلاثية الحالات. (Ief2f7) - بالنسبة إلى نظام التشغيل Android T، لقد قدّمنا
ComplicationRequest.isForSafeWatchFace
المخصّص للاستخدام من قِبل المصنّع الأصلي للجهاز والذي يتطلّبcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
. بالنسبة إلى مصادر البيانات في صورة النظام، ستظهر القيمة "صحيح" إذا كانت خلفية شاشة الساعة المطلوبة متوفّرة في قائمة خلفيات شاشة الساعة الآمنة التي حدّدها مصدر البيانات في ملف البيان. (I0cbb6) - بالنسبة إلى Android T، أضفنا
CustomValueUserStyleSetting2
الذي يمكن أن يتّسع لما يصل إلى 12.5 كيلوبايت. كان الحدّ السابق لـCustomValueUserStyleSetting
هو 1 كيلوبايت. (I0b100)
الإصدار 1.2.0-alpha06
25 كانون الثاني (يناير) 2023
تم طرح androidx.wear.watchface:watchface-*:1.2.0-alpha06
. يحتوي الإصدار 1.2.0-alpha06 على هذه عمليات التنفيذ.
الميزات الجديدة
- نحن نعمل باستمرار على إتاحة عمليات ربط الأنظمة الأساسية التي تتضمّن إضافات، لكنّ هذه الميزة غير جاهزة للاستخدام بعد، ولكن يمكنك متابعتنا باستمرار.
- لقد أضفنا التوافق مع XML
ComplicationSlot
لأنواع الإضافات الجديدة، GOAL_PROGRESS وWEIGHTED_ITEMS.
إصلاح الأخطاء
- إصلاح تسرب يؤدي إلى عدم إصدار محرِّر خلفية شاشة الساعة بشكل صحيح على أجهزة 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
، ما يسمح بطلبها من JavaScript مرة أخرى. (Ib308c) - لقد أصلحنا بعض مشاكل JavaScript المتوافقة مع
ComplicationRequestListener
وCanvasComplication
وComplicationTapFilter
وInteractiveWatchFaceClient
من خلال إضافة تعليقات توضيحية إليها باستخدام@JvmDefaultWithCompatibility
(Id94fc). - لقد أزلنا الإصدار التجريبي من
ProtoLayoutComplicationData
وListComplicationData
. لم تكن قصة المطوّر هذه واضحة، ونأمل أن نعيد النظر فيها في المستقبل. (I9df05) - لقد أضفنا
ValueType
مرة أخرى إلىRangedValueComplicationData
. يتيح تطبيق "WeightedElementsComplicationData
" الآن لون الخلفية. لقد أزلنا الدالةDiscreteRangedValueComplicationData
لأنّ وظائفها هي مجموعة فرعية منWeightedElementsComplicationData
. (I6446c)
إصلاح الأخطاء
- أدرِج
isForScreenShot
في رمز علامة يساوي ورمز التجزئة. تأكَّد من أنّonRenderParametersChanged
تحصل على قيمةisForScreenshot
صحيحة (I04a41). - تم إصلاح تسريبات
WatchFaceControlService
من عملاء بلا واجهة مستخدم رسومية. (e90e00)
الإصدار 1.2.0-alpha03
5 تشرين الأول (أكتوبر) 2022
تم طرح androidx.wear.watchface:watchface-*:1.2.0-alpha03
. يحتوي الإصدار 1.2.0-alpha03 على هذه عمليات التنفيذ.
الميزات الجديدة
- لا تتوفّر ميزات جديدة، ولكننا أصلحنا خطأين في أداة تعديل خلفية شاشة الساعة.
التغييرات في واجهة برمجة التطبيقات
- تم إيقاف العمل بالإصدار
UserStyleSchema.userStyleSettings
بشكل نهائي بعد أن أصبحrootUserStyleSettings
غير تجريبي (Ie96e3). - نقل
rootUserStyleSettings
خارج المرحلة التجريبية (I8d6b3) - تم وضع علامة "
WatchFaceColors
" على الإصدار التجريبي لأنه غير متوافق مع جميع الأنظمة (I6d75d). - يمكنك عرض واجهة برمجة التطبيقات
DisconnectReasons
في واجهة برمجة التطبيقات العامة لإتاحة استخدامها معIntDef
. (I791f8)
إصلاح الأخطاء
- إغلاق أي نافذة مفتوحة في محرّر الساعة في حال توقُّف "
SysUI
" إذا تعطّلSysUI
ولم يتم إغلاق محرِّر خلفية شاشة الساعة، قد تُترك خلفية شاشة الساعة في حالة غير متسقة لأنّ النظام يعتمد علىSysUI
للحفاظ على أي تغييرات في نمط المستخدم.(ba762a - يُرجى إصلاح تسرّب الذاكرة في
ComplicationDataSourceInfoRetriever
، حيث كان استمرار الكوروتين في kotlin يعمل كجذر في نظام gc مع الاحتفاظ بنشاط المحرّر.(33ee06)
الإصدار 1.2.0-alpha02
21 أيلول (سبتمبر) 2022
تم طرح androidx.wear.watchface:watchface-*:1.2.0-alpha02
. يحتوي الإصدار 1.2.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
تم ضبط بعض خلفيات شاشة الساعة خارج إطارات
UserStyle
تؤثر بشكل مرئي (مثل اختيار صورة خلفية). لقد أضفنا السمةRenderer.sendPreviewImageNeedsUpdateRequest
التي تسمح لخلفية شاشة الساعة بطلب صورة معاينة معدّلة. تجدر الإشارة إلى أنّ هذه العملية تتطلّب تحديث النظام مقابلها.أضفنا أيضًا واجهة برمجة تطبيقات لخلفيات شاشة الساعة من أجل عرض ألوانها على النظام الذي قد يختار لوحة الألوان الخاصة به بناءً على ذلك. يُرجى العِلم أنّ هذا الإصدار أصبح تجريبيًا في إصدار تجريبي.
يتوافق كل نوع من أنواع
ComplicationData
تقريبًا معSmallImages
.
التغييرات في واجهة برمجة التطبيقات
- يمكن أحيانًا فصل مدير الخلفيات عن المحرك وإنشاء آخر. لقد أضفنا
DisconnectReason
int def ووسّعناClientDisconnectListener
من خلال طريقة جديدة تتضمّنDisconnectReason
، ما يسمح للمستمِع بملاحظة عمليات فصل المحرّك. (I45cce) - تمت إضافة معلمتين اختياريتين
nameResourceId
وscreenReaderResourceId
إلى الدالة الإنشائيةComplicationSlotOverlay
(I157e8). - لقد أضفنا برنامج تضمين جوافة للتحميل الزائد الجديد لـ
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) - استبدِل النوع
OnWatchfaceColorsListener
للطريقة التجريدية الفردية (SAM) بنوع Java SAM العام (المستهلك) (I0c489). - لقد أوقفنا نهائيًا الطريقتين
getOrCreateInteractiveWatchFaceClient
وlistenableGetOrCreateInteractiveWatchFaceClient
اللتين لا تحدِّدانPreviewImageUpdateRequestedListener
. (Iec502)
إصلاح الأخطاء
- تمت إعادة تسمية "
DisconnectReason.BINDER_DIED
" إلى "DisconnectReason.ENGINE_DIED
". (I4eb0e)
الإصدار 1.2.0-alpha01
10 آب (أغسطس) 2022
تم طرح androidx.wear.watchface:watchface-*:1.2.0-alpha01
. يحتوي الإصدار 1.2.0-alpha01 على هذه عمليات التنفيذ.
الميزات الجديدة
- لقد أضفنا دعمًا تجريبيًا للعديد من تنسيقات الإضافات الجديدة. هذا هو مجال التطوير النشط؛ هذه التنسيقات الجديدة عرضة للتغيير بدون إشعار، ولا تتوفر حاليًا إمكانية العرض من
CanvasComplicationDrawable
. - أضفنا أيضًا هوامش اختيارية إلى خانات الإضافات، ما يسهّل النقر على الإضافات الصغيرة.
التغييرات في واجهة برمجة التطبيقات
- أصبحت الفئة
BoundingArc
التجريبية غير قابلة للتغيير الآن. (If624a) - قد يكون من الصعب النقر على الإضافات الصغيرة. للمساعدة في الحدّ من حدوث ذلك، طرحنا دعمًا للهوامش التي تزيد المساحة القابلة للنقر بدون التأثير في العرض. لا تحتوي
ComplciationSlots
على هوامش بحجم صفر، ما لم يتم تحديد ذلك (إما في الرمز أو عبر XML). (I14089) - تم تغيير توقيع
getComplicationSlotInflationFactory(CurrentUserStyleRepository)
لعرض مثيل من المصنع غير خالٍ. لقد حدث خطأ في عرض قيمة فارغة من قبل، لذلك فإن هذا مجرد توضيح عقد واجهة برمجة التطبيقات. (I0fcc0) - لقد أضفنا الوسيطة
currentUserStyleRepository
إلى الطريقةWatchFaceService.getComplicationSlotInflationFactory
لتكون متسقة معcreateComplicationSlotsManager
. (I2ddd2) - أصبحت
UserStyleFlavors
ميزة غير تجريبية. (I69cdc) - لقد أزلنا
ValueType
التجريبي منRangedValueComplicationData
وبدلاً من ذلك قدمناDiscreteRangedValueComplicationData
التجريبي الذي يشبهRangedValueComplicationData
باستثناء نطاق الأعداد الصحيحة لقد أضفنا أيضًاGoalProgressComplicationData
التجريبية التي تشبهRangedValueComplicationData
باستثناء الهدف الوحيد الذي يمكن تحقيقه لتحقيق هدف يكون فيه الحدّ الأدنى ضمنيًا صفرًا، ويُسمح بأن تكون القيمة أكبر منtargetValue
. ملاحظة: يجب تحديد صورة واحدة أو نص أو عنوان واحد على الأقل من الصور الأحادية اللون في جميع صيغRangedValue
. (I9590c) - أزلنا
boundsWithMargins
منComplicationSlotState
لأنّه لا تتوفّر حالة استخدام لبرامج النظام. (I42e26) - لقد أضفنا توافقًا تجريبيًا إلى السمة
WeightedElementsComplicationData
التي تتألف من مصفوفة من العناصر (أزواج الوزن واللون) بالإضافة إلى نص/عنوان/صورة اختياري. يمكن عرض هذه النتائج كمخطط دائري حيث يجب أن تكون الألوان ذات معنى بالنظر إلى السياق، حيث لا يكون هناك عادة مجال في الإضافة لعرض التصنيفات. (I87eea) - أما العنصر
ColorRamps
التجريبي الذي يتم استخدامه اختياريًا فيRangedValueComplicationData
وGoalProgressComplicationData
، فيتيح لك الآن تحديد تسلسل يصل إلى سبعة ألوان وعلامة تشير إلى ما إذا كان يجب دمج الألوان بسلاسة أو ما إذا كان يجب عرض خطوات لونية صلبة بحجم متساوٍ. (I9f5bf) - تم تغيير الحقل
RangedValueComplicationData.drawSegmented
إلىvalueType
، وهو عدد صحيح يحتوي علىValueType IntDef
مقابل يوفّر معنى دلالي للقيمة للنطاق ويمكن أن يستخدمه عارض الإضافة للتأثير في النمط. (I0616b) - لقد أضفنا دعمًا تجريبيًا إلى خيار
ColorRanges
إلىRangedValueComplicationData
. عادةً ما يتم عرض الإضافات بالألوان التي تختارها خلفية شاشة الساعة، ولكن في بعض الأحيان يكون من الأفضل وضع "ComplicationDataSource
" لضبط الألوان، مثلاً عندما يكون لها معنى دلالي معين. مثلاً: الأحمر إلى الأزرق لدرجة الحرارة. (I5153a) - لقد أضفنا تلميح
drawSegmented
تجريبيًا إلىRangedValueComplicationData
. وتشير هذه الإشارات إلى أنّ أجهزة العرض ترسم مؤشر القيمة للنطاق مع الأقسام، حيث تكون المقطع الواحد = وحدة واحدة. (I7d7c1)
إصلاح الأخطاء
- لقد أضفنا إمكانية تحديد
ComplicationSlotBounds
نسبةً إلى نظام إحداثيات الشاشة المحدّد مسبقًا. (I0985d)
الإصدار 1.1
الإصدار 1.1.1
10 آب (أغسطس) 2022
تم طرح androidx.wear.watchface:watchface-*:1.1.1
. يحتوي الإصدار 1.1.1 على عمليات الالتزام هذه.
- فهذا الإصدار مخصص لإصلاح الأخطاء، وننصح بشدة مستخدمي الإصدار 1.1.0 بالترقية.
إصلاح الأخطاء
إعداد خلفية شاشة الساعة غير متزامن، وإذا تم تلقّي إضافة قبل أن تصبح خلفية شاشة الساعة جاهزة، يتم إدراجها في قائمة "
pendingInitialComplications
" ويتم تطبيقها لاحقًا. تم تطبيق "pendingInitialComplications
" في وقت قريب جدًا، ما يعني توفّر فترة من الوقت أثناء إعداد خلفية شاشة الساعة تستمر في وضع الإضافات على "pendingInitialComplications
" وتجاهلها. لقد أصلحنا هذه المشكلة الآن. بالإضافة إلى ذلك، يعمل رمز التصحيح هذا على إصلاح الخطأ الذي كان يحاولComplicationRenderer
بشكل خاطئ تحميل العناصر النائبة بشكل غير متزامن، ما أدى إلى عدم تحديث رسم التجميع. أخيرًا، يساعد هذا التصحيح في إصلاح خطأ نظري يحتاج إلى دمجpendingInitialComplications
المتعدّدة. (0d03ba3)إصلاح التوقف المؤقت المحتمل في
InteractiveInstanceManager
حيث تم تثبيت القفل لمدة أطول من اللازم علىgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance
. نتوقّع عادةً أن يعملengine.setUserStyle
بسرعة، ولكن إذا لم يحدث ذلك لسبب ما، قد ينتهي الأمر بحدوث توقف مؤقت أو خطأ 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 بشكل غير صحيح على أنها تتضمن نوع الإضافة الرئيسية الذي يؤدي إلى NPEs عند الوصول إلى حقول مطلوبة غير موجودة. (55ffdf5) - إصلاح الخطأ الذي تسبب في إسقاط
setComplicationData
حقول المخطط الزمني(fb392f5) - إصلاح خطأ يؤدي أحيانًا إلى إرسال رسالة إلكترونية إلى قناة
runBlockingWithTracing
(12ca62e) - إصلاح خطأ نرسل إليه أحيانًا
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
والتي يتم ضبطها على طرق العرض. لقد قدّمناListenableCanvasRenderer2
وListenableGlesRenderer2
لإتاحة إمكانية التشغيل التفاعلي في JavaScript. (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 المنتهية الصلاحية والتي تم تخزينها مؤقتًا)، لذلك أضفنا إلى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) - تعديل قابلية القيم الفارغة في Core وappcompat لتتوافق مع Tiramisu DP2 (I0cbb7)
إصلاح الأخطاء
- يتعطّل الآن تطبيق خلفية شاشة الساعة مع استثناء في حال تعذّر التحقّق من صحة المخطط (Ia400f).
الإصدار 1.1.0-alpha03
9 شباط (فبراير) 2022
تم طرح androidx.wear.watchface:watchface-*:1.1.0-alpha03
. يحتوي الإصدار 1.1.0-alpha03 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- لقد أضفنا دعمًا تجريبيًا لمخططات الأنماط الهرمية. لقد أضفنا موقعًا جديدًا إلى "
androidx.wear.watchface.style.UserStyleSetting.Option
"، وهو childSettings الذي لا يستخدمه إلا "ListOption
". ويتيح ذلك وصف تدرج هرمي للأنماط للاستخدام بواسطة واجهات المستخدم في "محرّر إعلانات Google"، ولا يتم تغيير نمط المستخدم الأساسي ويظلMap<String, ByteArray>
. (Iaf6f4) - لقد أضفنا السمة
WatchFace.OverlayStyle
التي تسمح لخلفية الساعة بضبط طريقة عرض المحتوى المركّب على حالة النظام. (I8520d) - قدّمنا مَعلمة دالة إنشاء اختيارية جديدة لـ
CanvasRenderer
(القيمة التلقائية هي "خطأ") لـclearWithBackgroundTintBeforeRenderingHighlightLayer
، وفي حال ضبطها على "صحيح"، سيتم محو لوحة الرسم باستخدام لون الخلفية. (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
. يسمح هذا للنظام بجلب أسماء "الخانات المجمّعة" لاستخدامها في المحرِّرين وبرامج قراءة الشاشة. (If6c6a) - رمي "
WatchfaceMetadataClient.getUserStyleSchema
" و"getComplicationSlotMetadataMap
" الآنWatchFaceException
بدلاً منRemoteException
(I86f11) - تمت إعادة تسمية
onSynchronousComplicationRequest
والدوال ذات الصلة فيComplicationDataSourceService
إلىonImmediateComplicationRequest
، وما إلى ذلك... (I87ba0) - توفِّر أدوات تعديل خلفيات شاشة الساعة مساحة أقل بكثير على الشاشة مقارنةً بأدوات التحرير المصاحبة، لذا من المنطقي إتاحة استخدام رموز مختلفة لأدوات تحرير خلفية شاشة الساعة. يضيف رمز التصحيح هذا
OnWatchEditorData
(الذي يحتوي حاليًا على رمز فقط) إلى جميع فئات UserStyleSettings وفئات الخيارات حيثما كان ذلك مناسبًا. (If1886) - لقد أضفنا
@JvmOverloads
إلى الدالة الإنشائية الخاصة بـ ListenableGlesRenderer لتحسين إمكانية التشغيل التفاعلي في جافا. (I2974a)
إصلاح الأخطاء
- تم الآن وضع علامة
@Throws(GlesException::class)
على الدالة الإنشائية لـListenableGlesRenderer
بشكل صحيح، ويمكن الآن توسيع هذه الفئة في جافا. (Iac6d0) - إصلاح خطأ عدم تفعيل عنصر TapAction البالغ
PhotoImageComplicationData
يتم التعامل معها بشكل صحيح (I1cc30)
الإصدار 1.1.0-alpha02
12 كانون الثاني (يناير) 2022
تم طرح androidx.wear.watchface:watchface-*:1.1.0-alpha02
. يحتوي الإصدار 1.1.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
- للمساعدة في تصحيح الأخطاء والاختبار، تم استبدال طريقتَي
ComplicationData
والفئات الفرعية ذات الصلة برمز التجزئة تساوي وtoString، ما يسهّل التعامل معهما.
التغييرات في واجهة برمجة التطبيقات
- تطرح
WatchfaceMetadataClient
طريقة مرة أخرىRemoteExceptions
عندما يكون ذلك مناسبًا، ما يسهّل على رمز العميل رصد الأخطاء من خلفية شاشة الساعة. (I78785) - تحتوي
ComplicationData
والفئات الفرعية الآن على رمز تجزئة ويساوي وtoString. (I24bc6)
الإصدار 1.1.0-alpha01
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.wear.watchface:watchface-*:1.1.0-alpha01
. يحتوي الإصدار 1.1.0-alpha01 على عمليات التنفيذ هذه.
الميزات الجديدة
يمكن الآن تحديد
UserStyleSchema
وComplicationSlots
في XML. يبسّط هذا الإجراء عملية إنشاء خلفية شاشة الساعة. بالإضافة إلى ذلك، تكون طلبات بحثWatchFaceMetadataClient
أسرع لأنّها لا تحتاج إلى ربطها بالخدمة للحصول على البيانات الوصفية. لم يعُدWatchFaceMetadataClient
وListenableWatchFaceMetadataClient
في مرحلة تجريبية وسيصبحان جزءًا من واجهة برمجة التطبيقات الثابتة. سيتمكّن النظام من إتاحة استخدام مثيلات متعدّدة لخلفية شاشة ساعة، ولكل منها خيارات تصميم مختلفة يحدّدها المستخدم. وستظهر هذه الصور في "أداة اختيار خلفية شاشة الساعة". لتفعيل هذه الميزة، يجب أن تتضمّن خلفية شاشة الساعة علامة البيانات الوصفية التالية في ملف البيان الخاص بها.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />
تتوفّر حالة بعض خلفيات شاشة الساعة لم يتم تسجيلها في
UserStyle
. لإتاحة هذه النسخة ومثيلات متعددة، يتوفّر الآن رقم تعريف مثيل خلفية شاشة الساعة عبر "WatchState.watchFaceInstanceId
".يتم الآن تخزين "
ComplicationData
" مؤقتًا للسماح بعرض الإضافات فور التحميل. في بعض الأحيان، يُخزّن النظامComplicationData
مؤقتًا في الذاكرة وأحيانًا يخزّنه مكتبات خلفيات شاشة الساعة. عند تنفيذ الإجراء المتسلسل، سيتم فقدان أي ميزة TapAction مرتبط بها، وإذا حدث ذلك، سيعرضComplicationData.tapActionLostDueToSerialization
الرمزtrue
وسيتم عرض الإضافة بشكل مختلف (مثلاً، باللون الرمادي أو شبه شفاف) للإشارة إلى أنّه لا يمكن النقر عليها. سيرسل النظام تحديثًا منComplicationData
معtapAction
في أقرب وقت ممكن.يجب عدم تخزين بعض
ComplicationData
مؤقتًا لفترة طويلة، لتوفير ذلك أضفنا ميزة أكثر عموميةComplicationDataTimeline
. ويمكن استخدام ذلك لتوفير سلسلة من "ComplicationData
" لها قيود زمنية ليتم عرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتعديلها تلقائيًا. على سبيل المثال، توقعات الطقس لليوم في أوقات مختلفة أو أحداث التقويم القادمة المتعددة. تم تمديد مهلةComplicationRequestListener
من خلال طريقة جديدةonComplicationDataTimeline
يمكنك استخدامها لعرض هذه البيانات.تم تمديد
DefaultComplicationDataSourcePolicy
حتى تتمكّن من تحديدComplicationType
للمصادر الأساسية والثانوية.وقد أتحنا أيضًا موفّري الإضافات المتزامنين الذين يتم تعديل الإضافات فيها بمعدّل تكرار أعلى من المعتاد، بمعدّل يصل إلى مرة واحدة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير محيطة. ملاحظة: قد يكون استخدام موفِّري الإضافات المتزامنة محدودًا بسبب المخاوف المتعلقة بضغط الذاكرة.
من المحتمل أن يتم التراجع عن التغييرات في
PendingIntentTapListener
لأنّنا حللنا المشكلة الأساسية (ليس من الممكن أن تبدأ خلفية شاشة الساعة الأنشطة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية) في إطار العمل بدلاً من ذلك.
التغييرات في واجهة برمجة التطبيقات
- تم تغيير
ComplicationData.isCached
إلىtapActionLostDueToSerialization
، وهو أكثر فائدة عند تحديد ما إذا كان يجب عرض خانة الإضافة بشكل مختلف للإشارة إلى أنّه لا يمكن النقر عليها. (I6de2f) - تمت إضافة
ComplicationDataTimeline
إلىwear-complication-data-source
. ويمكن استخدام ذلك لتوفير سلسلة من "ComplicationData
" لها قيود زمنية ليتم عرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتعديلها تلقائيًا. على سبيل المثال، توقعات الطقس لليوم في أوقات مختلفة أو أحداث التقويم القادمة المتعددة. تم تمديد مهلةComplicationRequestListener
من خلال طريقة جديدةonComplicationDataTimeline
يمكنك استخدامها لعرض هذه البيانات. هناك برنامج تضمين جديد بلغة 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 على عمليات الالتزام هذه.
إصلاح الأخطاء
- إصلاح خطأ عدم تفعيل عنصر TapAction البالغ
PhotoImageComplicationData
يتم التعامل معها بشكل صحيح (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 أو احتمال تأخير سلسلة واجهة المستخدم init.(37650ac)
تأكَّد من استدعاء Renderer.onDestroy. في السيناريو الذي تم فيه إنشاء العارض ولكن لم يكتمل إعداد WF ويستدعي Engine.onDestroy، نحتاج إلى استدعاء Renderer.onDestroy. (f9952dc)
تحسين/إصلاح مشكلة isالبطاريةLowAndNotCharging. ينقل رمز التصحيح هذا في مرحلة الإعداد الأولي لـ is walkLowAndNotCharging في وقت سابق، ما يعني إمكانية إجرائه بالتوازي مع 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) - لم تعُد وظيفتا المحرّران "
getComplicationsPreviewData
" و"getComplicationsDataSourceInfo
" تعلّقان، بل هما السمتانStateFlow<>
التي تكون قيمتها فارغة في البداية. تمّت إزالة ListenableEditorSessiongetListenableComplicationPreviewData
وgetListenableComplicationsProviderInfo
لصالح عناصرStateFlow<>
الجديدة من الفئة الأساسية. إذا كنت بحاجة إلى الاستماع إلى التغييرات في رمز JavaScript، ننصحك باستخدامandroidx.lifecycle.FlowLiveDataConversions.asLiveData
للتحويل إلىLiveData<>
. (Ic5483)
الإصدار 1.0.0-alpha23
29 أيلول (سبتمبر) 2021
تم طرح androidx.wear.watchface:watchface-*:1.0.0-alpha23
. يحتوي الإصدار 1.0.0-alpha23 على هذه عمليات التنفيذ.
الميزات الجديدة
أصبحت مكتبة خلفية شاشة الساعة الآن مجموعة مكتبة واحدة، ونتيجةً لذلك تم نقل المكتبات وستحتاج إلى تحديث عمليات استيراد Gradle على النحو التالي:
قديم | جديد |
---|---|
androidx.wear:wear-complications-data |
androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source |
androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface |
androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering |
androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client |
androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava |
androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data |
androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor |
androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava |
androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava |
androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style |
androidx.wear.watchface:watchface-style |
التغييرات في واجهة برمجة التطبيقات
- يمكنك نقل مكتبات "خلفية شاشة الساعة" والإضافات المنفصلة في
androidx.wear
إلى مجموعة مكتبةandroidx.wear.watchface
. (b25f3c0) - تمت إضافة EditorRequest.canWatchFaceSupportheadlessEditing لإخبار العميل بما إذا كان محرِّر خلفية شاشة الساعة يتيح التعديل بلا واجهة مستخدم رسومية. يُرجى العلم أنّه سيتم عرض بعض النتائج السلبية الخاطئة بسبب إضافة الدعم في asop/1756809، ولكنه سيعرض القيمة الصحيحة لجميع خلفيات شاشة الساعة المستقبلية. (ca55590)
- يتضمّن Renderer الآن طريقة dump() يمكن تجاوزها لإضافة بيانات مخصَّصة إلى المعلومات التي تمّ إنشاؤها بواسطة خدمة نشاط WatchFaceService في ABD shell dumpsys. (95235f9)
- تحدّد InteractiveWatchFaceClient.addWatchFacePaymentListener الآن عنصر التنفيذ أولاً. (563ac2f)
- تمت إزالة StateFlowCompatHelper. ويجب استخدام asLiveData (androidx.lifecycle.asLiveData) بدلاً من ذلك. (bd35d3)
- لم يعُد الخيار الحاليUserStyleRepository.userStyle قابلاً للتغيير. (I44889)
- تمت إعادة تسمية WatchFacePaymentListener إلى OnWatchFacePaymentListener. (Ic12a9)
إصلاح الأخطاء
- InteractiveInstanceManager.deleteInstance لاستدعاء onDestroy هذا مطلوب للتأكد من جمع InteractiveWatchFaceImpl البيانات غير المرغوب فيها.(fce4af8، b/199485839)