wear protolayout

  
تتيح هذه المكتبة تحديد مجموعة من تصاميم واجهة المستخدم والعبارات غير المتعلقة بواجهة المستخدم ليتم عرضها/تقييمها على مساحات عرض عن بُعد.
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫01 يوليو 2026 1.4.1 - - -

تحديد الاعتماديات

لإضافة اعتمادية على wear-protolayout، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

رائع

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.4.1"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.4.1"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.4.1"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.4.1")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.4.1")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.4.1")
}

لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.

الإصدار 1.4

الإصدار 1.4.1

‫01 يوليو 2026

تم طرح androidx.wear.protolayout:protolayout-*:1.4.1. يتضمّن الإصدار 1.4.1 هذه التعديلات.

إصلاحات الثغرات الأمنية

  • فرض حدّ أقصى على أبعاد الصور يبلغ 2048px وعلى حجمها الأولي يبلغ 20MB لمنع استنفاد الذاكرة
  • فرض عمليات التحقّق من عمق التنسيق من خلال إصلاح خطأ كان يسمح للتنسيقات العميقة بتخطّي فرض العمق أثناء تحسينات بصمة الإصبع
  • تم منع حدوث استثناء/تعطُّل في حدود المصفوفة بسبب مَعلمات الفجوة غير المحدودة في DashedArcLine.
  • تم استبدال IllegalArgumentExceptions غير المعالَج بتسجيل أكثر أمانًا للأخطاء وإبطال صحة العُقد في مسار التعبير.
  • تم إصلاح خطأ NullPointerException لم يتم رصده عند معالجة معرّفات الموارد الموحّدة (URI) غير الصالحة للصور.

الإصدار 1.4.0

‫25 مارس 2026

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0. يتضمّن الإصدار 1.4.0 هذه التعديلات.

التغييرات المهمة منذ الإصدار 1.3.0:

  • للاطّلاع على التفاصيل الكاملة للتغييرات التي تم إجراؤها منذ الإصدار 1.3.0، يُرجى الرجوع إلى ملاحظات الإصدار 1.4.0-beta01.

الميزات الجديدة

  • يشير الإصدار 1.4.0-beta01 من Wear ProtoLayout إلى أنّ هذا الإصدار من المكتبة يتضمّن جميع الميزات وأنّ واجهة برمجة التطبيقات مقفلة (باستثناء الأجزاء التي تم وضع علامة "تجريبي" عليها). يتضمّن الإصدار 1.4 من Wear ProtoLayout الوظائف وواجهات برمجة التطبيقات الجديدة التالية:
    • موارد الصور المضمّنة وتحسينات الأداء: تم تقديم مفهوم محسّن للتعامل مع الموارد، حيث يمكن تضمين ImageResource مباشرةً في التصميم نفسه.
    • Material3TileService: تم تقديم خدمة جديدة متوافقة مع Kotlin لإنشاء مربّعات. ويسهّل عملية التطوير من خلال توفير دالة تعليق واحدة لعرض كلّ من تخطيط المربّعات والموارد. تتم إدارة MaterialScope وProtoLayoutScope تلقائيًا لتحسين معالجة الموارد وتحسين الأداء عند تحميل المربّعات بشكل أسرع.
    • تعديل على "معاينات المربّعات": تم تعديل الأدوات الخاصة بـ "معاينات المربّعات" لتتوافق مع ميزة ProtoLayoutScope الجديدة للتعامل التلقائي مع الموارد، ما يضمن عرض المعاينات للموارد المضمّنة بشكل صحيح بدون الحاجة إلى إعدادات إضافية.
    • تحسينات عديدة على لغة Kotlin الخاصة بالنطاق (DSL): أضفنا أدوات مساعدة متخصّصة بلغة Kotlin إلى Tile وجميع واجهات برمجة التطبيقات الأخرى اللازمة لإنشاء مربّع (مثل Timeline) من أجل تحسين تجربة المطوّرين الذين يستخدمون لغة Kotlin.
    • تبديل الخدمة الديناميكي: تم تقديم METADATA_GROUP_KEY، ما يتيح للمطوّرين تجميع عدة مثيلات TileService في ملف البيان. يتيح ذلك التبديل الديناميكي بين الخدمات المختلفة التي تمثّل اللوحة نفسها على إصدارات نظام التشغيل الجديدة.
    • معرّف المربّع في التحديثات: يمكن للمطوّرين الآن تحديد tileId معيّن في طلبات التحديث، ما يتيح تحكّمًا أكثر دقة في مربّعات التطبيق التي يتم إعادة تحميلها.
    • زيادة الإصدار المستهدف من حزمة تطوير البرامج (SDK) عند التجميع: لدعم الإصدار الجديد Material3TileService والتعامل المتقدّم مع الموارد، تمّت زيادة متطلّبات الإصدار compileSdk إلى 35.
    • منع أخطاء ANR: تم نقل منطق إلغاء الربط أثناء طلبات تحديث المربّعات إلى سلسلة محادثات في الخلفية لمنع أخطاء "التطبيق لا يستجيب" (ANR).
    • التعليق التوضيحي RequiresPermission المناسب لبيانات معدّل نبضات القلب: بدءًا من الإصدار 36 من واجهة برمجة التطبيقات، يتطلّب استدعاء PlatformHealthSources.heartRateBpm أو PlatformHealthSources.heartRateAccuracy منح إذن android.health.connect.HealthPermissions.READ_HEART_RATE للتطبيق الذي يتم استدعاؤه.

الإصدار ‎1.4.0-rc02

‫11 مارس 2026

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0-rc02. يتضمّن الإصدار 1.4.0-rc02 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • بدءًا من المستوى 36 لواجهة برمجة التطبيقات، يتطلّب الوصول إلى بيانات معدّل نبضات القلب، مثلاً من خلال مكتبة ProtoLayout Expressions باستخدام PlatformHealthSources.heartRateBpm وPlatformHealthSources.heartRateAccuracy، منح الإذن android.health.connect.HealthPermissions.READ_HEART_RATE للتطبيق الذي يتم استدعاؤه.

الإصدار 1.4.0-rc01

‫25 فبراير 2026

تم إصدار androidx.wear.protolayout:protolayout-*:1.4.0-rc01 بدون أي تغييرات عن الإصدار السابق. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.

الإصدار 1.4.0-beta01

‫11 فبراير 2026

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0-beta01. يتضمّن الإصدار 1.4.0-beta01 هذه التعديلات.

الميزات الجديدة

يشير الإصدار 1.4.0-beta01 من Wear ProtoLayout إلى أنّ هذا الإصدار من المكتبة يتضمّن جميع الميزات وأنّ واجهة برمجة التطبيقات مقفلة (باستثناء الأجزاء التي تم وضع علامة "تجريبي" عليها). يتضمّن الإصدار 1.4 من Wear ProtoLayout الوظائف وواجهات برمجة التطبيقات الجديدة التالية:

  • موارد الصور المضمّنة وتحسينات الأداء: تم تقديم مفهوم محسّن للتعامل مع الموارد، حيث يمكن تضمين ImageResource مباشرةً في التصميم نفسه.
    • يؤدي ذلك إلى تبسيط عملية التطوير بشكل كبير من خلال إزالة الحاجة إلى ربط الموارد يدويًا في onTileResourcesRequest وتجاوز هذه الطريقة.
    • يؤدي ذلك إلى تحسين وقت تحميل "البطاقات" بشكل كبير من خلال إزالة الحاجة إلى استدعاءات رابطَين، إذ لا يمكن تنفيذ سوى الطريقة onTileResourcesRequest.
    • تتوافق جميع واجهات برمجة التطبيقات Image الآن مع هذا المفهوم من خلال توفير طرق جديدة تقبل ProtoLayoutScope المسؤول عن ذلك.
  • التسجيل التلقائي لنطاق Material3 وموارده: تمت إضافة materialScopeWithResources لدعم مفهوم MaterialScope في Material3 باستخدام "موارد الصور المضمّنة". يتولّى هذا النطاق تسجيل الموارد تلقائيًا ويتضمّن طرقًا مساعِدة جديدة للصور (backgroundImage وavatarImage وicon) لتبسيط استخدام المكوّنات.

    • مقتطف الرمز المبسّط:

      materialScopeWithResources(
      context = context,
      deviceConfiguration = deviceParameters,
          protoLayoutScope = protoLayoutScope) {
        primaryLayout(
        // layout setup here
      iconContent = { **icon**(
      **imageResource**(
      **androidImageResource**(R.drawable.myIcon)))})
      //…
      }
      
  • إتاحة استخدام PendingIntent: أتحنا استخدام PendingIntent في "البلاطات". تقبل العناصر القابلة للنقر PendingIntent إجراءات احتياطية (LoadAction أو LaunchAction). ويضمن ذلك أنّه في حال كان ProtoLayout Renderer إصدارًا قديمًا لا يتوافق مع PendingIntent، سيتم تلقائيًا استخدام إجراء احتياطي صالح.

  • العديد من التحسينات على لغة Kotlin الخاصة بالمجالات المحدّدة:

    • تمت إضافة أدوات مساعدة متخصصة في Kotlin لكل من Image وجميع أنواع ImageResources لتحسين تجربة المطوّرين الذين يستخدمون Kotlin.
    • تمت إضافة أدوات مساعدة لأنواع الحاويات، مثل Box وRow وColumn وما إلى ذلك، للالتزام بشكل أكبر بالنهج الحديث لتطوير البرامج المتوافقة مع Android.
    • تمت إضافة معدِّل Transformation جديد في Kotlin وطُرق مساعدة لتأثير التلاشي.
  • تخصيص صورة متحركة بتنسيق Lottie: تمت إضافة واجهة برمجة تطبيقات في AndroidLottieResourceByResId للسماح بتخصيص صورة متحركة بتنسيق Lottie من خلال الخصائص، كما تمت إضافة دعم وواجهة برمجة تطبيقات ملموسة لإنشاء خاصية لتصميم موضع إعلان استنادًا إلى معرّف موضع الإعلان باستخدام اللون المحدّد.

  • الوعي بوضع Ambient: تمت إضافة مصدر جديد لحدث المنصة، isInAmbientMode، ما يسمح للتنسيقات بالتفاعل وتعديل التعبيرات استنادًا إلى ما إذا كان الجهاز في وضع Ambient.

تغييرات واجهة برمجة التطبيقات

  • Material3 Image Helpers: تم إيقاف أدوات مساعدة الصور الحالية في Material3 نهائيًا واستبدالها بعمليات تحميل زائد جديدة تستخدم ProtoLayoutScope وآلية معالجة الموارد المضمّنة الجديدة.
  • تعديلات على MaterialScope: تم ضبط الحقل protoLayoutScope ضمن MaterialScope على NonNull لتسهيل استخدامه عند إنشائه من خلال materialScopeWithResources. تمت إضافة الدالة hasProtoLayoutScope للتحقّق من توفّرها. يعرض MaterialScope أيضًا الحقل العام Context.
  • يتوفّر عنوان الدلالات كواجهة برمجة تطبيقات في LayoutModifier.
  • إتاحة اتجاه القوس أصبحت الثوابت ARC_DIRECTION_* متاحة الآن للجميع لاستخدامها في العناصر Arc/ArcLine/ArcText/DashedArcLine.

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

  • مقارنة الموارد: تم تحسين الأداء من خلال تنفيذ طريقتَي hash وequals المحسّنتَين لمقارنة أنواع الموارد.
  • تطبيق وصف المحتوى التلقائي على الزر textButton ذي الخانة الواحدة
  • إصلاح العمليات الحسابية لتعديل الحدّ الأقصى لعدد الأسطر في جهة العارض

الإصدار 1.4.0-alpha05

‫28 يناير 2026

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0-alpha05. يتضمّن الإصدار 1.4.0-alpha05 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة أداة تعديل Transformation جديدة في Kotlin. (I195a7، b/397169191)

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

  • لقد حللنا المشكلة من خلال تحسين طريقة معالجة الموارد عن طريق إزالة ProtoLayoutScope التي تحتفظ بحالتها من TileService. (I5dc0a، b/474614772)

الإصدار 1.4.0-alpha04

‫14 يناير 2026

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0-alpha04. يتضمّن الإصدار 1.4.0-alpha04 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • لقد أوقفنا نهائيًا أدوات مساعدة الصور في Material3 لصالح عمليات تحميل زائد جديدة تستخدم ProtoLayoutScope ومفهومًا أفضل للتعامل مع الموارد حيث يمكن تضمين ImageResource مباشرةً في التصميم نفسه، ما يزيل الحاجة إلى طريقة onTileResourcesRequest لعمليات ربط الموارد. للحصول على أفضل تجربة، استخدِمها مع androidx.wear.tiles.Material3TileService المضافة في الإصدار Wear Tiles 1.6-alpha04. (I8198c، b/440376391)

الإصدار ‎1.4.0-alpha03

‫17 ديسمبر 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0-alpha03. يتضمّن الإصدار 1.4.0-alpha03 هذه التعديلات.

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

  • تتم الآن مقارنة نوعَين من الموارد لتحسين معالجة الموارد والأداء باستخدام طريقتَي التجزئة والمساواة المحسّنتَين. (82f21b2f)

الإصدار 1.4.0-alpha02

‫22 أكتوبر 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 هذه التعديلات.

الميزات الجديدة

  • تمّت إضافة مصدر جديد لأحداث المنصّة (isInAmbientMode) يوضّح ما إذا كان الجهاز في وضع الاستراحة أم لا (Ief832)

تغييرات واجهة برمجة التطبيقات

  • يقبل العنصر PendingIntent clickable الآن إجراء احتياطيًا (LoadAction/LaunchAction) لاستخدامه عندما لا يكون العنصر PendingIntent متوافقًا مع أداة العرض ProtoLayout. سيتم تلقائيًا اختيار إجراء احتياطي ووضعه في التصميم عندما يكون إصدار Renderer أقل من الإصدار الذي يتوافق مع PendingIntent. (I6eee2، b/450259727)
  • أصبح الحقل protoLayoutScope ضمن MaterialScope الآن NonNull لتسهيل الاستخدام عند إنشاء MaterialScope من خلال materialScopeWithResources. بالإضافة إلى ذلك، تتوفّر الدالة hasProtoLayoutScope للتحقّق من وجودها. (I1858f، b/450067019)

الإصدار 1.4.0-alpha01

‫24 سبتمبر 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة طريقة مساعدة لـ LayoutModifier تجعل العنصر يظهر تدريجيًا عندما يصبح المربّع مرئيًا. (I38531، b/390345969)
  • تمت إضافة materialScopeWithResources لدعم مفهوم M3 MaterialScope الذي يتولّى أيضًا تسجيل الموارد تلقائيًا. في داخلها، أضفنا طرقًا جديدة للمساعدة في الصور (backgroundImage avatarImage والرمز) التي تزيل الحاجة إلى تسجيل الموارد يدويًا في onTileResourceRequest عند استخدامها. (I525bd، b/428692714)
  • ProtoLayout دوال مساعدة في Kotlin لكلّ من Image وImageResources لاستخدامها مع ProtoLayoutScope وتسجيل الموارد تلقائيًا (Iada82، b/430584304)
  • تمت إضافة دالة getter لمعرفة عدد خصائص Lottie المسموح بها في تخصيص صورة متحركة واحدة بتنسيق Lottie. (I73733، b/436532706)
  • أضِف واجهة برمجة التطبيقات في AndroidLottieResourceByResId للسماح بتخصيص رسوم Lottie المتحركة من خلال السمات، وأضِف واجهة برمجة التطبيقات لإنشاء سمة لفتحة التنسيق مع معرّف الفتحة إلى اللون المحدّد. (I301b3، b/423581481)
  • إضافة واجهات برمجة تطبيقات مقدِّم الخدمة لقبول PendingIntent كإجراء نقر (I01978، b/433802488)
  • أضِف واجهة برمجة تطبيقات جديدة في Image.Builder - setImageResource لضبط عنصر المورد مباشرةً على الصورة في onTileRequest، بدون الحاجة إلى تسجيله في عملية الربط في onTileResourcesRequest. (Ifa69a، b/428693523)
  • تمت إضافة مفهوم ProtoLayoutScope استعدادًا للتعامل بشكل أفضل مع الموارد في "البلاطات". (I132ce، b/428692423)
  • تعرض السمة ProtoLayout Material3 MaterialScope الآن الحقل Context كحقل عام، لاستخدامه في الطرق ضمن النطاق، بدون الحاجة إلى تمريره. (I0e5cc، b/414559956)
  • إتاحة واجهات برمجة التطبيقات الدلالية الخاصة بالعناوين للجميع (I75299، b/413653475)
  • عرض ثوابت ARC_DIRECTION_* بشكل علني لاستخدامها في Arc/ArcLine/ArcText/DashedArcLine (I83959، b/427556439)

تغييرات واجهة برمجة التطبيقات

  • أوقفنا نهائيًا الطريقتَين Image.Builder() وImage.Builder.setResourceId لصالح واجهة برمجة التطبيقات الجديدة للتسجيل التلقائي للموارد، وهي متاحة في واجهتَي برمجة التطبيقات Image.Builder(ProtoLayoutScope) وImage.Builder.setImageResource اللتَين تزيلان الحاجة إلى إلغاء onTileResourcesRequest. (I7bfe6، b/432758526)
  • نقل واجهات برمجة التطبيقات لإنشاء ProtoLayoutScope من الوضع المحظور إلى الوضع العلني ومع ذلك، يجب عدم استخدامها لأنّ النظام يتعامل مع هذه المكالمات. (I1d8e8، b/432758251)

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

  • إضافة تنفيذ لدعم PendingIntent في ProtoTiles (I38167، b/430610429)
  • أضِف طريقة الدفع invalidateLayout. (Ief898)
  • تغيير الحد الأدنى التلقائي لإصدار Android من المستوى 21 لواجهة برمجة التطبيقات إلى المستوى 23 (Ibdfca، b/380448311، b/435705964، b/435705223)
  • يتضمّن ImageResource الآن الطريقتَين hashCode وequals. (I650ee، b/428692423، b/428693523)
  • إضافة رسالة proto جديدة PendingIntentAction وأداة إنشاء الحزمة (Ie2aca، b/427643502)
  • تقليل عدد المرات التي يتم فيها إنشاء مثيل ZoneId (I284d3)
  • طبِّق وصف المحتوى التلقائي على الفتحة الفردية textButton. (I0dc8a، b/415001534)
  • إصلاح العمليات الحسابية لتعديل الحدّ الأقصى لعدد الأسطر في جهة العارض (I933bc، b/414353620)

الإصدار 1.3

الإصدار 1.3.0

‫4 يونيو 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0. يتضمّن الإصدار 1.3.0 هذه التعديلات.

التغييرات المهمة منذ الإصدار 1.2.0

  • يتوفّر تصميم Material 3 على الساعة، مع مكونات وتصميمات محسَّنة للعرض الدائري وتتكيّف بشكل مناسب مع أحجام الشاشات الصغيرة والكبيرة
    • ويشمل ذلك مكتبة protolayout-material3 التي تستخدم لغة Kotlin فقط وتتضمّن المزيد من واجهات برمجة التطبيقات المشابهة لواجهة Compose للمكوّنات والميزات التالية:
    • مظهر بلون تفاعلي مستمد من النظام وخلفية الساعة مع أحدث مظهر Material3 للألوان والأشكال وأسلوب الخط
    • MaterialScope للتعامل مع جميع الإعدادات التلقائية المحدّدة مسبقًا وتسهيل عملية التخصيص
    • iconEdgeButton، textEdgeButton
    • iconButton، textButton، button، imageButton، avatarButton، compactButton
    • titleCard،‏ appCard،‏ graphicDataCard،‏ iconDataCard،‏ textDataCard
    • circularProgressIndicator، segmentedCircularProgressIndicator
    • primaryLayout، buttonGroup
    • تعمل جميع المكوّنات على جميع مستويات حزمة تطوير البرامج (SDK) وإصدار ProtoLayout Renderer، وتوفّر بدائل مناسبة عند الاقتضاء
  • واجهات برمجة تطبيقات أكثر توافقًا مع Kotlin وتشبه Compose لعناصر ProtoLayout الأساسية
    • LayoutModifier مع إمكانية إضافة معظم المعدِّلات كدوال متسلسلة (padding وcontentDescription (بما في ذلك clearSemantics) وbackground وclip وopacity وما إلى ذلك)، ويمكن تحويلها إلى العنصر Modifiers الحالي
    • LayoutColors وLayoutString كنوعَين يتيحان استخدام الحقول والقيود الديناميكية بسهولة أكبر
    • text وfontStyle
    • تحسين دعم الخرائط في StateBuilder، بما في ذلك DynamicDataMap وطُرق المصنع مثل intAppDataKey لتسهيل إنشاء عناصر AppDataKey
  • تتيح صور Lottie المتحركة تضمين خيار ضبط مشغّلات مختلفة لتحديد وقت بدء الصورة المتحركة، مثلاً عند تحميل التنسيق أو عند ظهوره
    • تحسين دعم التدرّج اللوني:
    • واجهة برمجة تطبيقات التدرّج الخطي كجزء من Brush يمكن استخدامها في معدِّلات Background للعناصر، مثل Box وSpacer وما إلى ذلك …
    • السماح بقيم الألوان الديناميكية في ColorStop المستخدَمة للتدرّج الخطي والمائل
    • يتوافق التدرّج اللوني الحالي في عناصر القوس الآن مع الألوان الديناميكية وزاويتَي البدء والانتهاء
  • ربط بيانات النظام الأساسي في protolayout-expression لتلقّي المعلومات في أي وقت يتم فيه تغيير مستوى ظهور التنسيق، ويمكن استخدام ذلك مثلاً لإخفاء أجزاء معيّنة من التنسيق أثناء التمرير سريعًا إلى المربّع
  • تمت إضافة مكتبة الاختبار protolayout-testing لتوفير تغطية أسهل لاختبارات الوحدات لأي عناصر ProtoLayout
  • عنصر جديد DashedArcLine يتضمّن مجموعة محسّنة من الميزات حتى يتمكّن الخط من تضمين شرطات، على عكس العنصر الحالي ArcLine
  • إتاحة إمكانية ضبط طول ArcSpacer بوحدة DP بدلاً من الدرجات
  • تمت إضافة محور FontSetting الخاص بالاستدارة والذي ينطبق على بعض الخطوط

الإصدار 1.3.0-rc01

‫20 مايو 2025

تم إصدار androidx.wear.protolayout:protolayout-*:1.3.0-rc01 بدون أي تغييرات عن الإصدار السابق. يتضمّن الإصدار 1.3.0-rc01 هذه التعديلات.

الإصدار 1.3.0-beta02

‫7 مايو 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-beta02. يتضمّن الإصدار 1.3.0-beta02 هذه التعديلات.

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

  • أجرينا تحسينًا مهمًا على قيم تصميم أسلوب الخط التي يتم تطبيقها على المستوى 36 لواجهة برمجة التطبيقات والإصدارات الأحدث. ويرجع ذلك إلى أنّه بدءًا من المستوى 36 لواجهة برمجة التطبيقات، ستكون جميع المربّعات بنوع خط النظام، لذا يُحسِّن هذا التغيير التناسق في لوحة عرض المربّعات الدوّارة. (If316f)
  • لن يتم عرض أخطاء في أدوات إنشاء Text وSpacer وArcLine وDashedArcLine إذا لم يتم ضبط layoutConstraints للقيم الديناميكية. يُرجى العِلم أنّ أدوات العرض القديمة لا تزال تتطلّب ضبط layoutConstraints، وسيتم تجاهل أي قيمة ديناميكية لم يتم ضبطها. (Ic52e8)
  • أضِف معدِّل دلالات العنوان للإشارة إلى أنّ عنصر التنسيق هو عنوان لقسم من المحتوى لأغراض تسهيل الاستخدام، وحدِّد النص في خانة العنوان primaryLayout ليكون عنوان تسهيل الاستخدام تلقائيًا. (Iae1fb)
  • إجراء تحسينات نهائية على تجربة المستخدم في primaryLayout حيث تم تقليل المسافة بين موضع العنوان والموضع الرئيسي إلى 4 وحدات بكسل مستقلة عن الكثافة بدلاً من 6 وحدات بكسل مستقلة عن الكثافة على الشاشات الأصغر (I0e056)
  • تطبيق وصف المحتوى التلقائي على textEdgeButton (Ifaf8b)
  • تعديل بسيط على المساحة الداخلية لـ "avatarButton" (I0910b)

الإصدار 1.3.0-beta01

‫9 أبريل 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-beta01. يتضمّن الإصدار 1.3.0-beta01 هذه التعديلات.

الميزات الجديدة

يشير الإصدار 1.3.0-beta01 من Wear ProtoLayout إلى أنّ هذا الإصدار من المكتبة يتضمّن جميع الميزات وأنّ واجهة برمجة التطبيقات مقفلة (باستثناء الأجزاء التي تم تصنيفها على أنّها تجريبية). يتضمّن الإصدار 1.3 من Wear ProtoLayout الوظائف وواجهات برمجة التطبيقات الجديدة التالية:

  • يتوفّر تصميم Material 3 على الساعة، مع مكونات وتصميمات محسَّنة للعرض الدائري وتتكيّف بشكل مناسب مع أحجام الشاشات الصغيرة والكبيرة
    • ويشمل ذلك مكتبة protolayout-material3 التي تستخدم لغة Kotlin فقط وتتضمّن المزيد من واجهات برمجة التطبيقات المشابهة لواجهة Compose للمكوّنات والميزات التالية:
    • مظهر بلون تفاعلي مستمد من النظام وخلفية الساعة مع أحدث مظهر Material3 للألوان والأشكال وأسلوب الخط
    • MaterialScope للتعامل مع جميع الإعدادات التلقائية المحدّدة مسبقًا وتسهيل عملية التخصيص
    • iconEdgeButton، textEdgeButton
    • iconButton، textButton، button، imageButton، avatarButton، compactButton
    • titleCard،‏ appCard،‏ graphicDataCard،‏ iconDataCard،‏ textDataCard
    • circularProgressIndicator، segmentedCircularProgressIndicator
    • primaryLayout، buttonGroup
    • تعمل جميع المكوّنات على أي مستويات لحزمة تطوير البرامج (SDK) وإصدارات أداة العرض ProtoLayout، وتوفّر بدائل مناسبة عند الاقتضاء.
  • واجهات برمجة تطبيقات أكثر توافقًا مع Kotlin وتشبه Compose لعناصر ProtoLayout الأساسية
    • LayoutModifier مع إمكانية إضافة معظم المعدِّلات كدوال متسلسلة (padding وcontentDescription (بما في ذلك clearSemantics) وbackground وclip وopacity وما إلى ذلك)، ويمكن تحويلها إلى العنصر Modifiers الحالي
    • LayoutColors وLayoutString كنوعَين يتيحان استخدام الحقول والقيود الديناميكية بسهولة أكبر
    • text وfontStyle
    • تحسين دعم الخرائط في StateBuilder، بما في ذلك DynamicDataMap وطُرق المصنع مثل intAppDataKey لتسهيل إنشاء عناصر AppDataKey
  • تتيح صور Lottie المتحركة تضمين خيار ضبط مشغّلات مختلفة لتحديد وقت بدء الصورة المتحركة، مثلاً عند تحميل التنسيق أو عند ظهوره
    • تحسين دعم التدرّج اللوني:
    • واجهة برمجة تطبيقات التدرّج الخطي كجزء من Brush يمكن استخدامها في معدِّلات Background للعناصر، مثل Box وSpacer وما إلى ذلك …
    • السماح بقيم الألوان الديناميكية في ColorStop المستخدَمة للتدرّج الخطي والمائل
    • يتوافق التدرّج اللوني الحالي في عناصر القوس الآن مع الألوان الديناميكية وزاويتَي البدء والانتهاء
  • ربط بيانات النظام الأساسي في protolayout-expression لتلقّي المعلومات في أي وقت يتم فيه تغيير مستوى ظهور التنسيق، ويمكن استخدام ذلك مثلاً لإخفاء أجزاء معيّنة من التنسيق أثناء التمرير سريعًا إلى المربّع
  • تمت إضافة مكتبة الاختبار protolayout-testing لتوفير تغطية أسهل لاختبارات الوحدات لأي عناصر ProtoLayout
  • عنصر جديد DashedArcLine يتضمّن مجموعة محسّنة من الميزات حتى يتمكّن الخط من تضمين شرطات، على عكس العنصر الحالي ArcLine
  • إتاحة إمكانية ضبط طول ArcSpacer بوحدة DP بدلاً من الدرجات
  • تمت إضافة محور FontSetting الخاص بالاستدارة والذي ينطبق على بعض الخطوط

الإصدار 1.3.0-alpha10

‫12 مارس 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha10. يتضمّن الإصدار 1.3.0-alpha10 هذه التعديلات.

الميزات الجديدة

  • إضافة أداة مساعدة لـ Brush في أداة تعديل الخلفية بلغة Kotlin (I995de)
  • تمت إتاحة حقل "سياق Android" الإلزامي للجميع في MaterialScope للسماح بسهولة استخدامه في وظائف المطوّرين التي تنشئ مكونات لمربّعات Material3. (I7df73)

تغييرات واجهة برمجة التطبيقات

  • أعِد تسمية واجهة برمجة التطبيقات platformVisibilityStatus إلى PlatformEventSources.isLayoutVisible وأضِف واجهة برمجة تطبيقات تجريبية جديدة PlatformEventSources.isLayoutUpdatePending. (Ie1e04)

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

  • تم الآن تقريب هوامش primaryLayout بشكل صحيح بدلاً من ذلك، ما قد يؤثر في بعض التصاميم بمقدار مساحة أقل تصل إلى 2dp للفتحة الرئيسية. (I8f5d3)
  • توضيح بشأن مظهر الألوان الديناميكية التلقائي في ProtoLayout من مكونات Material3 (Iff5f3)
  • لم تعُد أنماط الخطوط Typography.NUMERAL_* جدولية/أحادية المسافة بشكل تلقائي. إذا كان النص متحركًا، ننصح بشدة بإضافة إعداد FontSetting.tabularNum() إليه. في جميع الحالات الأخرى، لا حاجة إلى خيار الخط الأحادي العرض، وستتوفّر المزيد من الأحرف عند عدم استخدامه. (Id3cd9)
  • توضيح بشأن مظهر الألوان الديناميكية التلقائي في ProtoLayout من مكونات Material3 (I9d831)

الإصدار 1.3.0-alpha09

‫26 فبراير 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha09. يتضمّن الإصدار 1.3.0-alpha09 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة معدّلات تجريبية للسمتَين enterTransition وexitTransition (I4a4d6)
  • أضفنا ربطًا إضافيًا بالمنصة لتلقّي حالة ظهور التصميم الكامل عند تغييره. (I250c3)
  • السماح بإدخال بيانات حالة التطبيق التجريبي والمنصة في LayoutElementAssertionsProvider لتقييم القيم الديناميكية (Ib5fcb)
  • إضافة فلاتر الزوايا إلى مكتبة اختبار protolayout (Ie2361)
  • تتيح الآن ButtonColors وCardColors وProgressIndicatorColors طريقة النسخ، مع إمكانية إلغاء بعض المَعلمات اختياريًا. (Ie2054)

تغييرات واجهة برمجة التطبيقات

  • إضافة إمكانية ربط البيانات الديناميكية إلى مكتبة الاختبار (Ib98de)
  • إصلاح imageButton عند استخدامه مع الدالة backgroundImage من خلال إزالة التراكب بالإضافة إلى ذلك، يجب السماح باستخدام الدالة backgroundImage لتحديد قيمة فارغة للون التراكب، ما يعني أنّه لن يتم تطبيق التراكب. (Ibec3c)

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

  • تم تغيير طريقة hasValueOfType التلقائية لعرض UnsupportedOperationException بدلاً من IllegalArgumentException. (Ia36c3)
  • تم تعديل قيم الرموز المميّزة للألوان التلقائية لتعكس أحدث المواصفات. (I75d44)
  • إصلاح مشكلة التمويه المرئي على خطوط القوس في أداة عرض المربّعات في AndroidX (I88190)

الإصدار 1.3.0-alpha08

‫12 فبراير 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha08. يتضمّن الإصدار 1.3.0-alpha08 هذه التعديلات.

الميزات الجديدة

  • إضافة مَعلمة القائمة FontSetting لنص Material3 (Ic102d)
  • تمت إضافة الفئة DynamicDataMap التي تتوافق الآن مع StateBuilder لتوفير واجهة برمجة تطبيقات Kotlin أكثر أمانًا من حيث الأنواع لحالات التطبيق (I012ba)
  • تمت إضافة طرق المصنع، مثل intAppDataKey، لتسهيل إنشاء عناصر AppDataKey (Icea2a)
  • يتضمّن DynamicDataValue الآن طريقة hasValueOfType(Class<?>) بالإضافة إلى طرق hasInt/hasColor/.... (I4f7a6)
  • أضفنا errorDim إلى Material3 ProtoLayout ColorScheme، وذلك للأخطاء ذات الأولوية العالية أو إجراءات الطوارئ، مثل تنبيهات الأمان. (Ia17bb)
  • أضفنا إجراء وقائيًا ضدّ حدوث عُطل عند الوصول إلى إعداد تقليل الحركة العام، والذي تم تفعيله على بعض المنصات التي لم يتم توفير هذا الإعداد فيها. (I01e2c)

تغييرات واجهة برمجة التطبيقات

  • تمت إعادة تسمية addKeyToValueMapping إلى addToStateMap، وتمت إزالة الطريقتين DynamicDataMap.put لأنهما كانتا مكرّرتَين. (Ibe9dd)
  • تتيح Material3 Typography الآن محور المتغيّر الخاص بالاستدارة لخطوط النظام التي تتوافق مع هذا المحور. يتيح ProtoLayout FontSetting استخدام محور الاستدارة للخطوط التي تتيح هذا المحور. (I33eb5)
  • تمت إعادة تسمية multilineAlignment إلى "المحاذاة" في طريقة النص Material3. (I2b66b)
  • تعديل مؤشر التقدم الدائري ليكون من النوع "مربّع"، وتحديد mainContent في constructGraphic ليكون من النوع "مربّع" (I5a3dc)
  • تحسين إمكانية استخدام مؤشر التقدّم الدائري في الرسم البياني (I039db)

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

  • السماح بالقيم الديناميكية في ColorStop وأيضًا لزوايا البدء/الانتهاء في SweepGradient (I0146d)
  • إصلاحات في "مستندات Google" (I4a63a)
  • تم تعديل مكوّنات Material 3 (graphicCard وavatarButton) لتوفير خيار احتياطي عندما لا تكون سمة weight expand dimension متاحة (مثل الإصدارات الأقدم من المستوى 33 لواجهة برمجة التطبيقات). تم تعديل مكوّن النص للرجوع إلى TEXT_OVERFLOW_ELLIPSIZE_END عندما لا يكون TEXT_OVERFLOW_ELLIPSIZE متوافقًا مع أداة العرض. (I19e2c)
  • تحديث "مستندات Google" في ‎PrimaryLayoutMargins (Ibaf7b)

الإصدار 1.3.0-alpha07

‫29 يناير 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha07. يتضمّن الإصدار 1.3.0-alpha07 هذه التعديلات.

الميزات الجديدة

  • تمّت إضافة خيار واجهة برمجة التطبيقات لضبط مشغّلات مختلفة للصور المتحرّكة بتنسيق Lottie. بالإضافة إلى ذلك، تمت إضافة واجهة برمجة تطبيقات للمشغّلات التي يتم تنشيطها عندما يكون التنسيق مرئيًا (I8272d)
  • تمت إضافة المعدّلات border وvisibility وopacity. (I6d3dd)
  • تمت إضافة زر الصورة الرمزية إلى مكوّن Material3 في ProtoLayout. (Idb5ae)
  • نسمح الآن بتخصيص الهوامش (الجانبية وفي بعض الحالات السفلية) في Material3 primaryLayout. (Ib22f6)
  • أضِف الشكل المتغيّر المقسَّم لمؤشر التقدّم الدائري. (I6a648)
  • تمت إضافة مكوّن الزر الصغير إلى Material3 في ProtoLayout. (Ia3c5c)
  • تمت إضافة مكوّنَي زر على شكل حبّة دواء وزر مصوّر إلى Material3 في ProtoLayout. (Ifb88a)

تغييرات واجهة برمجة التطبيقات

  • يُطلق على LayoutModfier.foldIn الآن اسم foldRight ليعكس بشكل أفضل السلوك المتوقّع (Idf242)
  • أصبح مشغّل VisibleOnce تجريبيًا الآن. (Ib2d26)
  • إزالة withOpacity من واجهة برمجة التطبيقات العامة لأنّه يتوفّر بديل لمكتبة الرسومات. (I030c2)
  • تمت إعادة تسمية طرق المستوى الأعلى في LayoutString.kt وLayoutColor.kt لتصبح أسماء متوافقة مع Java. (I7aff0)
  • تمت إزالة التصاميم الطباعية غير المتوافقة مع ProtoLayout في Material3. (Idd9ae)
  • أضِف اللاحقة Color إلى الحقول في فئات *Colors في Material3. (I2d114)

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

  • أضِف EdgeButton عملية تنفيذ احتياطية لبرنامج العرض القديم الذي لا يتوافق مع الزوايا غير المتماثلة. (I63364)
  • إضافة تنفيذ احتياطي لمؤشر التقدّم الدائري باستخدام أداة العرض القديمة (I0f134)

الإصدار 1.3.0-alpha06

‫15 يناير 2025

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha06. يتضمّن الإصدار 1.3.0-alpha06 هذه التعديلات.

الميزات الجديدة

  • LayoutColor لدعم كل من أنواع الألوان الثابتة والديناميكية (I4c89b)
  • تمت إضافة المكوّن ProtoLayout Material3 textButton. (Id680d)
  • أضِف مكوّن iconButton ProtoLayout Material3. (Ica3f0)
  • تمت إضافة مكوّن حاوية أزرار Material3 في ProtoLayout. (I17a38)
  • إضافة دعم للمعدّلات الدلالية القابلة للتسلسل إلى protolayout-material3 (I4af62)
  • تمت إضافة شريحة واحدة من ProtoLayout Material3‏ CircularProgressIndicator (I2c8a2)
  • تمت إضافة المعدِّلَين padding وmetadata (I8720a)
  • تمت إضافة المعدّلات background وclip وclickable (I35478)
  • أضِف LinearGradient إلى "الفرشاة" واسمح باستخدامه في "أداة تعديل الخلفية". (Ic4dea)
  • إضافة حجم صغير لبطاقة التطبيق وtitleCard (I91f98)
  • تمت إضافة مكوّن ProtoLayout Material3 graphicDataCard. (I92be7)
  • تمت إضافة مكوّنَي ProtoLayout Material3 iconDataCard وtextDataCard. (I4e1e4)
  • تمت إضافة مكوّن ProtoLayout Material3 appCard. (Id4c57)
  • تجريد EdgeButtonColors إلى ButtonColors (I83624)
  • تمت إضافة مكوّن ProtoLayout Material3 titleCard. (I2dc72)

تغييرات واجهة برمجة التطبيقات

  • تقبل واجهة ProtoLayout Material3 API الآن القيمة LayoutString لتوفير النصوص الثابتة والديناميكية. (I9c24a)

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

  • إضافة عملية تنفيذ أداة العرض لتضخيم DashedArcLine (I0c700)
  • تغيير أداة العرض للسماح ArcSpacer بأخذ طول وحدة البكسل المستقلة عن الكثافة (I1437b)

الإصدار 1.3.0-alpha05

‫11 ديسمبر 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha05. يتضمّن الإصدار 1.3.0-alpha05 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة LayoutString لدعم حقول السلاسل في التنسيقات القابلة للربط. (Ida650)
  • تمت إضافة مكوّن حاوية بطاقة ProtoLayout Material3. (Ic985a)

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

  • تستخدم هذه المكتبة الآن تعليقات توضيحية بشأن القيم الخالية من JSpecify، وهي تعليقات توضيحية خاصة باستخدام النوع. على مطوّري Kotlin استخدام وسيطة المترجم البرمجي التالية لفرض الاستخدام الصحيح: -Xjspecify-annotations=strict (هذه هي القيمة التلقائية بدءًا من الإصدار 2.1.0 من مترجم Kotlin البرمجي). (Id1f9b، b/326456246)

الإصدار 1.3.0-alpha04

‫13 نوفمبر 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha04. يتضمّن الإصدار 1.3.0-alpha04 هذه التعديلات

الميزات الجديدة

  • تم تعديل شكل Material3 ليكون فئة تتضمّن حقولاً تحتوي على قيمة Corner الفعلية، كما هو الحال في Wear Compose. (Ied8cd)
  • تم تعديل ألوان Material3 لتضمين المفهوم ColorScheme، كما هو الحال في Wear Compose. (If645e)
  • إضافة أدوات مطابقة متعددة شائعة الاستخدام إلى مكتبة الاختبار (Ie5cec)

الإصدار ‎1.3.0-alpha03

‫30 أكتوبر 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha03. يتضمّن الإصدار 1.3.0-alpha03 هذه التعديلات

الميزات الجديدة

  • إضافة LayoutElementAssertionsProvider وLayoutElementAssertion وLayoutElementMatcher إلى مكتبة الاختبار (Id1110)

الإصدار 1.3.0-alpha02

‫16 أكتوبر 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha02. يتضمّن الإصدار 1.3.0-alpha02 هذه التعديلات.

الميزات الجديدة

  • الإصدار الأوّلي من مكتبة Material 3 يتضمّن مكوّنات text وedgeButton وbuttonGroup وprimaryLayout.

إصلاحات الأمان

  • اعتبارًا من هذا التغيير، يتم تجميع androidx مع الإصدار 4.28.2 من protobuf من أجل معالجة CVE-2024-7254. عليك ترقية الإصدار 1.3.0-alpha01 من androidx.wear.protolayout:protolayout-proto وandroidx.wear.protolayout:protolayout-external-protobuf إلى الإصدار 1.3.0-alpha02 لمعالجة مخاطر الثغرة الأمنية.

المساهمة الخارجية

الإصدار 1.3.0-alpha01

‫2 أكتوبر 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.3.0-alpha01. يتضمّن الإصدار 1.3.0-alpha01 هذه التعديلات.

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

  • تم توضيح أنّ توفّر أسماء مجموعة خطوط Roboto وRoboto Flex يعتمد على الجهاز. (I193be)
  • تم تفعيل مجموعة خطوط Roboto Flex في أداة عرض "البلاطات" في AndroidX. (I08e94)

الإصدار 1.2

الإصدار 1.2.1

‫16 أكتوبر 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.1. يتضمّن الإصدار 1.2.1 هذه التعديلات.

إصلاحات الأمان

  • اعتبارًا من هذا التغيير، يتم تجميع androidx مع الإصدار 4.28.2 من protobuf من أجل معالجة CVE-2024-7254. عليك ترقية الاعتماد على الإصدار 1.2.0 من androidx.wear.protolayout:protolayout-proto وandroidx.wear.protolayout:protolayout-external-protobuf إلى الإصدار 1.2.1 لمعالجة مخاطر الثغرة الأمنية.

الإصدار 1.2.0

‫7 أغسطس 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0. يتضمّن الإصدار 1.2.0 هذه التعديلات.

التغييرات المهمة منذ الإصدار 1.1.0

  • تم تعديل FontStyle لتوفير دعم إضافي للخطوط في المحاور المتغيرة وواجهة برمجة تطبيقات أفضل لاختيار الخطوط من أجل توفير دعم لخطوط Flex القادمة.
  • إتاحة استخدام المعدِّلات الإضافية:
    • أداة تعديل التحويل التي توفّر الترجمة والتدوير والتوسيع أو التصغير مع الرسوم المتحركة أو بدونها
    • تحديد قيم مختلفة (أفقية وعمودية) لكل نصف قطر من الزوايا
  • تحسين إمكانية الوصول إلى جميع مساحات اللمس من خلال توسيع المساحة القابلة للنقر لأي عنصر يستخدم معدِّل Clickable لتصبح 48dp × 48dp على الأقل
  • تم تحسين PrimaryLayout وEdgeContentLayout من خلال إضافة setResponsiveContentInsetEnabled لتحسين دعم السلوك المتجاوب لهذه التصاميم على أحجام الشاشات المختلفة وتحسين اتساق مربّعات Tiles.
  • تحسين إمكانية تغيير حجم نص Material أو عدم تغيير حجمه ليتوافق مع ميزة الضبط غير الخطي لحجم الخط في Android 14
  • تحسين التوافق مع اتجاه التنسيق من اليمين إلى اليسار في جميع عناصر arc

تغييرات إضافية

  • للاطّلاع على مجموعة أكثر اكتمالاً من التغييرات التي تم تقديمها في الإصدار 1.1.0، يُرجى الرجوع إلى ملاحظات الإصدار beta01.

الإصدار 1.2.0-rc01

‫24 يوليو 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0-rc01. يتضمّن الإصدار 1.2.0-rc01 هذه التعديلات.

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

  • لقد أصلحنا Material Chip العادي حتى يمكن استخدامه كرمز فقط في حال عدم تمرير أي من التصنيف الأساسي أو الثانوي. (Iceef9)
  • تم تعديل مستندات تخطيطات Material لتضمين عناصر مرئية من الصفحة ذات الصلة لتسهيل فهم التخطيطات. (I0256a)

الإصدار 1.2.0-beta01

‫10 يوليو 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0-beta01. يتضمّن الإصدار 1.2.0-beta01 هذه التعديلات.

الميزات الجديدة

يشير الإصدار 1.2.0-beta01 من Wear ProtoLayout إلى أنّ هذا الإصدار من المكتبة يتضمّن جميع الميزات وأنّ واجهة برمجة التطبيقات مقفلة (باستثناء الأجزاء التي تم تصنيفها على أنّها تجريبية). يتضمّن الإصدار 1.2 من Wear ProtoLayout الوظائف وواجهات برمجة التطبيقات الجديدة التالية:

  • تم تعديل FontStyle لتوفير دعم إضافي للخطوط على النحو التالي:
    • ضبط إعدادات مختلفة لخيارات الخط، مثل FontSetting.weight وFontSetting.width
    • ضبط العرض نفسه لجميع الأحرف الرقمية - الأرقام الجدولية (إعداد ميزة الخط FontSetting.tnum)
    • تم تحسين واجهات برمجة التطبيقات لاختيار الخطوط من أجل توفير خطوط مرنة قادمة من خلال تحديد أسماء مجموعات الخطوط المفضّلة التي سيتم استخدامها.
  • تمّت إضافة معدِّل Corner الموسّع للسماح بتحديد كلّ CornerRadius بقيمتَين أفقية وعمودية منفصلتَين من أجل السماح بإنشاء عناصر ذات زوايا غير متماثلة.
  • تمت إضافة أداة تعديل Transformation جديدة تتيح ترجمة LayoutElement وتدويرها وتغيير حجمها. يمكن تحريك هذه عمليات التحويل باستخدام قيم ديناميكية.
  • تمت إضافة setArcDirection مع الخيارات Clockwise وCounterClockwise وNormal إلى جميع عناصر القوس (Arc وArcLine وArcText) لتحسين التوافق مع اتجاهات التنسيق المختلفة (مثل من اليسار إلى اليمين ومن اليمين إلى اليسار).
  • تحسين إمكانية الوصول إلى جميع مساحات اللمس من خلال توسيع مساحة النقر لأي عنصر يستخدم المعدِّل Clickable لتصبح 48dp × 48dp على الأقل
  • تم تحسين PrimaryLayout وEdgeContentLayout من خلال إضافة setResponsiveContentInsetEnabled لتحسين دعم السلوك المتجاوب لهذه التصاميم على أحجام الشاشات المختلفة وتحسين اتساق مربّعات Tiles. تمت إضافة تحذير من أداة التدقيق اللغوي لاقتراح استخدام واجهات برمجة التطبيقات هذه مع حلّ سريع.
  • تحسين عملية تغيير حجم Text Material أو عدم تغيير حجمه بما يتوافق مع الضبط غير الخطي لحجم الخط في Android 14

تغييرات واجهة برمجة التطبيقات

  • تتم إزالة اسم مجموعة الخطوط التلقائية (DEFAULT_SYSTEM_FONT) لأنّ عدم استخدام واجهة برمجة التطبيقات preferredFontFamilies يعني أنّ الخط تلقائي. (I39dab)
  • يجب أن تكون المَعلمة التي تم تمريرها إلى FontSetting.width موجبة. (I1266f)

الإصدار ‎1.2.0-alpha05

‫26 يونيو 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0-alpha05. يتضمّن الإصدار 1.2.0-alpha05 هذه التعديلات.

الميزات الجديدة

  • أضِف طريقة hasText إلى Material.CompactChip للتحقّق مما إذا تم ضبط المحتوى النصي. (I6e8fc)

تغييرات واجهة برمجة التطبيقات

  • يتم نقل الثوابت FontFamily لتصبح في FontStyle بدلاً من فئة Builder. (I06ced)
  • تعديل واجهتَي برمجة التطبيقات FontSetting.weight وFontSetting.width لتضمين تعليقات توضيحية حول النطاق وتغيير مَعلمة الوزن لتصبح عددًا صحيحًا (Ia726c)

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

  • تعمل النصوص غير القابلة للتوسيع في مكتبة Material الآن بشكل صحيح مع ميزة الضبط غير الخطّي لحجم الخط في Android 14. (I6601e)

الإصدار ‎1.2.0-alpha04

‫29 مايو 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0-alpha04. يتضمّن الإصدار 1.2.0-alpha04 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهة برمجة تطبيقات للزوايا غير المتماثلة لتتمكّن من تحديد نصف قطر كل زاوية بشكل منفصل باستخدام قيمتَين. (Icbd69)
  • تم توسيع نطاق واجهة برمجة التطبيقات FontSetting لتشمل ما يلي:
    • إعداد ميزة الخط، مثل ضبط الخط ليكون جدوليًا (If12b7)
    • إعدادات تنويعات الخطوط، مثل ضبط عرض مخصّص للخطوط المتغيرة (I2b36d)
  • تمت إضافة واجهة برمجة تطبيقات لمجموعة الخطوط إلى FontStyle للسماح بتحديد قائمة مرتبة بمجموعات الخطوط التي يجب استخدامها. (Iba9f5)
  • تمت إعادة تسمية الثوابت الخاصة بارتفاع المساحة بين المحتوى والتصنيف الثانوي في LayoutDefaults Material التي كانت تبدأ في الأصل بالبادئة "محتوى الحافة" لتصبح أكثر عمومية لأنّه يمكن تطبيقها على كل من PrimaryLayout وEdgeContentLayout. (I4dc32)

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

  • تمت إعادة تسمية تسمية محاور الخطوط المتغيرة من axisName إلى axisTag. (I02ba3)

الإصدار ‎1.2.0-alpha03

‫14 مايو 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0-alpha03. يتضمّن الإصدار 1.2.0-alpha03 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة واجهة برمجة تطبيقات لضبط قيم الأوزان المخصّصة لـ FontStyle. (I7390a)

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

  • إصلاح الخطأ في getTouchDelegateInfo بسبب خريطة الوجهة الفارغة (I2accf)

الإصدار 1.2.0-alpha02

‫1 مايو 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0-alpha02. يتضمّن الإصدار 1.2.0-alpha02 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • أضفنا إمكانية إيقاف ملاحظات التفاعل المرئي على العناصر الفردية القابلة للنقر. (If1ede)
  • تمت إزالة واجهة برمجة التطبيقات الخاصة بالتحويل من ArcModifiers لأنّها لا تتيح هذه الميزة (Ic0827)
  • يتوقّع ArcDirectionProp Builder الآن قيمة في الدالة الإنشائية. (I76ada)
  • ستتيح طريقة PlatformDataValues.Builder.putAll دمج PlatformDataValue في PlatformDataValue آخر. (I50ba3)
  • تمت إعادة تسمية Text#setIsScalable إلى Text#setScalable. (If920e)
  • يمكن أن يحدّد Material Text ما إذا كان سيتم استخدام حجم قابل للتوسيع (يزداد عند تغيير حجم خط المستخدم) أم لا. (Ibc849)
  • أضفنا خيار ضبط وصف المحتوى على TitleChip. (I5d21f)
  • تم إصلاح CompactChip لتعمل بشكل صحيح مع الرمز فقط وتعديل واجهة برمجة التطبيقات للسماح بهذا الخيار. (I6589e)

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

  • تم إصلاح مشكلة تكرار بيانات المنصة المحتمل أثناء عملية الإعداد. (Iba0fd)
  • إضافة دالة جلب جديدة إلى DynamicDataNode لاسترداد تكلفة العُقدة يتم استخدام التكلفة عند الحصول على حصة العُقد الديناميكية. في الوقت الحالي، ستكون تكلفة العُقد ذات القيم الثابتة 0، وستكون تكلفة جميع العُقد الأخرى 1. (Ia33e1)
  • إزالة منطق الاحتساب من NO_OP_QUOTA_MANAGER (Ib50b8)
  • لقد أضفنا قاعدة lint لعرض تحذير عند استخدام PrimaryLayout بدون setResponsiveContentInsetEnabled وتقديم حلّ سريع. (I12025)
  • هناك حدّ لعدد عُقد التعبير الديناميكي. (Iffae8)

الإصدار 1.2.0-alpha01

‫6 آذار (مارس) 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.2.0-alpha01. يتضمّن الإصدار 1.2.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • تتضمّن عناصر ProtoLayout Arc الآن خيار إضافة ArcDirection (Clockwise أو Counterclockwise أو Normal) إليها. ستؤدي إضافة هذا السلوك إلى Arc أو ArcLine أو ArcText إلى إصلاح سلوكها في التصاميم من اليمين إلى اليسار. (I90699)
  • تم تعديل EdgeContentLayout باستخدام أداة ضبط setResponsiveContentInsetEnabled جديدة لتحقيق توافق أفضل مع إرشادات تجربة المستخدم، والاتساق في "البطاقات" من خلال وضع التصنيف الأساسي في المكان الثابت في الأعلى وإضافة مساحة داخلية متجاوبة للتصنيفات. (I60175)
  • أضفنا PrimaryLayout.setResponsiveContentInsetEnabled التي تضيف إطارًا متجاوبًا إلى التصنيف الأساسي والتصنيف الثانوي والشريحة السفلية في هذا التصميم، وذلك لتجنُّب خروج المحتوى عن حافة الشاشة. (I0c457)
  • تضيف هذه السمة طريقة لإزالة الهوامش الخارجية من CircularProgressIndicator حتى يمكن استخدامها كمكوّن أصغر. (I55c06)

تغييرات واجهة برمجة التطبيقات

  • يستبعد برنامج عرض المربّعات الآن مساحة الحشو في الخط على جميع عناصر النص تلقائيًا، بدون خيار لتضمينها. (I3e300)

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

  • تم إصلاح مشكلة محاذاة النص عند استخدام كلّ من "الاقتطاع" و"المسافة بين الأحرف" و"المحاذاة إلى الوسط" في "النص". (I716c7)
  • تمت إضافة حلّ بديل لمشكلة رسم قوس skia. (I08f09)
  • إصلاح اتجاه رسم ArcLine للتنسيقات من اليمين إلى اليسار (I6c141)

الإصدار 1.1

الإصدار 1.1.0

‫7 فبراير 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.1.0. يتضمّن الإصدار 1.1.0 هذه التعديلات.

التغييرات المهمة منذ الإصدار 1.0.0

  • إتاحة التدرّج اللوني وتمثيل أفضل للأطوال الأكبر من 360 درجة في ArcLine
  • يتيح تنسيق التاريخ والوقت مناطق زمنية مختلفة لأنواع البيانات الديناميكية.
  • خيارات أفضل لتحديد الحجم التلقائي للنص واقتطاعه، وذلك للتعامل مع النص المقتطع
  • يتيح العنصر النائب استخدام أبعاد موسّعة مع وزن اختياري.
  • إضافة تعليق توضيحي لمتطلبات إصدار المخطط إلى جميع واجهات برمجة التطبيقات ProtoLayout
  • تم توسيع مساحة النقر المستهدَفة لتشمل أي عنصر Clickable إلى 48 وحدة بكسل مستقلة عن الكثافة × 48 وحدة بكسل مستقلة عن الكثافة، وذلك لاستيفاء متطلبات إمكانية الوصول.
  • يتم إيقاف مساحة العرض الإضافية للخط تلقائيًا، وهي السلوك الوحيد في جميع عناصر "النص" ومكوّنات Material التي تحتوي على نص.

تغييرات إضافية

  • للاطّلاع على مجموعة أكثر اكتمالاً من التغييرات التي تم تقديمها في الإصدار 1.1.0، يُرجى الرجوع إلى ملاحظات الإصدار beta01.

الإصدار 1.1.0-rc01

‫24 يناير 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.1.0-rc01. يتضمّن الإصدار 1.1.0-rc01 هذه التعديلات.

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

  • يتم وضع علامة صح على PlatformTimeUpdateNotifierImpl فور تفعيل التحديث. (I77145)
  • تم إصلاح مشكلة CircularProgressIndicator في تنسيقات العرض من اليمين إلى اليسار. من الآن فصاعدًا، سيتم تدويرها في اتجاه عقارب الساعة في جميع الحالات. (I95ee3)
  • تمت إضافة حلّ بديل لمشكلة رسم قوس skia. (I08f09)

الإصدار 1.1.0-beta01

‫10 يناير 2024

تم طرح androidx.wear.protolayout:protolayout-*:1.1.0-beta01. يتضمّن الإصدار 1.1.0-beta01 هذه التعديلات.

الميزات الجديدة

يشير الإصدار 1.1.0-beta01 من Wear ProtoLayout إلى أنّ هذا الإصدار من المكتبة يتضمّن جميع الميزات وأنّ واجهة برمجة التطبيقات مقفلة (باستثناء الأجزاء التي تم وضع علامة "تجريبي" عليها). يتضمّن الإصدار 1.1 من Wear ProtoLayout الوظائف وواجهات برمجة التطبيقات الجديدة التالية:

  • تتيح السمة ArcLine الآن التدرّج اللوني من خلال إضافة Brush مع SweepGradient وإضافة ظل على الغطاء لتمثيل طول أكبر من 360 درجة بشكل أفضل من خلال إضافة Shadow إلى StrokeCap الحالية.
  • تتيح DynamicInstant تنسيق التاريخ والوقت حسب المنطقة الزمنية. يمكن استخدام DynamicInstant وDynamicDuration كنوعَي بيانات خاصَّين بالحالة أو المنصّة.
  • ميزة تغيير حجم النص تلقائيًا التي تتيح ضبط أحجام متعددة على FontStyle.setSizes حيث سيتم تغيير حجم النص تلقائيًا استنادًا إلى المساحة المتوفّرة له داخل العنصر الأصل بالإضافة إلى ذلك، حسّنّا خيارات حذف الأجزاء غير الظاهرة من النص الذي يتجاوز المساحة المخصّصة له من خلال إضافة TEXT_OVERFLOW_ELLIPSIZE وإيقاف TEXT_OVERFLOW_ELLIPSIZE_END نهائيًا.
  • يتيح Spacer الآن استخدام سمات موسّعة مع وزن اختياري. لإنشاء ExpandedDimensionProp، أضفنا طريقة مساعدة DimensionBuilders.weight.
  • إتاحة إخفاء عناصر التنسيق وإظهارها بشكل ديناميكي باستخدام Modifier.visible. ويشمل ذلك استخدام قيم متغيّرة في BoolProp.
  • تتضمّن جميع واجهات برمجة التطبيقات ProtoLayout الآن تعليقًا توضيحيًا لمتطلبات إصدار المخطط، ويمكن التحقّق من الإصدار قبل طلب واجهة برمجة تطبيقات أحدث.
  • تم توسيع مساحة اللمس لكل عنصر يحتوي على Clickable لتصبح 48×48 على الأقل في أداة العرض من أجل تلبية متطلبات تسهيل الاستخدام بشكل أفضل.
  • بعد مبادرات أخرى متعلّقة بمكوّنات Material وCompose، أوقفنا الآن مساحة الحشو التلقائية للخط في جميع عناصر Text. بالإضافة إلى ذلك، تمت إزالة AndroidTextStyle وعناصر الضبط ذات الصلة من واجهة برمجة التطبيقات العامة. مع إصلاحات الأخطاء التالية:
  • تمت إضافة أداة ضبط لتحديد موضع المحتوى على الحافة في EdgeContentLayout حتى يمكن تحديد موضعه قبل المحتوى الآخر.
  • يتم طرح استثناء بشكل متّسق عند مواجهة قيمة تعداد غير معروفة.
  • إبطال نتيجة تعبير عندما ينتج عنه قيمة رقمية غير صالحة (NaN أو قيمة لانهائية) أو يعرض ArithmeticException.

تغييرات واجهة برمجة التطبيقات

  • تعديلات على واجهة برمجة التطبيقات SweepGradient للسماح بقبول الألوان أو ColorStops في الدالة الإنشائية (I6676f)

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

  • إضافة واجهة برمجة تطبيقات وميزة عرض مقيّدة لضبط اتجاه رسم عناصر القوس (Idef5a)
  • يتم ضبط القيمة التلقائية لـ RoundMode على Floor في FloatToInt32Node عند عدم تحديدها. سيظلّ العقد يعرض استثناءً إذا كان RoundMode المقدَّم غير معروف. (I1b2d8)

الإصدار ‎1.1.0-alpha04

‫13 ديسمبر 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.1.0-alpha04. يتضمّن الإصدار 1.1.0-alpha04 هذه التعديلات.

الميزات الجديدة

  • لا تنفّذ الفئة VersionInfo الواجهة Comparable. (I8d13c)
  • يتيح برنامج العرض الآن استخدام الخيار TEXT_OVERFLOW_ELLIPSIZE. (I7f085)

تغييرات واجهة برمجة التطبيقات

  • تم إيقاف خيار تجاوز سعة النص TEXT_OVERFLOW_ELLIPSIZE_END نهائيًا. يُرجى استخدام واجهة برمجة التطبيقات الجديدة TEXT_OVERFLOW_ELLIPSIZE التي تتضمّن سلوكًا مشابهًا جدًا. (I822d8)
  • بعد مبادرات أخرى متعلّقة بمكوّنات Material وCompose، أوقفنا الآن المساحة المتروكة للخط تلقائيًا في جميع عناصر Text. بالإضافة إلى ذلك، تمت إزالة AndroidTextStyle وعناصر الضبط ذات الصلة من واجهة برمجة التطبيقات المتاحة للجميع. (I79094، Ib0b03، I32959، Iaf7d5، Ifa298، I0a4ae، Ida9d3)
  • تم استبدال Modifier.hidden بـ Modifier.visible (I56902)
  • يقبل FontStyle#setSizes الآن وسيطة int بدلاً من SpProp. (I02b37)

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

  • طرح استثناء عند مواجهة قيمة تعداد غير محدّدة أو غير معروفة (I9d2cf)
  • إعادة الهيكلة DynamicTypeBindingRequest (I27b57)
  • إبطال نتيجة تعبير عندما ينتج عنه قيمة رقمية غير صالحة (NaN أو قيمة لانهائية) أو يعرض ArithmeticException. (I681ae)

الإصدار ‎1.1.0-alpha03

‫29 نوفمبر 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.1.0-alpha03. يتضمّن الإصدار 1.1.0-alpha03 هذه التعديلات.

الميزات الجديدة

  • إضافة دعم تجريبي لإخفاء عناصر التنسيق وإظهارها بشكل ديناميكي (I64a78)
  • إضافة دعم القيمة الديناميكية إلى BoolProp (I2fe96)
  • إضافة تعليق توضيحي لمتطلبات إصدار المخطط إلى واجهات برمجة التطبيقات ProtoLayout (I0f03c)
  • توسيع نطاق واجهة برمجة التطبيقات باستخدام الخيار الجديد في TextOverflow لإضافة علامات الحذف إلى النص في حاوية رئيسية ثابتة حتى عندما لا يتم الوصول إلى الحد الأقصى لعدد الأسطر (ولكن لا تتوفّر مساحة كافية للنص). (I110a9)
  • تمت إضافة طريقة المساعدة DimensionBuilders.weight لإنشاء ExpandedDimensionProp مع تحديد الوزن. (I4f72b)
  • يمكن استخدام DynamicInstant وDynamicDuration كنوعَي بيانات خاصَّين بالحالة أو المنصّة. (I6819f)

تغييرات واجهة برمجة التطبيقات

  • تعديل واجهة برمجة التطبيقات لإخفاء DynamicZonedDateTime ونقل جميع عملياتها إلى DyanamicInstant (I34b94)
  • تتيح أداة Spacer الآن استخدام السمة Expanded للعرض/الارتفاع. (Ie7c94)
  • توسيع مساحة استهداف النقرات في Renderer (I39c79)

الإصدار ‎1.1.0-alpha02

‫15 تشرين الثاني (نوفمبر) 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.1.0-alpha02. يتضمّن الإصدار 1.1.0-alpha02 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة حقل ArcLine StrokeCap Shadow إلى واجهة برمجة التطبيقات. (I830ec)
  • توسيع نطاق واجهة برمجة التطبيقات لتتمكّن من تحديد عرض أو ارتفاع Spacer لتوسيعه (I757ca)
  • أضفنا واجهة برمجة تطبيقات تجريبية لتغيير حجم النص تلقائيًا استنادًا إلى المساحة المتوفّرة له داخل العنصر الأصلي. (Ibbe63)
  • إتاحة الحدّ الأدنى لحجم العناصر القابلة للنقر (I178e3)
  • تمت إضافة إمكانية استخدام أداة العرض StrokeCap Shadow. (I48b17)
  • إضافة إمكانية استخدام أداة العرض مع "التدرّج الدائري" في ArcLine (I4d5bb)

الإصدار ‎1.1.0-alpha01

‫18 أكتوبر 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.1.0-alpha01. يتضمّن الإصدار 1.1.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة خيار الفرشاة إلى Arcline، مع إتاحة استخدام SweepGradient. (Ie7ce3)
  • تمت إضافة إمكانية تنسيق التاريخ والوقت حسب المنطقة الزمنية. (Ibfae0)
  • تمت إضافة بروتوكولات وبرامج تضمين Java المطلوبة لتنسيق التاريخ والوقت في منطقة زمنية معيّنة. (I97126)
  • تمت إضافة دوال getter لقراءة القيمة المخزّنة في DynamicDataValue. (Ie6cea)
  • تمت إضافة أداة ضبط لتحديد موضع المحتوى على الحافة في EdgeContentLayout حتى يمكن تحديد موضعه قبل المحتوى الآخر. (Ie8e8a)

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

  • تم إصلاح مشكلة عدم تعديل تعبير يتضمّن عمليات تسجيل متعددة لمصدر بيانات الوقت على الفور. (I8e1a8)
  • تم إصلاح خطأ لتوسيط العنصر الجذر أثناء تعديلات الاختلاف. (Ie48f7)
  • لن يتم تجاهل قيم قيود التنسيق غير المضبوطة (أو الفارغة) بعد الآن. (Ibc785)
  • تقليل التأخير بين ظهور التصميم وبدء تشغيل عُقد خط الأنابيب. (I38d4e)

الإصدار 1.0

الإصدار 1.0.0

‫9 أغسطس 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0. يتضمّن الإصدار 1.0.0 هذه التعديلات.

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

توفّر مكتبة ProtoLayout واجهات برمجة تطبيقات لإنشاء التصاميم والتعبيرات التي يمكن استخدامها على مساحات عرض مختلفة في Wear OS. على سبيل المثال، تستخدم مكتبة "البلاطات" واجهات برمجة التطبيقات هذه لتوفير ربط بيانات النظام الأساسي (لتعديل بيانات البلاطات بشكل أسرع) والرسوم المتحركة.

الإصدار ‎1.0.0-rc01

‏26 تموز (يوليو) 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-rc01. يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.

  • للانتقال من "البطاقات" إلى ProtoLayout، يُرجى اتّباع التعليمات هنا.

تغييرات واجهة برمجة التطبيقات

  • لقد أزلنا الطريقتَين setLayoutConstraintForDynamicAnchorAngle وgetLayoutConstraintForDynamicAnchorAngle من عنصر Arc. تمت إضافة هذه الطرق عن طريق الخطأ ولم يكن لها أي تأثير على التنسيق المقدَّم. (If7d01)
  • لقد حدّدنا الحدّ الأقصى لعمق تصميم ProtoLayout بـ 30 LayoutElements متداخلة. (I8a74b)

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

  • لقد أضفنا عملية تحقّق لإظهار خطأ إذا تم ضبط DynamicColor على SpanText. (I0e5bc)
  • يتم توضيح أنّ وحدة مصدر البيانات DAILY_CALORIES هي كيلو كالوري. (Iaa785)

الإصدار 1.0.0-beta01

‫21 حزيران (يونيو) 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.

الميزات الجديدة

  • السماح بضبط الساعة لاختبارات ربط الوقت (I05622)

تغييرات واجهة برمجة التطبيقات

  • يقبل التطبيقان PlatformDataReceiver.onData() وStateBuilders.Builder.addKeyToValueMapping الآن ربط DynamicDataKey بـ DynamicDataValue بطريقة آمنة بدلاً من استخدام الأنواع العامة غير الآمنة. وهذا يعني أنّه يتم الآن كتابة DynamicDataValue باستخدام DynamicType. تم نقل الثوابت HEART_RATE_ACCURACY_X إلى جذر PlatformHealthSources، وذلك لتتوافق مع موضع ثوابت Android الأخرى. يتم الآن استخدام ثوابت الأعداد الصحيحة HEART_RATE_ACCURACY_X مباشرةً في DynamicHeartRateAccuracy.constant() وDynamicHeartRateAccuracy.dynamicDataValueOf() بدلاً من الثابت ذي القيمة. (I82ff5)
  • كان من الممكن إنشاء مثيل للصف PlatformHealthSources.Constants عن طريق الخطأ. تم إصلاح هذه المشكلة الآن. (Icb849)
  • يتلقّى PlatformTimeUpdateNotifier#setReceiver الآن وظيفة Runnable بدلاً من Supplier وExecutor لإرسال الإشعارات. (I9d938)
  • لقد غيّرنا نوع المَعلمة في PlatformTimeUpdateNotifier#setReceiver من Callable إلى Supplier. (I664bf)
  • يتيح الرمزان CompactChip وTitleChip الآن إضافة أيقونة إليهما. (I5a01e)

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

  • تعديل رسائل Prop باستخدام حقول ديناميكية لاستخدام oneof بدلاً من ذلك (I81739)
  • إعادة استخدام عمليات تنفيذ أدوات الضبط للتحميل الزائد التي تتضمّن أدوات ضبط (Ied70c)
  • تسجيل بصمات الأصابع بشكل صحيح في أدوات الضبط التي تتضمّن عمليات تحميل زائدة (I86ed2)

الإصدار ‎1.0.0-alpha11

‫7 يونيو 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.

الميزات الجديدة

  • أضفنا PlatformDataKey لدقّة معدّل نبضات القلب. (I7f9b8)

تغييرات واجهة برمجة التطبيقات

  • أعِد تسمية StateBuilders#getIdToValueMapping إلى getKeyToValueMapping وغيِّر نوع القيمة المعروضة إلى Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
  • تحديد StateStore كصف نهائي (I408ca)
  • تم استبدال واجهة TimeGateway بواجهة PlatformTimeUpdateNotifier في مكتبة protolayout-expression-pipeline التي توفّر معدّل التكرار المطلوب لتعديل بيانات الوقت. (I60869)
  • إعادة تسمية register/unregisterForData في PlatformDataProvider إلى set/clearReceiver (I14b02)
  • في "نص المادة"، تمّت إعادة تسمية getExcludeFontPadding ليصبح hasExcludeFontPadding. (Iea01d)
  • تمت إضافة أداة ضبط لمحاذاة التصنيف بشكل مثالي إلى جميع مكوّنات الرقائق. تم الآن تطبيق الحدّ الأدنى لهدف النقر على جميع الشرائح. (I8ae92)
  • تمت إعادة تسمية "LayoutDefaults#BUTTON_MAX_NUMBER" إلى "MAX_BUTTONS". (I84788)
  • تمت إعادة تسمية DAILY_DISTANCE إلى DAILY_DISTANCE_M. (I4f758)

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

  • تعديل مستندات أنواع الدعائم لتوضيح سبب فرض القيمة الثابتة حدِّد القيمة التلقائية المستخدَمة في حال عدم توفير قيمة ثابتة. (I155aa)
  • يجب أن تتّبع مساحات الأسماء PlatformDataKey أسلوب التسمية في Java. (I47bda)

الإصدار ‎1.0.0-alpha10

‫24 مايو 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.

الميزات الجديدة

  • أضِف AppDataKey للوصول إلى حالة التطبيق التي تم إرسالها، وأضِف PlatformDataKey للوصول إلى بيانات النظام الأساسي، وأضِف إمكانية استخدام مساحة الاسم في StateStore. (I7985e)
  • إتاحة عمليات Equal وNotEqual في DynamicBool (I6a0c1)

تغييرات واجهة برمجة التطبيقات

  • أصبحت الفئة FontStyles نهائية الآن (Iaa2ea)
  • تم إيقاف LayoutElementBuilders#FontStyles نهائيًا. يُرجى استخدام androidx.wear.protolayout.Typography أو إنشاء FontStyle خاص بك. (Ic929b)
  • إخفاء الواجهة المضمّنة Action#Builder من واجهة Action يتم توفير عمليات تنفيذ Builder حاليًا من خلال الفئتين LoadAction وLaunchAction. (I1d70c)
  • السماح باستخدام DynamicFloat مع FloatProp يُرجى العِلم أنّ FloatProp لا تتطلّب قيودًا على التنسيق لأنّها لا تُستخدَم كخاصية لتغيير التنسيق. (I286ac)
  • تمت إزالة الإجراءَين LoalAction وSetStateAction لأنّهما لم يكونا متاحَين بعد. (I5d6a6)
  • تمت إضافة إمكانية استخدام تنسيق ARGB_8888 لموارد الصور المضمّنة. (I8a07c)
  • أعِد تسمية StateEntryValue إلى DynamicDataValue، وعدِّل واجهات برمجة التطبيقات الخاصة بالحالة لاستخدام DynamicDataKey (If1c01)
  • نحن نحدّ من عدد الإدخالات المسموح بها في StateStore لضمان احتواء استخدام الذاكرة ووقت تعديل الحالة والتحكّم فيهما بشكل جيد لكل مثيل من StateStore. نتيجةً لذلك، على المطوّر التأكّد من عدم توفّر أكثر من MAX_STATE_ENTRY_COUNT إدخال في الخريطة، وإلا سيحصل على IllegalStateException عند إنشاء StateStore أو تعديله. (Ibadb3)
  • إخفاء الصفين OnLoadTrigger وOnConditionMetTrigger، وإعادة تسمية setTrigger إلى setCondition في OnConditionMetTrigger (Ibf629)
  • لأسباب تتعلّق بالأداء والتوافق، لن تتوافق أدوات العرض ProtoLayout مع المجموعة الكاملة من الميزات في موارد AnimatedVectorDrawable. سنصنّف واجهات برمجة التطبيقات هذه على أنّها تجريبية إلى أن نتمكّن من تحديد المجموعة المتوافقة. (Ic6daf)
  • تمت إضافة أنواع ديناميكية للمسافة اليومية والسعرات الحرارية اليومية والطوابق اليومية. أصبحت مفاتيح مصادر حالة النظام الأساسي متوفّرة الآن ضمن PlatformHealthSources.Keys (Ib7637)
  • يستبدل الإجراء Easing.cubicBezier القيمة CubicBezierEasing.Builder. بهذا، تتم إزالة الفئة EasingFunction، ويمكن الآن الوصول مباشرةً إلى ثوابت التباطؤ والتسارع من واجهة Easing. بالإضافة إلى ذلك، يتم استبدال setInfiniteRepeatable بـ INFINITE_REPEATABLE_WITH_RESTART وINFINITE_REPEATABLE_WITH_REVERSE (Ib41e7)
  • نفِّذ PlatformDataProvider لتوفير معدّل نبضات القلب وعدد الخطوات اليومية. تمت إزالة واجهة SensorGateway من واجهة برمجة التطبيقات العامة. (I55b84)
  • أضِف PlatformDataProvider وعدِّل StateStore للتسجيل في PlatformDataProvider عندما تطلب العقدة المفتاح المتوافق مع مقدّم الخدمة من مسار التعبير. (Ib616a)
  • لم يعُد SensorGateway Closeable لأنّه لم يعُد يحتفظ بأي حالة. (I6b4f7)
  • السماح باستخدام FloatProp مع DynamicFloat لتحقيق التقدّم في CircularProgressIndicator يتوفّر هذا الخيار في أدوات العرض التي تتوافق مع الإصدار 1.2. ستعود أدوات العرض القديمة إلى staticValue إذا تم توفيرها، وإلا ستعود إلى 0 (I0d91b).
  • تمت إعادة تصميم الثوابت MultiButtonLayout في الفئة LayoutDefaults.MultiButtonLayoutDefaults التي تحتوي الآن على ثوابت لأحجام الأزرار استنادًا إلى عدد الأزرار في التصميم. (I13973)
  • إتاحة استخدام StringProp مع DynamicString في Material Text يتوفّر هذا الخيار في أدوات العرض التي تتوافق مع الإصدار 1.2. ستعود أدوات العرض القديمة إلى القيمة الثابتة المقدَّمة. عدِّل نوع الإرجاع Text#getText من String إلى StringProp. (I7275b)

الإصدار ‎1.0.0-alpha09

‫10 مايو 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.

الميزات الجديدة

  • أضفنا عنصرًا تجريبيًا لتنسيق الإضافة. يُرجى العِلم أنّه لا يمكن استخدام هذه الميزة تلقائيًا، وهي تتطلّب إضافة عارض يمكنه فهم عنصر التنسيق. (I6581d)
  • تمت إضافة دعم StrokeCap إلى ArcLine. (I94951)
  • تمت إضافة إمكانية تنفيذ عمليات فورية مشروطة. (I489a7)
  • تمت إضافة إمكانية استخدام عملية "المدة الشرطية". (Iab469)
  • تمت إضافة إمكانية إنشاء مدة من الثواني. (Ib5fa1)

تغييرات واجهة برمجة التطبيقات

  • تمت إزالة طرق الدفع enable/disablePlatformSource من DynamicTypeEvaluator. ويكون المتصل مسؤولاً عن التحديثات. (I78c6d)
  • السماح بوضع حد أقصى لحجم أنواع البيانات المرتبطة (Ie2966)
  • إضافة دعم لوصف المحتوى الديناميكي في protolayout-material (I62c8e)
  • استخدِم القيمتين long و@IntRange للمدة والتأخير في AnimationParameters. (I388b6)

الإصدار ‎1.0.0-alpha08

‫19 أبريل 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة AndroidTextStyle إلى LayoutElementBuilders. (I8d967)
  • أتحنا إمكانية ضبط استبعاد مساحة الحشو في الخط في ProtoLayout Material Text. (I17f5d)
  • تتوفّر الآن إمكانية استخدام تنسيق ARGB_8888 للصور المضمّنة. (I18c1e)
  • يتيح DynamicColor الآن تنفيذ عملية onCondition. (I10927)

تغييرات واجهة برمجة التطبيقات

  • إتاحة مدة مخصّصة للصور المتحركة العكسية (I3251f)
  • لقد أضفنا المعدِّل SemanticDescription. بالإضافة إلى ذلك، لا يمكن ربط ContentDescription. (I3f1d)
  • تم الآن استبدال الطريقة DynamicBool.isFalse() بالطريقة DynamicBool.negate()، كما تمت إزالة DynamicBool.isTrue(). بالإضافة إلى ذلك، تؤدي قيم NaN DynamicFloat وتضييق نطاق DynamicInt32 إلى DynamicFloat الآن إلى ظهور نتيجة ديناميكية غير صالحة. (I6ac1e)
  • تستخدم أدوات التنسيق int وfloat الآن نمط Builder. (Ieb213)

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

  • تمت إزالة القيمة الثابتة الاحتياطية من الحقول التي يمكن تحريكها. (Ifcb01)
  • تمّت إزالة DynamicTypeValueReceiver#onPreUpdate. (I2dc35)
  • تم الآن وضع حد أقصى لطول السلاسل في التعبيرات الديناميكية. (I4c93)
  • تم الآن ضبط تبعيات Gradle بشكل صحيح على api بدلاً من implementation عند الحاجة. (I40503)

الإصدار ‎1.0.0-alpha07

‫5 أبريل 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.

الميزات الجديدة

  • إضافة إمكانية استخدام القيم الديناميكية إلى StringProp (I04342)
  • وضع علامة على عناصر التنسيق القابلة للربط (Ia110b)

تغييرات واجهة برمجة التطبيقات

  • تأخذ sensorGateway#registerSensorGatewayConsumer نوع البيانات كمَعلمة بدلاً من الطريقة في Consumer. (Icf314)
  • تمت إعادة تسمية "ObservableStateStore" إلى "StateStore". (Ieb0e2)
  • تمت إضافة DynamicTypeEvaluator.Builder بدلاً من وسيطات الدالة الإنشائية للسماح بالمزيد من الوسيطات الاختيارية، بما في ذلك ObservableStateStore التي يتم ضبطها تلقائيًا الآن على متجر فارغ. (I6f832)
  • تمت إعادة ترتيب المعلَمات في DynamicTypeEvaluator. (Ic1ba4)

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

  • نقل الإشارات بشكل صحيح من مصادر أجهزة الاستشعار في النظام الأساسي إلى العُقد النهائية (I5a922)

الإصدار ‎1.0.0-alpha06

‫22 مارس 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.

الميزات الجديدة

  • أضفنا واجهة برمجة تطبيقات تجريبية لاستخدام معدّل نبضات القلب والخطوات اليومية في التعبيرات الديناميكية (Ifd711)
  • أضفنا إمكانية استخدام التأخير العكسي والتأخير الأمامي للصور المتحركة. (Ic25f7)
  • أضفنا إمكانية استخدام DynamicColor في "الحدود والخلفية"
  • أضفنا إمكانية استخدام القيم المتحركة إلى الأنواع في DimensionBuilder
  • سيتم نقل التنسيق والمكوّنات من tiles-material إلى protolayout-material

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة LoadActionListener إلى ProtoLayoutViewInstance. (If7806)

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

  • تمت إضافة FloatNodesTest (Id7281)
  • تم إصلاح مشكلة تعطُّل أداة العرض عند تعذُّر تحميل صورة نقطية منظَّمة.

الإصدار ‎1.0.0-alpha05

‫8 مارس 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.

الميزات الجديدة

  • لقد أضفنا حركة تجريبية باسم "تعديل المحتوى" إلى العنصر Modifiers. سيتم تشغيل هذا الرسم المتحرك كلما تغيّر العنصر (الذي يتضمّن هذا المعدِّل) أو أحد العناصر التابعة له أثناء تعديل التنسيق. (bd03e5d)

تغييرات واجهة برمجة التطبيقات

  • أضفنا forwardRepeatDelayMillis وreverseRepeatDelayMillis إلى Repeatable. أعدنا أيضًا تسمية delayMillis في AnimationSpec إلى startDelayMillis (Ifb266)
  • تقبل طرق DynamicTypeEvaluator.bind الآن Executor. (I346ab)
  • لقد أضفنا الطريقة startEvaluation إلى BoundDynamicType لتفعيل التقييم بعد ربط النوع الديناميكي. (I19908)

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

  • سيتم إعادة استخدام عنصر Animator في الحركات اللاحقة لعنصر واحد. (Ia3be9)

الإصدار ‎1.0.0-alpha04

‫22 فبراير 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 هذه التعديلات.

الميزات الجديدة

  • يُعلم ObservableStateStore المستمعين الآن عند إزالة مفتاح أيضًا.
  • أضفنا إصدار مخطط العرض ومقياس الخط إلى DeviceParameters (الذي يمكن استخدامه لإنشاء تخطيطات بشكل مشروط استجابةً للإصدارات وإعدادات الخطوط المختلفة).
  • أتحنا إمكانية تحريك قيم DynamicInt32 (I05485)
  • أضفنا مشغّلات OnLoad وOnConditionalMet. يمكن استخدامها لبدء الصور المتحركة التي تتوافق مع مشغّل.
  • أضفنا وزن التنسيق للأبعاد الموسّعة والحد الأدنى للحجم للأبعاد الملتفّة.
  • أضفنا نوعَين ديناميكيَّين جديدَين، وهما المدة واللحظة. ويمكن استخدامها لتمثيل لحظة زمنية أو مدة في تعبير ديناميكي.
  • أضفنا إمكانية استخدام AnimatedVectorDrawable وSeekableAnimatedVectorDrawable كموارد تخطيط.

تغييرات واجهة برمجة التطبيقات

  • تتطلّب بيانات المستشعر الإصدار 29 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (I8099e)
  • أضفنا طريقتَين مساعدتَين launchAction (لتشغيل الأنشطة).

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

  • تمت إعادة تسمية set/getSpec إلى set/getAnimationSpec في الصورة المتحركة "المربّعات" (I3d74b)

الإصدار ‎1.0.0-alpha03

‫8 فبراير 2023

تم طرح androidx.wear.protolayout:protolayout-*:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.

الميزات الجديدة

  • أضفنا toByteArray() وfromByteArray() إلى الأنواع الديناميكية في مكتبة protolayout-express.
  • أضفنا toString() إلى "الأنواع الديناميكية" في مكتبة protolayout-expression.
  • أضفنا إمكانية تقييم الأنواع الديناميكية. يمكن استخدام الفئة DynamicTypeEvaluator من مكتبة protolayout-expression-pipeline لتقييم (وتلقّي قيم معدَّلة) نوع Dynamic تم إنشاؤه سابقًا (DynamicString وDynamicFloat وما إلى ذلك).
  • عندما يتعذّر تشغيل الرسوم المتحركة (إما لأنّ أداة التقييم أوقفتها، أو لأنّ عدد الرسوم المتحركة قيد التشغيل قد بلغ الحدّ الأقصى المحدّد)، سيتم استخدام القيم الثابتة التي تم ضبطها على العقدة القابلة للتحريك لاستبدال الرسوم المتحركة.

الإصدار ‎1.0.0-alpha02

‫25 يناير 2023

تم طرح ميزات androidx.wear.protolayout:protolayout:1.0.0-alpha02 وandroidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 وandroidx.wear.protolayout:protolayout-proto:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.

الميزات الجديدة

  • سيتم نقل أدوات إنشاء التنسيقات من androidx.wear.tiles:tiles إلى androidx.wear.protolayout:protolayout. سيتم إيقاف تلك التي تحمل الرمز androidx.wear.tiles:tiles نهائيًا في أحد إصدارات ألفا القادمة.

الإصدار ‎1.0.0-alpha01

‫11 يناير 2023

تم طرح androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 وandroidx.wear.protolayout:protolayout-proto:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • يتضمّن هذا الإصدار مكتبة جديدة باسم "تعبير ProtoLayout" لإنشاء تعبيرات من متغيّرات ديناميكية.