خلفية شاشة ساعة Wear

إنشاء تطبيقات للساعات الذكية التي تعمل بنظام التشغيل "Wear OS من Google".

ملاحظة: اعتبارًا من 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 لتطبيقك أو وحدتك:

رائع

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 و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)
  • إصلاح الخطأ الذي يحدث بسبب عدم معالجة 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 مؤقتًا في الذاكرة وأحيانًا يخزّنه مكتبات خلفيات شاشة الساعة. عند تنفيذ الإجراء المتسلسل، سيتم فقدان أي ميزة 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 يمكنك استخدامها لعرض هذه البيانات. هناك برنامج تضمين جديد بلغة kotlin SuspendingTimelineComplicationDataSourceService لتعليق خدمات مصدر البيانات. (Idecdc)
  • تمت إضافة "PendingIntentTapListener" و"WatchFaceControlClient.getPendingIntentForTouchEvent". يمكن أن يساعد ذلك في خلفيات شاشة الساعة التي تحتاج إلى تفعيل الأهداف استجابةً للنقرات للتغلب على مشكلة يمنع إطار العمل إطلاق أنشطة جديدة لمدة 5 ثوانٍ بعد الضغط على زر الشاشة الرئيسية. (I98074)
  • تم تقديم ذاكرة تخزين مؤقت لنظام التشغيل ComplicationData لكل خلفية شاشة ساعة. والغرض من ذلك هو السماح لخلفية شاشة الساعة بعرض آخر قيم بيانات الإضافات المعروفة عند التحميل حتى يتسنى للنظام تعديل هذه القيم. هناك طريقة جديدة من واجهة برمجة التطبيقات WatchFaceControlClient.hasComplicationCache مخصّصة للمصنّعين الأصليين للأجهزة. وقد يؤثر ذلك في استراتيجية النظام لإرسال الإضافات إلى خلفية شاشة الساعة. بالإضافة إلى ذلك، لدى ComplicationData السمة isCached، ويُنصح بعرض الإضافات المخزّنة مؤقتًا بشكل مختلف لأنّه لا يمكن تخزين tapAction مؤقتًا وسيتم وضعها null في إضافة مخزّنة مؤقتًا. (I404b0)
  • يتوفّر الآن رقم تعريف مثيل خلفية شاشة الساعة عبر WatchState.watchFaceInstanceId. لن تحتاج معظم خلفيات شاشة الساعة إلى استخدام هذا الإعداد، ولكن إذا كانت هناك حالة خلفية لكل ساعة غير مخزّنة في المخطط، هذا هو المفتاح الذي يجب استخدامه لتحديد مثيل خلفية شاشة الساعة. للمساعدة في ذلك، يمكنك الآن تقديم مستند تعريف عند الاتصال بالرقم WatchFaceControlClient.createHeadlessWatchFaceClient. (I1ff98)
  • تم توسيع نطاق DefaultComplicationDataSourcePolicy مع إمكانية ضبط ComplicationTypes التلقائي لموفّر الخدمة الأساسي والثانوي وموفِّر النظام الاحتياطي. تم إيقاف ComplicationSlot.defaultDataSourceType نهائيًا الآن. (If0ce3)
  • أصبح الرقم ComplicationSlot.configExtras قابلاً للتغيير ويمكن تعديله قبل الاتصال بالرقم EditorSession.openComplicationDataSourceChooser(). (I6f852)
  • تمت إضافة "WatchFace.setComplicationDeniedDialogIntent" و"setComplicationRationaleDialogIntent". تم إطلاق هذه الأهداف لعرض مربّع حوار منطقي قبل طلب الحصول على أذونات الإضافة، ومربّع حوار آخر يوضّح الحاجة إلى إذن الإضافة عند محاولة تعديل إضافة عند رفض الأذونات (يتعذّر فتح أداة اختيار الموفّر، وبالتالي تكون هناك حاجة إلى مربّع الحوار). (I3a29c)
  • يمكن الآن تحديد UserStyleSchema وComplicationSlots في XML. يبسّط ذلك عملية إنشاء خلفية شاشة الساعة ويزيد من سرعة طلبات بحث "WatchFaceMetadataClient" لأنّه ليس بحاجة إلى الربط بالخدمة للحصول على البيانات الوصفية. (I85bfa)
  • تمت إضافة InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent حتى يتمكّن العميل من تحديد ما إذا كانت خلفية شاشة الساعة تتوافق مع getPendingIntentForTouchEvent. (I0b917)
  • لم يعُد WatchFaceMetadataClient وListenableWatchFaceMetadataClient في مرحلة تجريبية. ويمكن استخدامها للحصول على البيانات الوصفية لخلفية شاشة الساعة بكفاءة، حيثما أمكن، بدون فتح غلاف ربط لخلفية شاشة الساعة. (Ibb827)
  • تمت إضافة الدعم لمقدّمي الإضافات المتزامنين الذين يتم تعديل الإضافات فيها بمعدّل تكرار أعلى من المعتاد، بمعدّل يصل إلى مرة واحدة في الثانية عندما تكون خلفية شاشة الساعة مرئية وغير محيطة. لاستخدام هذه البيانات، يجب أن يدرج الموفّر علامة بيانات وصفية androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS جديدة في ملف البيان الخاص به وأن يلغي onSynchronousComplicationRequest. واستنادًا إلى طبيعة مصدر البيانات، قد يحتاج الأمر أيضًا إلى إلغاء onStartSynchronousComplicationRequests وonStopInteractiveComplicationRequests لتلقّي إشعارات بوقت دخول الإضافة وخروجها من وضع التفاعل. (I8fe9d)

الإصدار 1.0

الإصدار 1.0.1

9 شباط (فبراير) 2022

تم طرح androidx.wear.watchface:watchface-*:1.0.1. يحتوي الإصدار 1.0.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • إصلاح الخطأ الذي يحدث بسبب عدم معالجة PhotoImageComplicationData TapAction بشكل صحيح (I1cc30)

الإصدار 1.0.0

1 كانون الأول (ديسمبر) 2021

تم طرح androidx.wear.watchface:watchface-*:1.0.0. يحتوي الإصدار 1.0.0 على عمليات الالتزام هذه.

الميزات الرئيسية للإصدار 1.0.0

حزمة androidx.wear.watchface هي المكتبة الجديدة التي يُنصح بها لتطوير خلفيات شاشة الساعة التي تعمل بنظام التشغيل WearOS. يتضمّن الإصدار الجديد عددًا من الميزات الجديدة، مقارنةً بمكتبة الدعم القديمة.

  • توفّر المكتبة بشكل مباشر نمط تصميم المستخدم (مثل تغيير لوحة الألوان وتصميم العقرب ومظهر علامات الساعة وغير ذلك) (يمكنك الاطّلاع على androidx.wear.watchface.style). بات من السهل الآن تطوير أداة تعديل خلفية شاشة الساعة باستخدام androidx.wear.watchface.editor وتعديل خلفية شاشة الساعة من التطبيق المصاحب للنظام بدون الحاجة إلى كتابة أي رمز إضافي.
  • أفضل الممارسات بالتفصيل. يتم إنشاء تصنيفات محتوى قارئ الشاشة في المكتبة تلقائيًا من أجل الإضافات (يمكنك أيضًا إضافة تصنيفاتك الخاصة)، وينخفض معدّل عرض الإطارات تلقائيًا عند انخفاض طاقة البطارية وعدم شحنها لتحسين عمر البطارية.
  • وتجدر الإشارة إلى أنّه من الضروري تقليل عدد الرموز البرمجية لتطوير خلفية شاشة الساعة، وخاصةً في حال حدوث إضافات عندما يتم نقل الكثير من النصوص النموذجية إلى المكتبة.

إصلاح الأخطاء

  • إصلاح EditorSession.userStyle.compareAndSet (I6f676)
  • إصلاح التأخيرات القصيرة جدًا لخلفية شاشة الساعة (Iffb97)
  • إرسال InteractiveWatchFaceImpl.onDestroy إلى سلسلة واجهة المستخدم (I83340)
  • حل عدة مشاكل متعلقة بأجهزة استقبال البث (I7d25f)

الإصدار 1.0.0-rc01

3 تشرين الثاني (نوفمبر) 2021

تم طرح androidx.wear.watchface:watchface-*:1.0.0-rc01. يحتوي الإصدار 1.0.0-rc01 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • إصلاح الدالة dump() (التي يتم استدعاؤها من خلال adb Shell dumpsys) التي تعطّلت بسبب عمليات نقل بيانات التدفق. (087cf9e)

  • تأكَّد من الترتيب الصحيح لـ writeDirectBootPrefs. نريد أن يتم تشغيل writeDirectBootPrefs دائمًا بعد initStyleAndComplications أو احتمال تأخير سلسلة واجهة المستخدم init.(37650ac)

  • تأكَّد من استدعاء Renderer.onDestroy. في السيناريو الذي تم فيه إنشاء العارض ولكن لم يكتمل إعداد WF ويستدعي Engine.onDestroy، نحتاج إلى استدعاء Renderer.onDestroy. (f9952dc)

  • تحسين/إصلاح مشكلة isالبطاريةLowAndNotCharging. ينقل رمز التصحيح هذا أثناء عملية الإعداد الأوليّة لـ isPeriodLowAndNotCharging في وقت سابق، ما يعني أنّه يمكن إجرائها بالتوازي مع 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<> التي تكون قيمتها فارغة في البداية. تمّت إزالة 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.canWatchFaceSupportheadlessEditing لإخبار العميل بما إذا كان محرِّر خلفية شاشة الساعة يتيح التعديل بلا واجهة مستخدم رسومية. يُرجى العلم أنّه سيتم عرض بعض النتائج السلبية الخاطئة بسبب إضافة الدعم في asop/1756809، ولكنه سيعرض القيمة الصحيحة لجميع خلفيات شاشة الساعة المستقبلية. (ca55590)
  • يتضمّن Renderer الآن طريقة dump() يمكن تجاوزها لإضافة بيانات مخصَّصة إلى المعلومات التي تمّ إنشاؤها بواسطة خدمة نشاط WatchFaceService في ABD shell dumpsys. (95235f9)
  • تحدّد InteractiveWatchFaceClient.addWatchFacePaymentListener الآن عنصر التنفيذ أولاً. (563ac2f)
  • تمّت إزالة StateFlowCompatHelper. يجب استخدام asLiveData (androidx.lifecycle.asLiveData) بدلاً من ذلك. (bd35d3)
  • لم يعُد الخيار الحاليUserStyleRepository.userStyle قابلاً للتغيير. (I44889)
  • تمت إعادة تسمية WatchFaceجاهزListener إلى OnWatchFacePaymentListener. (Ic12a9)

إصلاح الأخطاء

  • InteractiveInstanceManager.deleteInstance لاستدعاء onDestroy هذا مطلوب للتأكد من جمع InteractiveWatchFaceImpl البيانات غير المرغوب فيها.(fce4af8، b/199485839)