خلفية شاشة ساعة Wear
التعديل الأخير | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | إصدار ألفا |
---|---|---|---|---|
7 شباط (فبراير) 2024 | 1.2.1 | - | - | 1.3.0-alpha01 |
إعلان التبعيات
لإضافة تبعية إلى Wear، يجب إضافة مستودع Google Maven إلى مشروعك. لمزيد من المعلومات، يمكنك الاطّلاع على مستودع Maven من Google.
أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle
لتطبيقك أو الوحدة الخاصة بك:
رائع
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Kotlin
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
لمزيد من المعلومات حول التبعيات، انظر إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجِع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.
الإصدار 1.3
الإصدار 1.3.0-alpha01
7 شباط (فبراير) 2024
تم طرح "androidx.wear.watchface:watchface-*:1.3.0-alpha01
". يحتوي الإصدار 1.3.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- يمكن إعداد
WatchFaceServices
بالتزامن، ولذلك يجب أن تكون بلا حالة. ولدعم ذلك، أضفناStatefulWatchFaceService
والتي يتم فيها تمرير مستخدم تم تحديده بشكلٍ إضافي بواسطةcreateExtra()
إلى جميع عمليات الإلغاء التي يتم طلبها أثناء الإعداد. - تشتمل
GlesRenderer2
الآن على حمل زائد للدالة الإنشائية يتيح لك تحديد قائمة بالسمات لتجربتها بدورها معeglChooseConfig
.
تغييرات واجهة برمجة التطبيقات
- تتيح
StatefulWatchFaceService
الآن تجاوزgetComplicationSlotInflationFactory
التي يتم فيها تمرير الإضافة التي حددها المستخدم بواسطةcreateExtra()
. (I82d9f) - يجب أن تشارك بعض خلفيات شاشة الساعة بيانات إضافية تم إنشاؤها في
createUserStyleSchema
مع طُرق الإعداد الأخرى. وبسبب عدم توفّر بديل أفضل، حرص مطوّرو البرامج عادةً على إبرازWatchFaceServices
الخاصة بهم. هذا أمر خطير لأنّه يمكن إنشاء مثيلات متعدّدة بشكل متزامن، ما قد يؤدي إلى حدوث أخطاء. لحل هذه المشكلة، طرحناStatefulWatchFaceService
وStatefulWatchFaceRuntimeService
حيث يتم إنشاء نوع من تحديد المستخدم بواسطةcreateExtra()
ويتم تمريره إلى طرق الإنشاء المختلفة كمَعلمة. (If8a99) - لقد أضفنا السمة
getUserStyleFlavors
إلىInteractiveWatchFaceClient
، والتي تهم المصنّعين الأصليين للأجهزة في المقام الأول. (I0f5d8) - تشتمل
GlesRenderer2
الآن على حمل زائد للدالة الإنشائية يتيح لك تحديد قائمة بالسمات لتجربتها بدورها معeglChooseConfig
. على سبيل المثال، يسمح لك ذلك بتجربة عملية ضبط أولاً باستخدام إعدادات تشذيب، والرجوع إلى أحد الإعدادات بدون الحاجة إلى ذلك. (I1ba74) - من Android U، سنتيح استخدام
SystemDataSources.DATA_SOURCE_HEART_RATE
في WearOS. يمكن أن تضمن هذه الإضافة تثبيت إضافاتSHORT_TEXT
فقط، ولكن ننصحComplicationSlot
بقبولSMALL_IMAGE
أيضًا لأنّ المصنّعين الأصليين للأجهزة قد يختارون عرض اختصار لتطبيق الصحة الخاص بهم بدلاً من القيمة المباشرة. (I34223) - أضفنا
METADATA_KEY_CONFIG_RESTORE_SUPPORTED
للتحكُّم في ما يحدث عند استعادة النظام من نسخة احتياطية لمصدر بيانات الإضافة باستخدامMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
، وذلك بدءًا من نظام Android U والإصدارات الأحدث. يفترض النظام تلقائيًا أنّ خدمة مصدر البيانات الإضافية تتيح الاحتفاظ بنسخة احتياطية من أي بيانات إعدادات. وإذا لم يحدث ذلك، يمكنه إضافة إعداد البيانات الوصفيةMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
إلى القيمة "خطأ"، ما سيحدّد موضع الإضافة بأنّه لم يتم ضبطه. (I6c505)
الإصدار 1.2
الإصدار 1.2.1
24 كانون الثاني (يناير) 2024
تم طرح "androidx.wear.watchface:watchface-*:1.2.1
". يتضمّن الإصدار 1.2.1 هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح عطل على ساعة Samsung Galaxy Watch 4 و5 و6. (43f0b0)
الإصدار 1.2.0
29 تشرين الثاني (نوفمبر) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0
". يتضمّن الإصدار 1.2.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.1.0
- أتحنا إمكانية استخدام بعض أنواع الإضافات الجديدة المتاحة للاستخدام من Android T:
GoalProgressComplicationData
التي تشبهRangedValueComplicationData
باستثناء أنها للتقدم نحو هدف يكون فيه الحد الأدنى ضمنيًا صفرًا، ويُسمح بأن تكون القيمة أكبر منtargetValue
.WeightedElementsComplicationData
الذي يتكون من مصفوفة من العناصر (أزواج من الوزن واللون) بالإضافة إلى نص/عنوان/صورة اختيارية. قد يتم عرض هذه كمخطط دائري حيث يجب أن تكون الألوان ذات معنى بالنظر إلى السياق، نظرًا لعدم وجود مجال عادةً في الإضافة لعرض التسميات.
- لقد أتحنا استخدام السمة
ColorRanges
الاختيارية إلىRangedValueComplicationData
. يتم عرض التعقيدات عادةً بألوان خلفية شاشة الساعة، ولكن في بعض الأحيان يكون من الأفضل ضبط ألوانComplicationDataSource
، مثلاً إذا كان لها معنى دلالي معيّن. على سبيل المثال، من الأحمر إلى الأزرق لدرجة الحرارة. - يتوافق كل نوع من أنواع
ComplicationData
تقريبًا الآن معSmallImages
. - لقد أضفنا تطبيق "
ComplicationDisplayPolicy
" حيث يطلب تطبيق "DO_NOT_SHOW_WHEN_DEVICE_LOCKED
" خلفية شاشة ساعة متوافقة بعدم عرض الإضافة عندما يكون الجهاز مقفلاً. - بدءًا من Android T، سيتمكّن المصنّعون الأصليون للأجهزة من تحديد ما إذا كان طلب الإضافة صادرًا عن خلفية شاشة ساعة في القائمة التي تحدّدها بيانات
android.support.wearable.complications.SAFE_WATCH_FACES
الوصفية ضمن بيان مقدّم الخدمة بحلولComplicationRequest#isForSafeWatchFace
. سيحتاج مقدّم الخدمة إلى إذن "com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
" لتلقّي أي معلومات أخرى غير TargetWatchFaceSafety.UNKNOWN`. - أصبحت "
UserStyleFlavors
" ميزة غير تجريبية.
الإصدار 1.2.0-rc01
18 تشرين الأول (أكتوبر) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-rc01
". يحتوي الإصدار 1.2.0-rc01 على هذه الالتزامات.
الإصدار 1.2.0-beta02
6 أيلول (سبتمبر) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-beta02
". يتضمّن الإصدار 1.2.0-beta02 هذه الالتزامات.
الميزات الجديدة
- "
SuspendingComplicationDataSourceService#onDestroy
" مفتوح الآن. يُرجى العلم أنّه تم إيقاف إمكانية إضافة الإضافة التلقائية الخاصة بالطقس في النظام.
تغييرات واجهة برمجة التطبيقات
- إلغاء التغييرات الأخيرة على خيار "كشف مصدر بيانات جديد للمشاكل المتعلّقة بالطقس" (I6f335)
الإصدار 1.2.0-beta01
23 آب (أغسطس) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-beta01
". يحتوي الإصدار 1.2.0 -beta01 على هذه الالتزامات.
الميزات الجديدة
- بدءًا من Android T، سيدعم نظام التشغيل WearOS إضافة تلقائية لنظام الطقس.
تغييرات واجهة برمجة التطبيقات
- أضِف العنصر الاحتياطي التلقائي للنظام الخاص بالطقس للحصول على الإضافات. (Ia0994)
- تضيف هذه اللاصقة
WatchFaceRuntimeService
وWatchFaceControlClient.createWatchFaceRuntimeControlClient
مع أغلفة الجوافة. تتوافق هذه التطبيقات مع أوقات تشغيل خلفية شاشة الساعة، وهي نوع خاص من الخلفيات التي تُحمِّلها من حزمة أخرى. لا يتوافق نظام التشغيل WearOS حاليًا إلا مع تنسيق خلفية شاشة ساعة Android. (I2799f) - يُطلق على رمز التصحيح هذا متابعة لـ aosp/2636578 حيث تتم إعادة تسمية دفاتر int، لذا لا يلزم تغيير أي رمز يعتمد على
WatchFaceType
أوCanvasType
أوTapType
أوComplicationsSlotBoundsType
. (I4098b) - تم تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية إلى قمع التوافق. (I8e87a، b/287516207)
- تعرض هذه التصحيح الثوابت
WatchFaceType
فيWatchFaceTypes
والثوابتCanvasType
فيCanvasTypes
والثوابتTapType
فيTapTypes
والثوابتComplicationsSlotBoundsType
فيComplicationsSlotBoundsType
. (I3b85a، b/288750666) - يتم استخدام
WatchFace.OverlayStyle
بشكل منخفض جدًا ولا يتوافق مع المصنّعين الأصليين للأجهزة، لذا نعمل على إيقافها نهائيًا بنيّة إزالتها في وقت لاحق. (I7344a)
الإصدار 1.2.0-alpha09
21 حزيران (يونيو) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha09
". يتضمّن الإصدار 1.2.0-alpha09 هذه الالتزامات.
الميزات الجديدة
- أصبحت السمة
RangedValueComplicationData.Builder
تقبل الآن السمةDynamicFloat
، وتتوفّر السمةDynamicComplicationText
الجديدة كفئة فرعية منComplicationText
، ويمكن لكليهما استخدام التعبيرات الديناميكية بالإضافة إلى عمليات ربط النظام الأساسي التي يتم تعديلها بتردد 1 هرتز على أجهزة Wear 4 المتوافقة.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة أنواع ديناميكية للمسافة اليومية والسعرات الحرارية اليومية والأرضيات اليومية. أصبحت مفاتيح مصادر سلامة النظام الأساسي الآن ضمن
PlatformHealthSources.Keys
(Ib7637). - نفِّذ
PlatformDataProvider
لتحديد معدّل نبضات القلب وعدد الخطوات اليومية. تمت إزالة واجهةSensorGateway
من واجهة برمجة التطبيقات المتاحة للجميع. (I55b84) - أعِد تسمية "
StateEntryValue
" إلى "DynamicDataValue
"، وعدِّل واجهات برمجة التطبيقات للحالة لاستخدامDynamicDataKey
. (If1c01) - يجب إضافة
AppDataKey
للوصول إلى الحالة المدفوعة للتطبيق، وإضافةPlatformDataKey
للوصول إلى بيانات النظام الأساسي، وإضافة إتاحة مساحة الاسم فيStateStore
. (I7985e) - تمت إزالة
enable
طرق من أصلdisablePlatformSource
منDynamicTypeEvaluator
. يجب أن يكون المتصل مسؤولاً عن التحديثات. (I78c6d) - السماح بتحديد حجم أنواع البيانات المرتبطة. (Ie2966)
الإصدار 1.2.0-alpha08
19 نيسان (أبريل) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha08
". يحتوي الإصدار 1.2.0-alpha08 على هذه الالتزامات.
الميزات الجديدة
- بدءًا من Android T، يمكن لموفّري الإضافات الذين لديهم إذن مميّز
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
تسجيل بياناتandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
الوصفية التي تلغيandroid.support.wearable.complications.SUPPORTED_TYPES
لخلفيات آمنة لشاشة الساعة. وهذا يعني أنّه قد يختار موفّر الإضافة عرض أنواع مختلفة لخلفيات شاشة الساعة الموثوق بها وغير الموثوق بها.
تغييرات واجهة برمجة التطبيقات
- نشر فئة
@Deprecated
إلى موقع (I882d1، b/271441831) - تم تغيير اسم معلَمة القيمة لـ
Enum.valueOf
(Ia9b89) - المزيد من الاستثناءات المقترحة من قيمة التعداد (I818fe)
- أزلنا
renderWatchFaceToSurface
لصالحcreateRemoteWatchFaceView
الذي بُني على SurfaceControlViewHost ويسمح للمتصل بتضمين عرض من خلفية شاشة الساعة يتم عرضه عندما يتصل العميل بـRemoteWatchFaceViewHost#renderWatchFace
. (Ib311d) - أضفنا
renderWatchFaceToSurface
إلىInteractiveWatchFaceClient
وHeadlessWatchFaceClient
وEditorSession
. وعادةً ما يكون هذا الإجراء أكثر أداءً من عرضه على صورة نقطية. (Ieacad) - تمت إعادة تسمية
ObservableStateStore
إلىStateStore
. (Ieb0e2) - تمت إضافة
DynamicTypeEvaluator.Builder
بدلاً من وسيطات دالة الإنشاء للسماح بالمزيد من الوسيطات الاختيارية، بما في ذلكObservableStateStore
التي يتم الآن ضبطها تلقائيًا على متجر فارغ. (I6f832) - ترتيب معادِل للمعلَمات في
DynamicTypeEvaluator
. (Ic1ba4) - تمت إضافة جهة التنفيذ إلى
DynamicTypeEvaluator.bind
طريقة. (I346ab) - لقد أضفنا طريقة
startEvaluation
إلىBoundDynamicType
لتشغيل التقييم بعد ربط النوع الديناميكي. (I19908) - بالنسبة إلى موفّري الإضافات الذين لديهم إذن
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
مميّز، يمكنهم تسجيل بياناتandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
الوصفية التي تتجاهلandroid.support.wearable.complications.SUPPORTED_TYPES
في ما يخص خلفيات شاشة الساعة الآمنة. (Id1c73) - أعدنا تسمية
CustomValueUserStyleSettings2
إلىLargeCustomValueUserStyleSettings
. (Ic17ac)
إصلاح الأخطاء
- تمت إزالة
DynamicTypeValueReceiver#onPreUpdate
. (I2dc35)
الإصدار 1.2.0-alpha07
22 شباط (فبراير) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha07
". يحتوي الإصدار 1.2.0-alpha07 على هذه الالتزامات.
الميزات الجديدة
بدءًا من Android T، سيتمكّن المصنّعون الأصليون للأجهزة من تحديد ما إذا كان طلب الإضافة صادرًا عن خلفية شاشة ساعة في القائمة التي تحدّدها بيانات
android.support.wearable.complications.SAFE_WATCH_FACES
الوصفية ضمن بيان مقدّم الخدمة بحلولComplicationRequest#isForSafeWatchFace
. سيحتاج مقدّم الخدمة إلى إذنcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
لتلقّي أي بيانات بخلافTargetWatchFaceSafety.UNKNOWN
.يتوفّر أيضًا من Android T
CustomValueUserStyleSetting2
للاستخدام الذي يمكن أن يصل حجمه إلى 12.5 كيلوبايت. كان الحد الأقصى السابق لـCustomValueUserStyleSetting
هو 1 كيلوبايت. على الرغم من زيادة الحدود القصوى للحجم، ننصح مطوّري خلفية شاشة الساعة بإبقاء البيانات صغيرة لأنّ الإعدادات يتم إرسالها عبر البلوتوث أثناء التعديل وضبط معدل نقل بيانات البلوتوث.
تغييرات واجهة برمجة التطبيقات
- أضفنا مَعلمة اختيارية
eglContextAttribList
إلىGlesRenderer
وGlesRenderer2
، ما يتيح لك ضبط قيمةEGL14.EGL_CONTEXT_CLIENT_VERSION
التي تم ضبطها علىEGL14.eglCreateContext
. (I2a83e) - لقد نقلنا خلفيات شاشة الساعة إلى
androidx.core.util.Consumer
بدلاً منjava.util.function.Consumer
. (I273f5) - المزيد من الاستثناءات من أدوات الوصول إلى ملكية KT (Iff9d9)
- لقد أضفنا
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
حتى يتمكّن العميل من تحديد ما إذا كان عليه محاكاة الدعم أم لا نيابةً عن خلفيات شاشة الساعة القديمة. (I24c89) - لقد قرّرنا أنّ
isForSafeWatchFace
يجب أن يكونIntDef
ثلاثي الحالات. (Ief2f7) - بالنسبة إلى android T، طرحنا السمة
ComplicationRequest.isForSafeWatchFace
المخصّصة لاستخدام المصنّع الأصلي للجهاز وتتطلبcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
. بالنسبة إلى مصادر البيانات في صورة النظام، سيتم عرض القيمة "صحيح" إذا كانت خلفية شاشة الساعة المطلوبة مُدرَجة في قائمة خلفيات شاشة الساعة الآمنة التي حدّدها مصدر البيانات في ملف البيان. (I0cbb6) - بالنسبة إلى android T، أضفنا واجهة برمجة التطبيقات
CustomValueUserStyleSetting2
التي يمكن أن يصل حجمها إلى 12.5 كيلوبايت. كان الحد الأقصى السابق لـCustomValueUserStyleSetting
هو 1 كيلوبايت. (I0b100)
الإصدار 1.2.0-alpha06
25 كانون الثاني (يناير) 2023
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha06
". يتضمّن الإصدار 1.2.0-alpha06 هذه الالتزامات.
الميزات الجديدة
- لا يزال العمل مستمرًا لإتاحة عمليات ربط المنصات.
- أتحنا إمكانية استخدام تنسيق XML
ComplicationSlot
لأنواع الإضافات الجديدة، وهي GOAL_PROGRESS وWEIGHTED_ElementS.
إصلاح الأخطاء
- إصلاح تسرُّب سبب عدم إصدار محرّر خلفية شاشة الساعة بشكل صحيح على أجهزة Samsung (3b5987)
- إصلاح خطأ قد لا تظهر فيه الإضافات بشكل صحيح في بعض الأحيان عند التبديل بين خلفية شاشة ساعة تحتوي على عدة خلفيات مفضّلة (b38ece)
- إصلاح خطأ تسلسلي مع perOptionScreenReaderNames الذي يؤدي إلى أعطال خلفية شاشة الساعة. (e9f466)
الإصدار 1.2.0-alpha05
7 كانون الأول (ديسمبر) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha05
". يحتوي الإصدار 1.2.0-alpha05 على هذه الالتزامات.
الميزات الجديدة
أتحنا سابقًا واجهة برمجة التطبيقات
UserStyleSettings
الهرمية، ومن خلال Android T، أصبح من الممكن الآن إضافة أكثر من عنصرComplicationSlotsUserStyleSetting
واحد في تسلسل هرمي. وسيتم تفعيل نوع واحد منComplicationSlotsUserStyleSetting
فقط، وذلك استنادًا إلى أنماط أنماط المستخدِم التي اختارها المستخدم.نحن نعمل على تحسين إمكانية استخدام قارئ الشاشة لكلّ من
ListOption
وComplicationSlotsOption
من خلال إضافة الحقلscreenReaderName
. تجدر الإشارة إلى أنّ هذا الحقل سيتجاهله المحرّرون المصاحبون قبل android T.
تغييرات واجهة برمجة التطبيقات
- أضفنا حقل
screenReaderName
اختياريًا جديدًا إلىListOption
وComplicationSlotsOption
حتى يستخدمه المحرِّرون، وسيتم تجاهله من قِبل أدوات التعديل المصاحبة على الأجهزة قبل android T. (I75326) - بدايةً من Android T، يتم دعم العديد من
ComplicationSlotsUserStyleSettings
في التدرج الهرمي للأنماط طالما أنه لا يمكن تفعيل أكثر من عنصر واحد منها في الوقت نفسه. لقد أضفنا دالة الخدماتfindComplicationSlotsOptionForUserStyle
إلىUserStyleSchema
للمساعدة في العثور على دالةComplicationSlotsOption
النشطة، إن توفّرت. (Ic2b06) - تم جلب
RangedValuesTypes
إلى الكائن المصاحب لـRangedValueComplicationData
وتمت إعادة تسميته إلىTYPE_UNDEFINED
،TYPE_RATING
وتمت إضافةTYPE_PERCENTAGE
جديد. (I55d02) - أعدنا تسمية الإصدار التجريبي من
DynamicFloat
إلىFloatExpression
ووضع علامة عليه بأنّه@hide
. (Idf4f1) - إضافة تعليق توضيحي
@JvmDefaultWithCompatibility
(I8f206)
الإصدار 1.2.0-alpha04
9 تشرين الثاني (نوفمبر) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha04
". يحتوي الإصدار 1.2.0-alpha04 على هذه الالتزامات.
الميزات الجديدة
- بالنسبة إلى Android T، أتحنا إمكانية استخدام نوعَين جديدَين من الإضافات، هما
GoalProgressComplicationData
وWeightedElementsComplicationData
. - تشبه السمة
GoalProgressComplicationData
القيمةRangedValueComplicationData
ولكن قيمتها مسموح بها لتجاوز القيمة المستهدفة (بالنسبة إلىRangedValueComplicationData
، يتم تثبيت القيمة على النطاق [min .. max])، ما قد يترتّب عنه تداعيات على التصميم المرئي قد لا يناسب جميع خلفيات شاشة الساعة. - تتيح ميزة
GoalProgressComplicationData
استخدام الرسوم البيانية الدائرية والتفصيلات المشابهة للبيانات البسيطة. - لقد أضفنا دعمًا اختياريًا إلى
ColorRamps
إلىRangedValueComplicationData
. - بالنسبة إلى Android T، أضفنا
ComplicationPersistencePolicy
وsetCachePolicy
إلىComplicationData
الذي يتيح حاليًا لمقدّم الخدمة إمكانية التحكّم في استمرار الإضافة من عدمه (أي ما إذا كانت قد تم تخزينها مؤقتًا بعد إعادة التشغيل). لا تحتاج معظم الإضافات إلى ضبط التحكّم في ذاكرة التخزين المؤقت، ولكن يمكن أن يؤدي ذلك إلى إصلاح الحالات غير المعتادة التي تتضمّن بيانات قديمة لبعض الإضافات التي يتم تحديثها بشكل متكرر (مثل الإضافات المتعلقة بالبيانات الصحية). أضفنا أيضًا تطبيق "ComplicationDisplayPolicy
" حيث يطلب تطبيق "DO_NOT_SHOW_WHEN_DEVICE_LOCKED
" خلفية شاشة ساعة متوافقة بعدم عرض الإضافة عندما يكون الجهاز مقفلاً. (Ic9574)
تغييرات واجهة برمجة التطبيقات
- لم يعُد
GoalProgressComplicationData
وWeightedElementsComplicationData
وColorRamp
في مرحلة تجريبية. (Ica9e2) - تم الآن وضع علامة على
ComplicationPersistencePolicy
وComplicationDisplayPolicy
بشكل صحيح على أنّها واجهات T APIs. (I31d88) - تحتوي الدالة الإنشائية
ComplicationSlotOverlay
المتوقّفة الآن علىDeprecationLevel.WARNING
، ما يسمح بطلبها من جافا مرة أخرى. (Ib308c) - تم حلّ بعض مشاكل لغة JavaScript المتوافقة مع
ComplicationRequestListener
وCanvasComplication
وComplicationTapFilter
وInteractiveWatchFaceClient
من خلال إضافة تعليقات توضيحية إليها باستخدام@JvmDefaultWithCompatibility
(Id94fc). - لقد أزلنا الإصدارين التجريبيين
ProtoLayoutComplicationData
وListComplicationData
. لم تكن قصة المطوِّرين الخاصة بهما واضحة، ونأمل أن نعيد النظر في هذه المشكلة في المستقبل. (I9df05) - تمت إضافة
ValueType
إلىRangedValueComplicationData
. يتيح تطبيق "WeightedElementsComplicationData
" الآن استخدام لون الخلفية. تمت إزالةDiscreteRangedValueComplicationData
لأنّ وظيفته هي مجموعة فرعية منWeightedElementsComplicationData
. (I6446c)
إصلاح الأخطاء
- أدرِج
isForScreenShot
في رمزَي التساوي وتجزئة البيانات. تأكَّد من حصولonRenderParametersChanged
على قيمةisForScreenshot
صحيحة (I04a41). - تم إصلاح تسريب
WatchFaceControlService
من عملاء بلا واجهة مستخدم رسومية. (e90e00)
الإصدار 1.2.0-alpha03
5 تشرين الأول (أكتوبر) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha03
". يحتوي الإصدار 1.2.0-alpha03 على هذه الالتزامات.
الميزات الجديدة
- ما مِن ميزات جديدة، ولكننا أصلحنا بعض الأخطاء في محرّر خلفية شاشة الساعة.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف ميزة "
UserStyleSchema.userStyleSettings
" نهائيًا بسبب تحوّلrootUserStyleSettings
إلى إصدار غير تجريبي (Ie96e3). - نقل
rootUserStyleSettings
خارج المجموعة التجريبية (I8d6b3) - تم وضع علامة على
WatchFaceColors
باعتباره تجريبيًا لأنه غير متوافق مع جميع الأنظمة (I6d75d). - اعرض
DisconnectReasons
في واجهة برمجة التطبيقات العامة ليكون متوافقًا معIntDef
. (I791f8)
إصلاح الأخطاء
- أغلِق أي فتح في محرّر الساعة في حال وفاة "
SysUI
". إذا مات "SysUI
" ولم يتم إغلاق أداة تعديل خلفية شاشة الساعة، قد يتم تركها في حالة غير متسقة لأنّ النظام يعتمد علىSysUI
لمواصلة أي تغييرات في نمط المستخدمين.(ba762a - إصلاح تسرُّب الذاكرة في
ComplicationDataSourceInfoRetriever
، حيث كانت عملية مواصلة استخدام الكوروتين في لغة kotlin تعمل كجذر gc مع الاحتفاظ بنشاط المحرّر.(33ee06)
الإصدار 1.2.0-alpha02
21 أيلول (سبتمبر) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha02
". يحتوي الإصدار 1.2.0-alpha02 على هذه الالتزامات.
الميزات الجديدة
تم ضبط بعض خلفيات شاشة الساعة خارج
UserStyle
، ما يؤثر في الصورة بشكل مرئي (مثل اختيار صورة خلفية). أضفناRenderer.sendPreviewImageNeedsUpdateRequest
التي تتيح لخلفية شاشة الساعة طلب صورة معاينة محدَّثة. تجدر الإشارة إلى أنّ هذا الإجراء يتطلّب تاريخًا متوافقًا مع النظام ليعمل.أضفنا أيضًا واجهة برمجة تطبيقات لخلفيات شاشة الساعة بهدف إظهار ألوانها للنظام الذي قد يختار لوحة ألوانه بناءً على ذلك. يُرجى العلم أنّه تمّ إجراء ذلك بشكل تجريبي من خلال رمز تصحيح تابع.
يمكن الآن استخدام
SmallImages
في كل نوع من أنواعComplicationData
تقريبًا.
تغييرات واجهة برمجة التطبيقات
- يمكن أحيانًا أن ينفصل تطبيق "مدير الخلفية" عن المحرّك وإنشاء آخر. لقد أضفنا
DisconnectReason
int def وتوسيعClientDisconnectListener
باستخدام طريقة جديدة تتضمّنDisconnectReason
، ما يتيح للمستمعين ملاحظة حالات فصل المحرّك. (I45cce) - تمت إضافة معلمتين اختياريتين
nameResourceId
وscreenReaderResourceId
إلى الدالة الإنشائيةComplicationSlotOverlay
(I157e8). - أضفنا برنامج تضمين جوافة لحمل الزائد الجديد من
getOrCreateInteractiveWatchFaceClient
معPreviewImageUpdateRequestedListener
. (Ic31f0) - لقد أضفنا
Renderer.sendPreviewImageNeedsUpdateRequest
، وهو مفيد لخلفيات شاشة الساعة خارجUserStyleSchema
، ما يؤثر في شكلها (مثل خلفية شاشة ساعة مع صورة خلفية يمكن اختيارها). من جهة العميل، أضفناPreviewImageUpdateRequestedListener
كمَعلمة اختيارية إلىgetOrCreateInteractiveWatchFaceClient
لمراقبة هذه الطلبات. (Iff44a) - لقد بسّطنا واجهة برمجة التطبيقات لعرض
WatchFaceColors
. وتتوفّر الآن خاصية بسيطة تُعرف باسمwatchFaceColors
على Renderer والتي يمكن ضبطها على خلفية شاشة الساعة. يجب تعديل هذه السمة عند الضرورة استجابةً لأي تغييرات على النمط. بدلاً من استخدام السمةWallpaperManager
لملاحظة التغيّرات في الألوان، أضفنا السمةOnWatchFaceColorsListener
إلى السمةInteractiveWatchFaceClient
. (I490bc) - لقد أضفنا فئة
WatchFaceColors
تحتوي على الألوان الثلاثة الأكثر بروزًا لخلفية شاشة الساعة وأضفنا طريقتين مفتوحتينwatchfaceColors
وnotifyWatchFaceColorsChanged
إلى العارض، وهي تتيح للنظام التعرّف على ألوان خلفية شاشة الساعة من خلالWallpaperManager.getWallpaperColors
. (I3d611) - تتوافق الآن كل من
ShortTextComplicationData
وRangedValueComplicationData
وNoPermissionComplicationData
(وإصداراتDiscreteRangedValueComplicationData
وGoalProgressComplicationData
وWeightedElementsComplicationData
التجريبية) معSmallImages
. إذا اختارت خلفية شاشة الساعة عرض إضافة بألوان متعددة، أصبح بإمكانها الآن استخدام خلفية "SmallImage
" متعدّدة الألوان بدلاً من استخدام صورة أحادية اللون. (I257df) - إعادة هيكلة
PreviewImageUpdateRequestedListener
لتصبحConsumer<>
بدلاً من ذلك (Ia875d) - استبدال الطريقة المجرّدة الفردية (SAM) من النوع
OnWatchfaceColorsListener
بالنوع العام من Java SAM (المستهلك) (I0c489) - لقد أوقفنا العمل بالطريقتَين
getOrCreateInteractiveWatchFaceClient
وlistenableGetOrCreateInteractiveWatchFaceClient
القديمتَين اللتَين لا تحدّدانPreviewImageUpdateRequestedListener
. (Iec502)
إصلاح الأخطاء
- تمت إعادة تسمية
DisconnectReason.BINDER_DIED
إلىDisconnectReason.ENGINE_DIED
. (I4eb0e)
الإصدار 1.2.0-alpha01
10 آب (أغسطس) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.2.0-alpha01
". يحتوي الإصدار 1.2.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- لقد أتحنا إمكانية استخدام تجريبي لتنسيقات مختلفة جديدة للإضافة. وهذا مجال التطوير النشط، وقد تخضع هذه التنسيقات الجديدة للتغيير بدون إشعار، ولا يمكن حاليًا استخدام أجهزة العرض من
CanvasComplicationDrawable
. - أضفنا أيضًا هوامش اختيارية إلى خانات الإضافات لتسهيل النقر عليها.
تغييرات واجهة برمجة التطبيقات
- أصبحت فئة
BoundingArc
التجريبية غير قابلة للتغيير الآن. (If624a) - قد يكون من الصعب النقر على الإضافات الصغيرة. للمساعدة في الحدّ من هذه المشكلة، وفّرنا الهوامش التي تزيد من المساحة القابلة للنقر بدون التأثير في العرض. ما لم يتم تحديد هوامش في
ComplciationSlots
(سواء في رمز أو بتنسيق XML)، لا تتوفر هوامش بحجم صفر. (I14089) - تم تغيير توقيع
getComplicationSlotInflationFactory(CurrentUserStyleRepository)
لعرض مثيل غير فارغ من المصنع. كان من الخطأ عرض قيمة فارغة من قبل، لذا فإن هذا جعل عقد واجهة برمجة التطبيقات أكثر وضوحًا. (I0fcc0) - أضفنا الوسيطة
currentUserStyleRepository
إلى الطريقةWatchFaceService.getComplicationSlotInflationFactory
لتكون متسقة معcreateComplicationSlotsManager
. (I2ddd2) - أصبحت ميزة "
UserStyleFlavors
" ميزة غير تجريبية. (I69cdc) - أزلنا
ValueType
التجريبية منRangedValueComplicationData
وقدّمنا بدلاً من ذلك السمةDiscreteRangedValueComplicationData
التجريبية التي تشبهRangedValueComplicationData
باستثناء نطاق الأعداد الصحيحة وقيمتها. لقد قدمنا أيضًاGoalProgressComplicationData
التجريبية التي تشبهRangedValueComplicationData
باستثناء أنها بصدد التقدم نحو هدف يكون فيه الحد الأدنى ضمنيًا صفرًا، ويُسمح بأن تكون القيمة أكبر منtargetValue
. في جميع خياراتRangedValue
، يجب تحديد صورة واحدة على الأقل صورة أو نص أو عنوان أحادي اللون. (I9590c) - لقد أزلنا
boundsWithMargins
منComplicationSlotState
لأنّ برنامج النظام لا يتضمّن حالة استخدام له. (I42e26) - أتحنا استخدامًا تجريبيًا لـ
WeightedElementsComplicationData
الذي يتكوّن من مجموعة من العناصر (أزواج من الوزن واللون) بالإضافة إلى نص/عنوان/صورة اختيارية. قد يتم عرض هذه كمخطط دائري حيث يجب أن تكون الألوان ذات معنى بالنظر إلى السياق، نظرًا لعدم وجود مجال عادةً في الإضافة لعرض التسميات. (I87eea) - تتيح لك الآن السمة
ColorRamps
التجريبية، التي يستخدمها كل منRangedValueComplicationData
وGoalProgressComplicationData
، بشكل اختياري، تحديد تسلسل يصل إلى سبعة ألوان، وعلامة توضح ما إذا كان يجب تسوية الألوان بسلاسة أو ما إذا كان يجب عرض خطوات اللون الصلبة ذات الحجم المتساوي. (I9f5bf) - تم تغيير الحقل "
RangedValueComplicationData.drawSegmented
" إلى "valueType
"، وهو عدد صحيح مع قيمة "ValueType IntDef
" مقابلة توفّر معنى دلالي للقيمة ذات النطاق الزمني، وقد يستخدمه عارض الإضافة للتأثير في النمط. (I0616b) - لقد أضفنا دعمًا تجريبيًا إلى السمة
ColorRanges
الاختيارية إلىRangedValueComplicationData
. يتم عرض التعقيدات عادةً بألوان خلفية شاشة الساعة، ولكن في بعض الأحيان يكون من الأفضل ضبط ألوانComplicationDataSource
، مثلاً إذا كان لها معنى دلالي معيّن. على سبيل المثال، من الأحمر إلى الأزرق لدرجة الحرارة. (I5153a) - لقد أضفنا تلميحًا تجريبيًا من
drawSegmented
إلىRangedValueComplicationData
. يشير هذا العرض إلى أجهزة العرض لرسم مؤشر القيمة ذات النطاق الزمني على شكل قطاعات، حيث يكون المقطع الواحد = وحدة واحدة. (I7d7c1)
إصلاح الأخطاء
- لقد أضفنا إمكانية تحديد
ComplicationSlotBounds
وفقًا لنظام إحداثي الشاشة المحدَّد مسبقًا. (I0985d)
الإصدار 1.1
الإصدار 1.1.1
10 آب (أغسطس) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.1
". يتضمّن الإصدار 1.1.1 هذه الالتزامات.
- تمّ إطلاق هذا الإصدار لإصلاح الأخطاء، وننصح مستخدمي الإصدار 1.1.0 بالترقية.
إصلاح الأخطاء
إنّ إعداد خلفية شاشة الساعة غير متزامن، وإذا تم تلقّي إضافة قبل أن تصبح خلفية شاشة الساعة جاهزة، يتم إدراجها في قائمة "
pendingInitialComplications
" وتطبيقها لاحقًا. تم تطبيق "pendingInitialComplications
" في وقت قريب جدًا، ما يعني أنّ عملية إعداد خلفية شاشة الساعة ما زالت تحتوي على فترة زمنية معيّنة، ويتم فيها تجاهل الإضافات على "pendingInitialComplications
". نودّ إعلامك بأنّه تمّ الآن إصلاح هذه المشكلة. بالإضافة إلى ذلك، تعمل حزمة التصحيح هذه على إصلاح خطأ كان يحاولComplicationRenderer
عن طريق الخطأ تحميل العناصر النائبة بشكل غير متزامن، ما أدّى إلى عدم تحديث الرسم المجمّع مطلقًا. وأخيرًا، يساعد هذا التصحيح في إصلاح خطأ نظري حيث يلزم دمجpendingInitialComplications
المتعددة. (0d03ba3)إصلاح القفل الهوائي المحتمل في
InteractiveInstanceManager
حيث بقي "getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance
" على القفل لفترة أطول من اللازم. نتوقّع عادةً أن يكون الخطأengine.setUserStyle
سريعًا، ولكن إذا لم يحدث ذلك لسبب ما، قد ينتهي الأمر بتوقُّف حدوث خطأ بأي شكلٍ من الأشكال. تؤدي هذه التصحيح إلى نقل العمل غير الضروري إلى مكان آخر، ما قد يؤدي إلى التوقّف عن العمل.(5a2adca)يُرجى حلّ عدّة مشاكل احتفظت بـ
WatchFaceService
. قد يحتفظ WakeLock أحيانًا بـWatchFaceService
، ويؤدي إضافة مكالمةrelease()
إلى إصلاح ذلك. ويمكن أيضًا لـStateFlows
الاحتفاظ بـWatchFaceService
، ما يؤدي إلى إلغاء إصلاحCoroutineScopes
الأساسي الذي.(fd48138)أضِف مهلات إلى
awaitDeferredWatchFace
* وأصلحwatchfaceOverlayStyle
NullPointerException
. في الظروف العادية، يجب ألا تنتهي مهلة هذه العملية، بما في ذلك بعد التثبيت الجديد وسيناريوهاتDirectBoot
التي يكون فيها الحِمل على وحدة المعالجة المركزية مرتفعًا. لقد أصلحنا أيضًا رقم NPE في حال استدعاءgetWatchfaceOverlayStyle
بعدclose()
.(a4c3a5a)
الإصدار 1.1.0
15 حزيران (يونيو) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0
". يتضمّن الإصدار 1.1.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.0.0
تعديل محسَّن:
- أتحنا إمكانية استخدام المخططات الهرمية، ما يسمح بتدوين التسلسل الهرمي للأنماط في واجهات المستخدم للمحرّر. يمكنك الآن تحديد رموز منفصلة لاستخدامها على خلفية شاشة الساعة وأدوات التحرير المصاحبة.
- تتوفّر إمكانية الموافقة على نُسخ متعددة من خلفية شاشة الساعة، ولكل مثيل معرّف فريد متاح في جميع مساحات عرض واجهة برمجة التطبيقات.
- يمكنك الآن تحديد أسماء يمكن للمستخدمين قراءتها للسمة
ComplicationSlots
من أجل استخدامها في أدوات التحرير. - تتوفّر هذه الميزة التجريبية على أنماط "النكهات"، وهي مجموعة منتقاة من الأنماط ستظهر من خلال أداة التعديل المصاحبة.
- عند تعديل نسختَين من خلفية شاشة الساعة، يمكن الآن أن تشارك مثيلات خلفية شاشة الساعة الموارد، ما يوفّر مساحة في الذاكرة.
- عند اختيار إضافة من أداة تعديل خلفية شاشة الساعة، يتم الآن اختيار مقدِّم الخدمة الحالي مسبقًا.
إضافات محسَّنة:
- يمكنك الآن تحديد
ComplicationType
لمصادر البيانات الأساسية والثانوية، ما يمنح المطوّرين مزيدًا من المرونة لتجربة استخدام غير تقليدية. - أضفنا
ComplicationDataTimeline
التي توفّر سلسلة من البيانات المحدّدة زمنيًا لعرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتعديلها تلقائيًا. على سبيل المثال، توقّعات الطقس اليوم في أوقات مختلفة أو عدّة أحداث قادمة في التقويم. ComponentName
الخاص بموفّر الإضافة هو جزء منComplicationData
.- يتم الآن تخزين الإضافات مؤقتًا لتوفير تجربة أفضل عند التبديل بين خلفيات شاشة الساعة.
التغييرات الأخرى:
- يمكن الآن تحديد
UserStyleSchema
وComplicationSlots
في XML. يساهم ذلك في تبسيط عملية إنشاء خلفية شاشة الساعة ويتيح إجراء طلبات بحث أسرع عن البيانات الوصفية من النظام. - يمكن لخلفيات شاشة الساعة الآن التأثير في الألوان المستخدَمة لعرض عناصر النظام المركّبة.
الإصدار 1.1.0-rc01
18 أيار (مايو) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-rc01
". يحتوي الإصدار 1.1.0-rc01 على هذه الالتزامات.
الميزات الجديدة
- لقد أجرينا بعض التعديلات على سهولة الاستخدام لإتاحة استخدام تنسيق XML لخلفية شاشة الساعة، وذلك لتسهيل تحديد
ComplicationSlotBounds
والمراجع الداعمة. ستستمر تجربة إضافة الحافةBoundingArc
في السباكة حتىdrawHighlight
على الرغم من أنّه لا يُنصح باستخدامها في الوقت الحالي.
تغييرات واجهة برمجة التطبيقات
- أضفنا حِملًا تجريبيًا زائدًا من
drawHighlight
يقبل المعلَمةBoundingArc
. (I705f8) - يتيح تنسيق XML لخلفية شاشة الساعة الآن استخدام مراجع الموارد. فهو يتيح لك استخدام الثوابت نفسها في كلّ من XML والتعليمات البرمجية. (I3ef61)
- أتحنا إمكانية تعريف
ComplicationSlotBounds
في نماذجcenter_x
وcenter_y
وsize_x
وsize_y
. الآن، من الممكن أيضًا استخدام وحدات مختلفة (أي وحدة بكسل مستقلة الكثافة) باستخدام مراجع الموارد. (Iace98)
إصلاح الأخطاء
- إصلاح
runBlockingWithTracing
الذي كان يُشغِّل المهام في سياق غير صحيح.(4f595fe) - جعل
BaseEditorSession.close
متزامنًا تكمن مشكلة عدم مزامنةBaseEditorSession.close
في أنّنا أطلِقComplicationDataSourceInfoRetriever
بعد فوات الأوان، ما يؤدي إلى تحذير المستخدمين من المحتوى غير المرغوب فيه في أداة Logcat. ربما لم يكن هذا الإجراء ضارًا، ولكن محتوى Logcat غير المرغوب فيه يشتت الانتباه ويجب تجنُّبه.(35a5308)
الإصدار 1.1.0-beta02
11 أيار (مايو) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-beta02
". يتضمّن الإصدار 1.1.0 -beta02 هذه الالتزامات.
الميزات الجديدة
- لقد أضفنا دعمًا تجريبيًا لأنواع
ComplicationData
الجديدة، وهي غير جاهزة للاستخدام بعد، ولكن يمكنك مشاهدة هذه المساحة.
تغييرات واجهة برمجة التطبيقات
- لقد أضفنا
BoundingArc
، وهي فئة تجريبية تصف هندسة خانة إضافة الحواف. تمت إضافة هذا الإطار إلىComplicationSlot
وتوصيله إلىComplicationSlotState
وWatchFaceMetadataClient
. (I61a40) - لقد أضفنا إمكانية اكتساب الإعدادات في ملف XML الخاص بـ
UserStyleSetting
. يتيح لك ذلك تقليل مستوى الإسهاب ومشاركة إعدادات بين خلفيات شاشة الساعة. (Ief841) - لقد أضفنا نوعَين تجريبيَين جديدَين من
ComplicationData
:ListComplicationData
وProtoLayoutComplicationData
. لا يتوفّر حاليًا أي عرض من هذَين النوعَين، ولا يتعرّف نظام التشغيل WearOS حاليًا على هذه الأنواع في حال إضافتها إلى بيانComplicationDataSource's
. (I1811c)
إصلاح الأخطاء
- إصلاح التسلسل من النوع
TimeLineEntry
لم نكن ننشئ تسلسلاً للنوعTimeLineEntry
، ما يعني أنّ النسخة المخزَّنة مؤقتًا من النوعTimeLineEntries
من النوع NoData سيتم تفسيرها بشكل غير صحيح على أنّها تتضمّن نوع الإضافة الرئيسية الذي يؤدي إلى NPEs عند الوصول إلى حقول مطلوبة غير متوفّرة. (55ffdf5) - إصلاح خطأ أدّى إلى تجاهل
setComplicationData
لحقول المخطط الزمني(fb392f5) - إصلاح خطأ قد يؤدي أحيانًا
runBlockingWithTracing
إلى ظهور NPE(12ca62e) - إصلاح خطأ حيث نحصل أحيانًا على
ClassNotFoundException: android.support.wearable.complications.ComplicationText
عند تلقي إضافة.(217942d9) - إصلاح خطأ في
GlesRenderer.backgroundThreadInitInternal
حيث كان يتم طلبonBackgroundThreadGlContextCreated
فقط في حال استدعاءEGL14.eglCreateContext
. إصلاح خطأ آخر تسبب في حدوث خلل بصري في لقطة الشاشة بسببverticalFlip
.(c674ad2) - أصلِح مشكلة التحقّق من إصدار XML الخاص بـ
WatchFaceService
لأنّه تم تحميله من حزمة غير صحيحة.(dfa06f3) - تستخدم صيغة السلك النائب حزمة داخلية الآن. لا نريد أن تقسّم العناصر النائبة خلفيات شاشة الساعة الحالية التي قد تستخدم المحتوى الداخلي المخفي a.s.w.c.ComplicationData. في السابق، كان يتم في السابق تخزين العنصر النائب في الحقول المعتادة باستخدام تنسيق الأسلاك في بيانات
NoDataComplication
(هذه مشكلة لأنّ خلفيات شاشة الساعة القديمة تعرض سلسلة العنصر النائب غير المقصودة)، بدلاً من ذلك، نستخدم الآن حزمة داخلية لعزل هذه السلسلة بالكامل (d5e7bd2).
الإصدار 1.1.0-beta01
20 نيسان (أبريل) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-beta01
". يتضمّن الإصدار 1.1.0-beta01 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- الآن، تعرض طُرق
WatchFaceMetadataClient
(getUserStyleSchema
وgetComplicationSlotMetadataMap
وgetUserStyleFlavors
) وHeadlessWatchFaceClient.getUserStyleFlavors
سياسة RuntimeException بدون علامة بدلاً منWatchFaceException
. (I0718a) - تم نقل "
WatchFaceMetadataClient.WatchFaceException
" إلى خارج الصف للسماح بإعادة استخدامه. (I4e869)
إصلاح الأخطاء
- لن يتعطل
WatchFaceMetadataClient
بعد الآن عند إرسال جزء منComplicationSlotBounds
.(Iaafd)
الإصدار 1.1.0-alpha05
6 نيسان (أبريل) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha05
". يحتوي الإصدار 1.1.0-alpha05 على هذه الالتزامات.
الميزات الجديدة
- يمكنك الآن تحديد مصدر البيانات الذي أرسل "
ComplicationData
" من خلال فحص "ComplicationData.dataSource
". قد تستخدم بعض خلفيات شاشة الساعة هذا لتخصيص عرض الإضافة. (I44a73)
تغييرات واجهة برمجة التطبيقات
- تم إيقاف
Renderer.CanvasRenderer
وRenderer.GlesRenderer
نهائيًا لصالحRenderer.CanvasRenderer2
وRenderer.GlesRenderer2
اللذَين يتيحان استخدامSharedAssets
التي يتم تمريرها إلى طرق العرض. بالنسبة إلى إمكانية التشغيل التفاعلي للغة JavaScript، طرحناListenableCanvasRenderer2
وListenableGlesRenderer2
. (I31ffa) - تمت إضافة إمكانية
@WatchFaceFlavorsExperimental
لتحديد النكهات - قائمة مُعدّة مسبقًا لخلفيات شاشة الساعة ذات التصميم (I04dd0) - أصبح
Renderer.sharedAssets
الآن StateFlow وقد أزلناRenderer.SharedAssetsFactory
(I12ac5) غير المستخدمة. - لم يعُد الموقع الإلكتروني
UserStyleSchema.userStyleSettings
متوقفًا نهائيًا (Iba7e3). - أضفنا السمة
HeadlessWatchFaceClient.getUserStyleSchemaDigestHash
التي تتيح لـHeadlessWatchFaceClient
تجنُّب مقدار النفقات العامة المنخفضة نسبيًا لتمرير المخطط عبر AIDL قبل احتساب تجزئة الملخّص. (I33597) - لقد أضفنا السمة
isUserStyleSchemaStatic
إلىWatchFaceMetadataClient
، وهذا الإجراء صحيح إذا كان من الممكن الاعتماد على عدم تغييرUserStyleSchema
إلّا إذا تم تحديث حزمة APK لخلفية شاشة الساعة. (I45a3f) - لقد أضفنا
getDigestHash
إلىUserStyleSchema
التي تحسب تجزئة ملخّصة للمخطط. ويمكن استخدام هذه البيانات لتحديد ما إذا كان قد تم تغييرUserStyleSchema
بكفاءة أم لا. (I2063d) - تمت إعادة تسمية
METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED
إلىMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED
(I9ba5d) - تمت إعادة تسمية "
UserStyleSetting.OnWatchEditorData
" إلى "UserStyleSetting.WatchFaceEditorData
"، وهو يحتوي على بيانات لا يستخدمها سوى "محرِّر خلفية شاشة الساعة". (If3afb)
الإصدار 1.1.0-alpha04
9 آذار (مارس) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha04
". يحتوي الإصدار 1.1.0-alpha04 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- قد لا تكون الميزات الأحدث في
ComplicationData
متاحة دائمًا (مثلاً، الإضافات التي تم تخزينها مؤقتًا والتي انتهت صلاحيتها)، لذا وسّعنا نطاقNoDataComplication
باستخدام عنصر نائب اختياري integrationData وإضافةComplicationText.PLACEHOLDER
وMonochromaticImage.PLACEHOLDER
وSmallImage.PLACEHOLDER
وPhotoImage.PLACEHOLDER
والتي لا يُسمح باستخدامها إلا داخل سياق العنصر النائبNoDataComplicationData
. في حال تحديد هذه العناصر، يتم اقتراح عرضها بمربّعات/أقواس رمادية. (I6285d) - أضفنا
ComplicationData.getNextChangeInstant
الذي يخبرك عن البحث الفوري التالي بعد المرجع "فوري" الذي قد يتغير فيه أي حقل من الإضافة. ويتم استخدام هذه الطريقة داخليًا لجدولة الإطارات الخاصة بتحديثات الإضافات. على سبيل المثال، إذا كان يتم تحديث خلفية شاشة الساعة عادةً مرّة واحدة في الدقيقة، يؤدي ضبط إضافة ساعة الإيقاف إلى تحديثها مرة واحدة في الثانية. (I7ceb2) - يمكن الآن استخدام
EditorSession.watchFaceId
في جميع مستويات واجهة برمجة التطبيقات. بالإضافة إلى ذلك، ستكون قيمتها الآن متسقة دائمًا مع السمةWatchState.watchFaceInstanceId
. (I323b9) - لم تعُد واجهة برمجة التطبيقات
getPendingIntentForTouchEvent
ضرورية بما أنّه تم إصلاح المشكلة الأساسية في إطار العمل، وبالتالي تمت إزالة جميع واجهات برمجة التطبيقات ذات الصلة. لا تحتاج خلفيات شاشة الساعة إلى اتّخاذ أي إجراءات خاصة لتنشيط "PendingIntents
"، حتى إذا تم الضغط على زر الشاشة الرئيسية مؤخرًا. (I1f2e8) - لقد أضفنا السمة
RendererParameters.isForScreenShot
والتي ستكون صحيحة إذا كان العرض للقطة شاشة. تحتاج بعض خلفيات شاشة الساعة إلى معرفة ذلك من أجل إجراء تعديلات لضمان تحقيق أفضل النتائج. (I96d99) - لقد أضفنا السمة
WatchFaceExceptionReason
إلى السمةWatchFaceException
لتوفير مزيد من المعلومات حول المشكلة التي حدثت. (I01d15) - تمت إزالة
ComplicationDataSourceService.onImmediateComplicationRequest
، وبدلاً من ذلك تمت إضافةComplicationRequest.immediateResponseRequired
للإشارة إلى ضرورة استجابة مقدّم الخدمة بسرعة (يُفضَّل الاستجابة في أقل من 100 ملّي ثانية). تجدر الإشارة إلى أنّ هذه الوظيفة محمية وراء إذن "com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE
" المميّز. (Ie6b23) - تم تعديل إمكانية القيم الفارغة في النظام الأساسي وتطبيق التطبيق لتتوافق مع Tiramisu DP2 (I0cbb7)
إصلاح الأخطاء
- يحدث استثناء الآن في تطبيق خلفية شاشة الساعة في حال تعذّر التحقّق من صحة المخطط (Ia400f)
الإصدار 1.1.0-alpha03
9 شباط (فبراير) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha03
". يتضمّن الإصدار 1.1.0-alpha03 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- لقد أضفنا دعمًا تجريبيًا لمخططات النمط الهرمي. لقد أضفنا موقعًا جديدًا إلى
androidx.wear.watchface.style.UserStyleSetting.Option
، وهو childSettings والذي لا يتم استخدامه إلا من قِبلListOption
في البداية. ويسمح هذا بوصف التسلسل الهرمي للأنماط ليستخدمه واجهات المستخدم للمحرّر، ولا يتم تغيير UserStyle الأساسي، ولا يزالMap<String, ByteArray>
. (Iaf6f4) - لقد أضفنا
WatchFace.OverlayStyle
التي تسمح لخلفية شاشة الساعة بإعداد عرض تراكب حالة النظام. (I8520d) - لقد طرحنا
clearWithBackgroundTintBeforeRenderingHighlightLayer
مَعلمة إنشائية اختيارية جديدة للسمةCanvasRenderer
(القيمة التلقائية هي "خطأ"). في حال ضبطها على "صحيح"، سيتم محو لوحة الرسم بلون الخلفية. (Ie01e5) - تمت إضافة مفتاح البيانات الوصفية "
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED
" الذي يسمح لمصادر بيانات الإضافة بالإشارة إلى أنّها يمكن أن توفّر قيمة تلقائية بدون أي إعدادات (Icc0d4). - من الشائع عند تعديل خلفية شاشة الساعة أن تكون هناك حالة تفاعلية وأخرى بلا واجهة مستخدم رسومية. للمساعدة في توفير الذاكرة، طرحنا
Renderer.SharedAssets
التي تتيح لبرنامج عرض خلفية شاشة الساعة مشاركة بيانات غير قابلة للتغيير (مثل الزخارف وأدوات التظليل) بين الحالات المختلفة. تم إيقافGlesRenderer.setEglConfig
وGlesRenderer.setEglDisplay
نهائيًا، ولم يكن من المفترض أبدًا أن تكون هذه الإعدادات قابلة للضبط، وأدّى ذلك إلى سلوك غير محدّد. (I0d9e7) - لقد أضفنا
setNameResourceId
وsetScreenReaderNameResourceId
(اللذين يشيران إلى موارد السلسلة) إلىComplicationSlot.Builder
وعلامات الالحصول المقابلة فيandroidx.wear.watchface.client.ComplicationSlotState
. يسمح هذا الإجراء للنظام بجلب أسماء integrationSlots لاستخدامها في أدوات التحرير وقارئات الشاشة. (If6c6a) - طرح
WatchfaceMetadataClient.getUserStyleSchema
وgetComplicationSlotMetadataMap
الآنWatchFaceException
بدلاً منRemoteException
. (I86f11) - تمت إعادة تسمية
onSynchronousComplicationRequest
والدوال ذات الصلة فيComplicationDataSourceService
إلىonImmediateComplicationRequest
وغيرها... (I87ba0) - تحتوي أدوات تعديل خلفيات شاشة الساعة على ميزات شاشة أقل بكثير من المحرّرين المصاحبين، لذلك من المنطقي إتاحة رموز مختلفة على محرّري خلفية شاشة الساعة. تضيف رمز التصحيح هذا
OnWatchEditorData
(يحتوي حاليًا على رمز فقط) إلى جميع UserStyleSettings وفئات Option الخاصة بهم حيثما كان ذلك مناسبًا. (If1886) - أضفنا
@JvmOverloads
إلى الدالة الإنشائية لـ ListenableGlesRenderer لتحسين إمكانية التشغيل التفاعلي لـ Java. (I2974a)
إصلاح الأخطاء
- تم الآن وضع علامة
@Throws(GlesException::class)
بشكل صحيح على الدالة الإنشائية لـListenableGlesRenderer
، ويمكن الآن توسيع هذه الفئة في جافا. (Iac6d0) - إصلاح الخطأ المتمثل في عدم معالجة
PhotoImageComplicationData
TapAction بشكل صحيح (I1cc30)
الإصدار 1.1.0-alpha02
12 كانون الثاني (يناير) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha02
". يحتوي الإصدار 1.1.0-alpha02 على هذه الالتزامات.
الميزات الجديدة
- للمساعدة في تصحيح الأخطاء والاختبار، تم الآن تجاهل طريقة الترميز
ComplicationData
والفئات الفرعية المرتبطة بها في رموز التجزئة وتساوي وtoString لتسهيل استخدامها.
تغييرات واجهة برمجة التطبيقات
- عند استخدام طرق
WatchfaceMetadataClient
، يتم عرضRemoteExceptions
مرة أخرى متى كان ذلك مناسبًا، ما يسهّل على رمز العميل اكتشاف الأخطاء من خلفية شاشة الساعة. (I78785) - تتضمّن السمة
ComplicationData
والفئات الفرعية الآن رمز تجزئة ويساوي وtoString. (I24bc6)
الإصدار 1.1.0-alpha01
15 كانون الأول (ديسمبر) 2021
تم طرح "androidx.wear.watchface:watchface-*:1.1.0-alpha01
". يحتوي الإصدار 1.1.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
يمكن الآن تحديد
UserStyleSchema
وComplicationSlots
في XML. يؤدي ذلك إلى تبسيط عملية إنشاء خلفية شاشة الساعة. بالإضافة إلى ذلك، تكون طلبات البحثWatchFaceMetadataClient
أسرع لأنها لا تحتاج إلى الربط بالخدمة للحصول على البيانات الوصفية. لم يعُدWatchFaceMetadataClient
وListenableWatchFaceMetadataClient
في مرحلة تجريبية وسيتمان جزءًا من واجهة برمجة التطبيقات الثابتة. وسيتمكّن النظام من دعم مثيلات متعددة لخلفية شاشة الساعة بشكل اختياري، مع خيارات تصميم مختلفة يحدّدها المستخدم. ستظهر هذه العناصر في أداة اختيار خلفية شاشة الساعة. لتفعيل هذه الميزة، يجب أن تتضمّن خلفية شاشة الساعة علامة البيانات الوصفية التالية في ملف البيان.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />
بعض خلفيات شاشة الساعة لها حالة غير مُسجّلة في "
UserStyle
". لإتاحة هذه الخلفيات وفي حالات متعددة، يتوفّر الآن رقم تعريف المثيل لخلفية شاشة الساعة من خلالWatchState.watchFaceInstanceId
.يتم الآن تخزين
ComplicationData
مؤقتًا للسماح بعرض الإضافات فور التحميل. في بعض الأحيان، يتم تخزينComplicationData
مؤقتًا في الذاكرة من خلال النظام، وأحيانًا يتم إدراجه تسلسليًا من خلال مكتبات خلفية شاشة الساعة. عند نشر أي إجراء نقر على الشاشة على تسلسل، سيتم فقدان أي إجراء نقر. إذا حدث ذلك، سيعرضComplicationData.tapActionLostDueToSerialization
القيمةtrue
، ومن المفترض أن تعرض خلفية شاشة الساعة الإضافة بشكل مختلف (على سبيل المثال، باللون الرمادي أو شبه شفاف) للإشارة إلى أنّه لا يمكن النقر على الرمز. سيرسل النظامComplicationData
المحدَّث معtapAction
في أقرب وقت ممكن.يجب عدم تخزين بعض
ComplicationData
مؤقتًا لفترة طويلة، ولدعم ذلك، أضفنا ميزة أكثر عموميةComplicationDataTimeline
. يمكن استخدام ذلك لتوفير سلسلة منComplicationData
المحددة بوقت لعرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتحديثها تلقائيًا. على سبيل المثال، توقّعات الطقس اليوم في أوقات مختلفة أو عدّة أحداث قادمة في التقويم. تم تمديد نطاقComplicationRequestListener
باستخدام طريقةonComplicationDataTimeline
جديدة يمكنك استخدامها لعرض هذه البيانات.تم تمديد
DefaultComplicationDataSourcePolicy
حتى تتمكن من تحديدComplicationType
لمصدري البيانات الأساسي والثانوي.أتحنا مزوِّدي خدمات الإضافات المتزامنة الذين يتم تحديث الإضافة بمعدّل تكرار أعلى من المعتاد، بما يصل إلى مرة واحدة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير محيطة. ملاحظة:قد يكون استخدام مقدِّمي الخدمات الإضافات المتزامنة محدودًا بسبب مشاكل تتعلق بضغط الذاكرة.
من المرجَّح أن يتم التراجع عن تغييرات
PendingIntentTapListener
لأنّنا حللنا المشكلة الأساسية (لا يمكن لخلفية شاشة الساعة تفعيل الأنشطة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية) في إطار العمل.
تغييرات واجهة برمجة التطبيقات
- تم تغيير الحقل "
ComplicationData.isCached
" إلى "tapActionLostDueToSerialization
"، ما يوفّر تجربة أكثر فائدة عند تحديد ما إذا كان يجب عرض خانة الإضافة بشكل مختلف للإشارة إلى عدم إمكانية النقر عليها. (I6de2f) - تمّت إضافة "
ComplicationDataTimeline
" إلى "wear-complication-data-source
". يمكن استخدام ذلك لتوفير سلسلة منComplicationData
المحددة بوقت لعرضها على خلفية شاشة الساعة والتي يمكن تخزينها مؤقتًا وتحديثها تلقائيًا. على سبيل المثال، توقّعات الطقس اليوم في أوقات مختلفة أو عدّة أحداث قادمة في التقويم. تم تمديد نطاقComplicationRequestListener
باستخدام طريقةonComplicationDataTimeline
جديدة يمكنك استخدامها لعرض هذه البيانات. يتوفّر برنامج تضمينSuspendingTimelineComplicationDataSourceService
جديد بلغة Kotlin لتعليق خدمات مصدر البيانات. (Idecdc) - تمّت إضافة "
PendingIntentTapListener
" و"WatchFaceControlClient.getPendingIntentForTouchEvent
". ويمكن أن يساعد ذلك في خلفيات شاشة الساعة التي تحتاج إلى إطلاق أغراض استجابة للنقر لتفادي مشكلة، حيث يحظر إطار العمل إطلاق أنشطة جديدة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية. (I98074) - تم تقديم ذاكرة تخزين مؤقت لميزة "
ComplicationData
" لكل خلفية شاشة في الساعة. والغرض من ذلك هو السماح لخلفية شاشة الساعة بعرض آخر قيم بيانات الإضافة المعروفة عند التحميل إلى أن يُتاح للنظام الفرصة لتحديثها. تم توفير طريقة جديدة من واجهة برمجة التطبيقاتWatchFaceControlClient.hasComplicationCache
للمصنّعين الأصليين للأجهزة. قد يؤثر ذلك على استراتيجية النظام لإرسال الإضافات إلى خلفية شاشة الساعة. بالإضافة إلى ذلك، يتضمنComplicationData
خاصيةisCached
ويُنصح بعرض التعقيدات المخزنة مؤقتًا بشكل مختلف بسبب عدم إمكانية تخزينtapAction
في ذاكرة التخزين المؤقت وسيتمnull
إضافتها في ذاكرة التخزين المؤقت. (I404b0) - رقم تعريف المثيل لخلفية شاشة الساعة متاح الآن عبر "
WatchState.watchFaceInstanceId
". لا تحتاج معظم خلفيات شاشة الساعة إلى استخدام هذه الميزة، ولكن إذا كانت هناك حالة خلفية لكل ساعة لم يتم تخزينها في المخطّط، يجب استخدام هذا الخيار لتحديد مثيل خلفية شاشة الساعة. للمساعدة في هذا الإجراء، يمكنك الآن تقديم مستند تعريف عند الاتصال برقمWatchFaceControlClient.createHeadlessWatchFaceClient
. (I1ff98) - تم توسيع نطاق
DefaultComplicationDataSourcePolicy
مع إمكانية ضبطComplicationTypes
التلقائي لموفّر الخدمة الأساسي والثانوي ولمزوّد النظام الاحتياطي. تم إيقافComplicationSlot.defaultDataSourceType
نهائيًا الآن. (If0ce3) ComplicationSlot.configExtras
قابل للتغيير الآن ويمكن تحديثه قبل الاتصال برقمEditorSession.openComplicationDataSourceChooser()
. (I6f852)- تمّت إضافة "
WatchFace.setComplicationDeniedDialogIntent
" و"setComplicationRationaleDialogIntent
". تم إطلاق هذه الأغراض لعرض مربّع حوار السبب المنطقي قبل طلب أذونات الإضافة، ومربّع حوار آخر يوضّح ضرورة الحصول على إذن الإضافة عند محاولة تعديل الإضافة عند رفض الأذونات (تعذّر فتح أداة اختيار الموفّر، وبالتالي لن يكون هناك حاجة إلى مربّع الحوار). (I3a29c) - يمكن الآن تحديد
UserStyleSchema
وComplicationSlots
في XML. يساهم ذلك في تبسيط عملية إنشاء خلفية شاشة الساعة وزيادة سرعة طلبات البحث إلى "WatchFaceMetadataClient
" لأنّه لا يحتاج إلى الربط بالخدمة للحصول على البيانات الوصفية. (I85bfa) - تمت إضافة "
InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent
" ليتمكّن العميل من تحديد ما إذا كانت خلفية شاشة الساعة متوافقة مع "getPendingIntentForTouchEvent
". (I0b917) - لم يعُد
WatchFaceMetadataClient
وListenableWatchFaceMetadataClient
في مرحلة تجريبية. ويمكن استخدامها للحصول على البيانات الوصفية لخلفية شاشة الساعة بكفاءة بدون الحاجة إلى فتح رابط لها. (Ibb827) - تمت إتاحة موفّري الإضافات المتزامنة الذين يتم تحديث الإضافة فيها بمعدّل تكرار أعلى من المعتاد، بمعدّل يصل إلى مرة واحدة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير محيطة. لاستخدام هذه الميزة، على مقدّم الخدمة تضمين علامة بيانات وصفية
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS
جديدة في ملف البيان وإلغاءonSynchronousComplicationRequest
. استنادًا إلى طبيعة مصدر البيانات، قد تحتاج أيضًا إلى إلغاءonStartSynchronousComplicationRequests
وonStopInteractiveComplicationRequests
لتلقّي إشعارات عند دخول الإضافة إلى الوضع التفاعلي وخروجه منها. (I8fe9d)
الإصدار 1.0
الإصدار 1.0.1
9 شباط (فبراير) 2022
تم طرح "androidx.wear.watchface:watchface-*:1.0.1
". يتضمّن الإصدار 1.0.1 هذه الالتزامات.
إصلاح الأخطاء
- إصلاح الخطأ المتمثل في عدم معالجة
PhotoImageComplicationData
TapAction بشكل صحيح (I1cc30)
الإصدار 1.0.0
1 كانون الأول (ديسمبر) 2021
تم طرح "androidx.wear.watchface:watchface-*:1.0.0
". يتضمّن الإصدار 1.0.0 هذه الالتزامات.
الميزات الرئيسية للإصدار 1.0.0
حزمة androidx.wear.watchface
هي المكتبة الجديدة المقترَحة لتطوير خلفيات شاشة ساعة WearOS. يحتوي التطبيق على عدد من الميزات الجديدة مقارنةً بمكتبة الدعم القديمة الخاصة بالأجهزة القابلة للارتداء.
- توفّر المكتبة بشكل مباشر تصميم المستخدم (مثل تغيير لوحة الألوان أو تصميم اليد أو علامات الساعات أو غير ذلك). أصبحت الآن عملية تطوير أداة تعديل خلفية شاشة الساعة أسهل من خلال استخدام androidx.wear.watchface.editor ويمكن تعديل خلفية شاشة الساعة من التطبيق المصاحب للنظام بدون الحاجة إلى كتابة أي رمز إضافي.
androidx.wear.watchface.style
- أفضل الممارسات الأساسية أنشأت المكتبة تلقائيًا تصنيفات لمحتوى قارئ الشاشة للإضافات (يمكنك أيضًا إضافة تصنيفات خاصة بك)، وسينخفض عدد اللقطات في الثانية تلقائيًا عند انخفاض طاقة البطارية وعدم شحنها، وذلك لتحسين عمر البطارية.
- لإنشاء خلفية شاشة ساعة، يجب استخدام رموز أقل، خاصةً في الإضافات التي يتم فيها نقل الكثير من النصوص النموذجية إلى المكتبة.
إصلاح الأخطاء
- إصلاح
EditorSession.userStyle.compareAndSet
(I6f676) - إصلاح تأخيرات خلفية شاشة الساعة القصيرة (Iffb97)
- إرسال
InteractiveWatchFaceImpl.onDestroy
إلى سلسلة واجهة المستخدم (I83340) - حل عدّة مشاكل في أجهزة استقبال البث (I7d25f)
الإصدار 1.0.0-rc01
3 تشرين الثاني (نوفمبر) 2021
تم طرح "androidx.wear.watchface:watchface-*:1.0.0-rc01
". يحتوي الإصدار 1.0.0-rc01 على هذه الالتزامات.
إصلاح الأخطاء
إصلاح dump () (087cf9e)
تأكَّد من الترتيب الصحيح لـ writeDirectBootPrefs. نريد أن يتم تنفيذ writeDirectBootPrefs دائمًا بعد initStyleAndComplications أو أنّنا نخاطر بتأخير عملية إعداد سلسلة واجهة المستخدم.(37650ac)
تأكَّد من طلب الرمز Renderer.onDestroy. في السيناريو الذي تم فيه إنشاء العارض ولكن لم يكتمل إعداد WF ويتم استدعاء Engine.onDestroy، نحتاج إلى استدعاء Renderer.onDestroy. (f9952dc)
تحسين/إصلاح لـ isالبطاريةLowAndNotCharging. تنقل رمز التصحيح هذا الإعداد الأولي لـ isLessSmallAndNotCharging بشكلٍ سابق، ما يعني أنّه يمكن إجراء ذلك بالتوازي مع createWatchFace. بالإضافة إلى ذلك، نستمع الآن إلى ACTION_POWER_DISCONNECTED. (ddffd80
InteractivewatchFaceClientImpl.isConnectionAlive ليكون خطأ بعد الإغلاق (ab9774e)
الإصدار 1.0.0-beta01
27 تشرين الأول (أكتوبر) 2021
تم طرح "androidx.wear.watchface:watchface-*:1.0.0-beta01
". يتضمّن الإصدار 1.0.0-beta01 هذه الالتزامات.
الإصدار 1.0.0-alpha24
13 تشرين الأول (أكتوبر) 2021
تم طرح "androidx.wear.watchface:watchface-*:1.0.0-alpha24
". يحتوي الإصدار 1.0.0-alpha24 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم نقل الصفوف في الحزمة
androidx.wear.watchface.complications
إلى مشروعwear:watchface:watchface-complications
جديد. لاحظ أنّ هذا يعني أنّه لا يمكنك تضمين هذه المكتبة بالإضافة إلى أي إصدار ألفا سابق منwear:watchface:watchface-complications-data
لأنك ستتلقّى أخطاء بشأن الفئات المكرّرة. (I97195) - تمت إعادة تسمية Renderer.dump إلى Renderer.onDump، وتمت إضافة تعليقات توضيحية إليها باستخدام @UiThread. (I44845)
- تمت إعادة تسمية "
InteractiveWatchFaceClient.addWatchFaceReadyListener
" إلى "addOnWatchFaceReadyListener
"، وتمت إعادة تسمية "removeWatchFaceReadyListener
" إلى "removeOnWatchFaceReadyListener
". (I48fea) - لم تعُد السمتان EditorSession
getComplicationsPreviewData
وgetComplicationsDataSourceInfo
يعلّقان الدوال، بدلاً من ذلك، هما سمتانStateFlow<>
تكون قيمتهما خالية في البداية. في ListenableEditorSession، تمت إزالةgetListenableComplicationPreviewData
وgetListenableComplicationsProviderInfo
لصالح كائناتStateFlow<>
الجديدة من الفئة الأساسية. إذا كنت بحاجة إلى رصد التغييرات في رمز JavaScript، يمكنك استخدامandroidx.lifecycle.FlowLiveDataConversions.asLiveData
للتحويل إلىLiveData<>
. (Ic5483)
الإصدار 1.0.0-alpha23
29 أيلول (سبتمبر) 2021
تم طرح "androidx.wear.watchface:watchface-*:1.0.0-alpha23
". يتضمّن الإصدار 1.0.0-alpha23 هذه الالتزامات.
الميزات الجديدة
أصبحت مكتبة خلفية شاشة الساعة الآن مجموعة مكتبة واحدة، ونتيجةً لذلك تم نقل المكتبات وستحتاج إلى تعديل عمليات استيراد Gradle على النحو التالي:
قديم | جديد |
---|---|
androidx.wear:wear-complications-data |
androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source |
androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface |
androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering |
androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client |
androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava |
androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data |
androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor |
androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava |
androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava |
androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style |
androidx.wear.watchface:watchface-style |
تغييرات واجهة برمجة التطبيقات
- يمكنك نقل مكتبات خلفية شاشة الساعة والإضافات المنفصلة في
androidx.wear
إلى مجموعة المكتبةandroidx.wear.watchface
. (b25f3c0) - تمت إضافة EditorRequest.canwatchFaceSupportlessEditing الخاص بالبرنامج للسماح للعميل بمعرفة ما إذا كان محرّر خلفية شاشة الساعة يتيح إمكانية التعديل بلا واجهة مستخدم رسومية. لاحظ أنه سيكون هناك بعض السلبيات الخاطئة لذلك لأنه تمت إضافة الدعم في asop/1756809 ولكنه سيعرض القيمة الصحيحة لجميع واجهات الساعة في المستقبل. (ca55590)
- يحتوي العارض الآن على طريقة dump() التي يمكن تجاوزها لإضافة بيانات مخصّصة إلى المعلومات التي أنشأتها خدمة نشاط ABD Shell dumpsys الخاصة بنشاط WatchFaceService. (95235f9)
- InteractiveWatchFaceClient.addWatchFaceReadyListener يحدد الآن أداة التنفيذ أولاً. (563ac2f)
- تمت إزالة StateFlowCompatHelper. ويجب استخدام asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- لم يعُد نمط UserStyleRepository.userStyle قابلاً للتغيير. (I44889)
- تمّت إعادة تسمية WatchFaceReadListener إلى OnWatchFace الشبكةListener. (Ic12a9)
إصلاح الأخطاء