WindowManager
androidx.window
androidx.window.core
androidx.window.embedding
androidx.window.layout
androidx.window.testing.layout
آخر تعديل | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار التجريبي |
---|---|---|---|---|
16 أكتوبر 2024 | 1.3.0 | - | - | 1.4.0-alpha05 |
الإعلان عن التبعيات
لإضافة تبعية على WindowManager، عليك إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven من Google للحصول على مزيد من المعلومات.
أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle
ل
تطبيقك أو وحدتك:
Groovy
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية عن طريق النقر على زر النجمة.
اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.
الإصدار 1.4
الإصدار 1.4.0-alpha05
16 أكتوبر 2024
تم إصدار androidx.window:window-*:1.4.0-alpha05
. يتضمّن الإصدار 1.4.0-alpha05 عمليات الربط هذه.
الميزات الجديدة
- أضِف دوالّ تسهيل للحصول على
widthDp
وheightDp
منWindowMetrics
.
تغييرات واجهة برمجة التطبيقات
- أضِف
widthDp
وheightDp
إلىWindowMetrics
. (Ide026) - أزِل واجهة برمجة التطبيقات التجريبية
WindowInsets
. (I68a71) - تعديل أسماء طرق التحقّق من الحدود إلى
isAtLeast
(Ib0ab7)
الإصدار 1.4.0-alpha04
2 أكتوبر 2024
تم إصدار androidx.window:window-*:1.4.0-alpha04
. يتضمّن الإصدار 1.4.0-alpha04 عمليات الربط هذه.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة طريقة لاحتساب
WindowSizeClass
منWindowMetrics
. (874dba) - غيِّر طرق
WindowSizeClass
إلىcontainsWidthDp
وcontainsHeightDp
وcontainsWindowSizeDp
لزيادة الوضوح. (fa760d) - حوِّل
WindowAreaController
إلى فئة أساسية مجردة. (I90893)
إصلاح الأخطاء
- إتاحة الحدود النسبية عند إنشاء
FoldingFeature
اختبار (2e6b3e) - إصلاحات عامة للأخطاء عند اختيار
WindowSizeClass
الإصدار 1.4.0-alpha03
18 أيلول (سبتمبر) 2024
تم إصدار androidx.window:window-*:1.4.0-alpha03
. يحتوي الإصدار 1.4.0-alpha03 على عمليات الربط هذه.
الميزات الجديدة
- أضِف طريقة مساعدة للحصول على
WindowSizeClass
منWindowMetrics
. (I83f1f) - أعِد تسمية
isAtLeast
إلىcontainsBreakpoint
. (I85b47) - أضِف وظائف زائدة إلى
computeWindowSizeClass
باستخدام أعداد الفاصلة العائمة. (I3dcb2، b/364677934، b/364677802، b/364680886)
إصلاح الأخطاء
- أضِف نقاط التوقف غير المتوفّرة إلى مجموعة نقاط التوقف التلقائية
WindowSizeClass
. - تم إصلاح خلل في بعض الحالات كان يؤدي إلى عدم اختيار السمات المكثّفة بشكل صحيح.
الإصدار 1.4.0-alpha02
4 أيلول (سبتمبر) 2024
تم إصدار androidx.window:window-*:1.4.0-alpha02
. يتضمّن الإصدار 1.4.0-alpha02 عمليات الربط هذه.
الميزات الجديدة
إتاحة استخدام WindowSizeClass
مخصّص
- افتح أداة الإنشاء لـ
WindowSizeClass
حتى يتمكّن المطوّرون من استخدام أدواتهم الخاصة. - أضِف طرقًا مساعدة
isAtLeast
ليتمكّن المطوّرون من معالجة مجموعة من قيمWindowSizeClass
. - أضِف دالة تمديد على
Set<WindowSizeClass>
لاحتساب أفضل مطابقة من المجموعة. - أضِف ثوابت لنقاط الفواصل المقترَحة لنظام التشغيل Android.
- أضِف مجموعة نقاط التوقف المقابلة لنقاط التوقف المقترَحة من Android.
تغييرات واجهة برمجة التطبيقات
- عدِّل أسماء طرق الحدود لـ
WindowSizeClass
. (If89a6) - عدِّل واجهة برمجة التطبيقات
WindowSizeClass
API لإتاحة إضافة قيم نقاط توقّف جديدة في المستقبل. بدلاً من استخدام حدود مطلقة، نستخدم الحدود الدنيا وننصحك بأن يستخدم المطوّرون عمليات التحقّق من الحدود الدنيا عند معالجةWindowSizeClass
. سيتم إيقافWindowWidthSizeClass
وWindowHeightSizeClass
الحاليَين نهائيًا لأنّه لن يتم تطويرهما بعد الآن. (I014ce)
الإصدار 1.4.0-alpha01
7 آب (أغسطس) 2024
تم إصدار androidx.window:window-*:1.4.0-alpha01
. يتضمّن الإصدار 1.4.0-alpha01 عمليات الربط هذه.
الميزات الجديدة
- تسمح ميزة تثبيت حِزم الأنشطة للتطبيقات بتثبيت المحتوى في حاوية واحدة وفصل التنقّل فيها عن الحاوية الأخرى.
- يسمح المقسّم التفاعلي للتطبيقات بعرض مقسم ثابت أو قابل للسحب بين النشاطَين في عرض مُقسَّم.
- تتيح ميزة تعتيم مربّع الحوار بملء الشاشة للتطبيقات تحديد منطقة التعتيم في مربّع الحوار، إما لتعتيم نافذة المهام بالكامل أو لتعتيم الحاوية التي تعرض مربّع الحوار فقط.
- يسمح الرجوع إلى معلومات نافذة النشاط المضمّنة للتطبيقات بتلقّي آخر المعلومات باستمرار عن نافذة النشاط المضمّنة.
- تتيح إدراج خلفية الحركة للتطبيقات تحديد خلفية الحركة، ما يُحسِّن من جودة الحركة الانتقالية عند استخدام
ActivityEmbedding
. - تسمح إدارة ActivityStack المحسّنة للتطبيقات بالتحكّم بشكل أكبر في
ActivityStacks
عند استخدامActivityEmbedding
، بما في ذلك: - بدء نشاط في
ActivityStack
محدّد - إنهاء
ActivityStack
تغييرات واجهة برمجة التطبيقات
واجهة برمجة تطبيقات جديدة
WindowInfoTracker#supportedPostures
:- واجهة برمجة تطبيقات لتحديد ما إذا كان الجهاز متوافقًا مع وضع "العرض على سطح مستوٍ" للأجهزة القابلة للطي إضافة WindowAreaSessionPresenter#getWindow
إضافة واجهات برمجة تطبيقات تتيح تثبيت
ActivityStack
:- الصف
SplitPinRule
SplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
- الصف
إضافة واجهات برمجة تطبيقات لتفعيل المقسم التفاعلي وضبطه
- الصف
DividerAttributes
SplitAttributes.Builder#setDividerAttributes
- الصف
إضافة واجهات برمجة تطبيقات لضبط
EmbeddingConfiguration
وDimAreaBehavior
لمربّعات الحوار- الصف
EmbeddingConfiguration
- الصف
DimAreaBehavior
ActivityEmbeddingController#setEmbeddingConfiguration
- الصف
إضافة واجهات برمجة التطبيقات لتلقّي آخر المعلومات عن نوافذ الأنشطة المضمّنة
- الصف
EmbeddedActivityWindowInfo
ActivityEmbeddingController#embeddedActivityWindowInfo
- الصف
إضافة واجهات برمجة تطبيقات لضبط خلفية الرسوم المتحركة المضمّنة
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
إضافة واجهات برمجة التطبيقات لإكمال
ActivityStacks
ActivityEmbeddingController#finishActivityStacks
إضافة واجهات برمجة التطبيقات لضبط عملية الإطلاق
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
واجهات برمجة التطبيقات التالية مستقرة ولم تعُد تجريبية:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(تم نقله من SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
إضافة واجهات برمجة التطبيقات للإصدار 1.4 (I56774)
إصلاح الأخطاء
- إصلاح خلل على أجهزة معيّنة يتم فيه عرض القيمة UNAVAILABLE بدلاً من ACTIVE عندما تكون الجلسة نشطة
- إزالة إمكانية استخدام
transferActivityToWindowArea
على الأجهزة التي يكون فيهاvendorApiLevel
= 2 بسبب عدم استقرار واجهة برمجة التطبيقات - تقديم واجهة برمجة تطبيقات لتفعيل ميزة السحب إلى ملء الشاشة لفاصل النشاط القابل للسحب (I645c9)
- السماح للتطبيقات بإيقاف صور
ActivityEmbedding
المتحركة من خلال مَعلمات الصور المتحركة لنظام التشغيلSplitAttributes
(Idc01a) - تمت إزالة التحديد اليدوي للوصول إلى واجهات برمجة تطبيقات المنصة الجديدة لأنّ ذلك يحدث تلقائيًا من خلال وضع نماذج لواجهات برمجة التطبيقات عند استخدام R8 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) ولجميع الإصدارات عند استخدام AGP 8.1 أو إصدار أحدث (مثل D8 الإصدار 8.1). ننصح العملاء الذين لا يستخدمون AGP بالترقية إلى الإصدار 8.1 من D8 أو إصدار أحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (Ia60e0، b/345472586)
- اسمح للعناصر الإضافية بأخذ مَعلمات الرسوم المتحركة لـ
SplitAttributes
حتى يتمكّن الجهاز من استخدامها في عمليات انتقال الرسوم المتحركة. (Iede00) - واجهات برمجة التطبيقات لإخفاء التراكب (Ic4251)
- تقديم واجهات برمجة تطبيقات لضبط المقسم الثابت أو القابل للسحب للقسم (Ia7a78)
- تمت إضافة الكثافة إلى
WindowMetrics
(Id6723) - أضِف واجهة برمجة التطبيقات للحصول على
SupportedPostures
. (If557a) - إزالة
setLaunchingActivityStack
من واجهة برمجة التطبيقات التجريبية (I191cf) - تعريف
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - إيقاف
#getToken
نهائيًا وإضافة#getActivityStackToken
(Ie0471) - تقديم محوِّل طلب إعادة الاتصال لواجهة برمجة تطبيقات
embeddedActivityWindowInfo
flow API (Ida77f) - إضافة محوِّل طلب إعادة الاتصال لواجهة برمجة التطبيقات overlayInfo flow API (I7264f)
- أدخِل
WindowSdkExtensionsRule
لإلغاءextensionsVersion
للاختبار. (Ifb928) - - نقل
#setLaunchingActivityStack
إلى حِزمة لتوافقها مع استخداماتActivityOptionsCompat
- على المستخدمين تمرير
activityOptions.toBundle
بدلاً منActvityOptions
نفسه. - أزِل
#setLaunchingActivityStack(Activity)
. على المستخدمين نقل بياناتهم لاستخدامActivityEmbeddingController#getActivityStac(Activity)
للحصول علىActivityStack
، ويجب تمريرActivityStack
إلى#setLaunchingActivityStack
. (Ie0ccc)
- على المستخدمين تمرير
- - استخدِم
ActivityStack.Token
وSpltInfo.Token
كمعرّف للتواصل بين WM Jetpack والإضافات.- إيقاف واجهات برمجة التطبيقات نهائيًا أو استبدالها لأخذ الرمز المميّز أو إرجاعه بدلاً من IBinder (I12b24)
- - عرِّف
ActivityEmbeddingController#invalidateVisibleActivityStacks
- إزالة
SplitController#invalidateTopVisibleSplitAttributes
لأنّ الميزة تم دمجها مع#invalidateVisibleActivityStacks
(I02ef5)
- إزالة
- - إضافة واجهة برمجة التطبيقات لضبط إعدادات التضمين (I59a4a)
- - إضافة ميزة تثبيت/إلغاء تثبيت أهم واجهات برمجة تطبيقات
ActivityStack
androidx.Window
- تعديل التطبيق التجريبي للسماح بتثبيت/إزالة تثبيت العناصر في أعلى الشاشة
ActivityStack
(I24dd3)
- تعديل التطبيق التجريبي للسماح بتثبيت/إزالة تثبيت العناصر في أعلى الشاشة
- إعادة إضافة
#finishActivityStacks
وActivityEmbeddingOptions
(Ic1ab3) - أزِل واجهات برمجة التطبيقات غير المستقرة. (Ibc534، b/302380585)
الإصدار 1.3
الإصدار 1.3.0
29 أيار (مايو) 2024
تم إصدار androidx.window:window-*:1.3.0
. يحتوي الإصدار 1.3.0 على عمليات الربط هذه.
التغييرات المهمة منذ الإصدار 1.2.0
- إتاحة Kotlin Multiplatform لفئات حجم النوافذ
الإصدار 1.3.0-rc01
14 أيار (مايو) 2024
يوفّر الإصدار WindowManager
من Jetpack ميزات Kotlin Multiplatform لاستخدام ميزات WindowSizeClass
، بالإضافة إلى إصلاحات متعددة للأخطاء.
تم إصدار androidx.window:window-*:1.3.0-rc01
. يتضمّن الإصدار 1.3.0-rc01 عمليات الربط هذه.
الإصدار 1.3.0-beta02
1 مايو 2024
تم إصدار androidx.window:window-*:1.3.0-beta02
. يتضمّن الإصدار 1.3.0-beta02 هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- إزالة إمكانية إنشاء
WindowSizeClass
مخصّصة واستخدامها (Id1143)
إصلاح الأخطاء
- إصلاحات
KotlinReflectionInternalError
الناتجة عن إزالة أداة Proguard لبعض الملفات في عمليات تنفيذ معيّنة على الأجهزة (I01b02)
الإصدار 1.3.0-beta01
3 نيسان (أبريل) 2024
تم إصدار androidx.window:window-*:1.3.0-beta01
. يتضمّن الإصدار 1.3.0-beta01 عمليات الربط هذه.
الإصدار 1.3.0-alpha03
6 مارس 2024
تم إصدار androidx.window:window-*:1.3.0-alpha03
. يحتوي الإصدار 1.3.0-alpha03 على عمليات الربط هذه.
تغييرات واجهة برمجة التطبيقات
- تقسيم
WindowSizeClassUtil
إلى طرق أكثر تركيزًا (Ie9292) - استعادة
WindowSizeClass#compute
(I21355، b/324293374)
إصلاح الأخطاء
- إصلاح مشكلة الأعطال التي كانت تحدث بسبب عدم إزالة ترميز السياق المقدَّم بشكلٍ صحيح (94d10ce , b/318787482)
الإصدار 1.3.0-alpha02
7 شباط (فبراير) 2024
تم إصدار androidx.window:window-*:1.3.0-alpha02
. يحتوي الإصدار 1.3.0-alpha02 على هذه المراجعات.
الميزات الجديدة
- تم إجراء تعديلات على واجهة برمجة التطبيقات لـ Window Size Class API لتحسين مرونة المطوّرين الذين يريدون استخدام فئات الحجم الخاصة بهم.
تغييرات واجهة برمجة التطبيقات
- أضِف قيودًا على الارتفاع إلى أداة اختيار العرض. (I23393)
- أضِف دوالّ مساعدة لاختيار
WindowSizeClass
من مجموعة. إضافة دوالّ تسجيل النقاط التجريبية ليتمكّن المطوّرون من كتابة أدوات الاختيار الخاصة بهم أضِف دالة إضافة أداة اختيار لاختيار أوسعWindowSizeClass
ضمن حدود معيّنة. (I0c944) - افتح الدالة الإنشائية
WindowSizeClass
حتى تتمكّن من إضافة نقاط توقّف مخصّصة. (Ic1ff3) - إضافة وظيفة لتسهيل إنشاء فئة حجم من العرض والارتفاع والكثافة (If67f4)
إصلاح الأخطاء
- إصلاح استثناء عند اقتطاع قيمة عدد الفاصلة العائمة إلى 0 (272ffac)
الإصدار 1.3.0-alpha01
15 تشرين الثاني (نوفمبر) 2023
تم إصدار androidx.window:window-*:1.3.0-alpha01
. يحتوي الإصدار 1.3.0-alpha01 على هذه المراجعات.
الميزات الجديدة
- وفِّر واجهات برمجة تطبيقات النوافذ التجريبية للوصول إلى الشاشة الخلفية.
- أصبحت واجهات برمجة التطبيقات الاختبارية لإنشاء
FoldingFeature
ثابتة الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
زائفة مستقرة الآن. - تُبلغ الدالة
WindowLayoutInfoPublisherRule
الآن عن القيمة المُلغاة عند الحصول على قيمة منUiContext
. - تُبلغ
WindowInfoTracker
عن تجميع بيانات الميزة إلى مَعلماتUiContext
. - اعرض إصدار الإضافات على الجهاز.
WindowProperties
الثوابت الخاصة بإلغاء الإعدادات لكل مستخدم على مستوى التطبيق:-
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
- لإعلام المنظومة بأنّ التطبيق أوقف ميزة تجاوز التوافق مع نسبة العرض إلى الارتفاع الموجَّهة للمستخدمين PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— إبلاغ النظام بأنّ التطبيق أوقف خيار ملء الشاشة الذي اختاره المستخدم وتجاوز إعدادات التوافق مع نسبة العرض إلى الارتفاع
-
الإصدار 1.2
الإصدار 1.2.0
15 تشرين الثاني (نوفمبر) 2023
تم إصدار androidx.window:window-*:1.2.0
. يحتوي الإصدار 1.2.0 على هذه المراجعات.
التغييرات المهمة منذ الإصدار 1.1.0
- وفِّر واجهات برمجة تطبيقات النوافذ التجريبية للوصول إلى الشاشة الخلفية.
- أصبحت واجهات برمجة التطبيقات الاختبارية لإنشاء
FoldingFeature
ثابتة الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
زائفة مستقرة الآن. - تُبلغ الدالة
WindowLayoutInfoPublisherRule
الآن عن القيمة المُلغاة عند الحصول على قيمة منUiContext
. - تُبلغ
WindowInfoTracker
عن تجميع بيانات الميزة إلى مَعلماتUiContext
. - اعرض إصدار الإضافات على الجهاز.
الإصدار 1.2.0-rc01
1 تشرين الثاني (نوفمبر) 2023
تم إصدار androidx.window:window-*:1.2.0-rc01
. يحتوي الإصدار 1.2.0-rc01 على هذه المراجعات.
الميزات الجديدة
- وفِّر واجهات برمجة تطبيقات النوافذ التجريبية للوصول إلى الشاشة الخلفية.
- أصبحت واجهات برمجة التطبيقات الاختبارية لإنشاء
FoldingFeature
ثابتة الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
زائفة مستقرة الآن. - تُبلغ الدالة
WindowLayoutInfoPublisherRule
الآن عن القيمة المُلغاة عند الحصول على قيمة منUiContext
. - تُبلغ
WindowInfoTracker
عن تجميع بيانات الميزة إلى مَعلماتUiContext
. - اعرض إصدار الإضافات على الجهاز.
الإصدار 1.2.0-beta04
18 تشرين الأول (أكتوبر) 2023
تم إصدار androidx.window:window-*:1.2.0-beta04
. يحتوي الإصدار 1.2.0-beta04 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- أزِل واجهات برمجة التطبيقات غير المستقرة. (Ibc534، b/302380585)
الإصدار 1.2.0-beta03
20 أيلول (سبتمبر) 2023
تم إصدار androidx.window:window-*:1.2.0-beta03
. يحتوي الإصدار 1.2.0-beta03 على هذه المراجعات.
الميزات الجديدة
- أضِف
RequiresApi
عمليات تحقّق لواجهات برمجة التطبيقات التي تحتاج إلى إصدار معيّن من الإضافات لكي تعمل بشكل صحيح. - أضِف واجهة برمجة تطبيقات لعرض إصدار الإضافات على الجهاز.
تغييرات واجهة برمجة التطبيقات
- أضِف تعليقًا توضيحيًا لإصدار إضافة حزمة تطوير البرامج (SDK) للنوافذ المطلوب في واجهات برمجة التطبيقات المتاحة للجميع.
- أزِل
isXXXSupported
في مكوّن "تضمين النشاط". (Ie3dae)
- أزِل
- أدخِل
WindowSdkExtensions
للإبلاغ عن إصدار الإضافة على الجهاز.- أدخِل
RequiresWindowSdkExtension
لإضافة تعليقات توضيحية حول الحد الأدنى لإصدار الإضافة المطلوب. (I05fd4)
- أدخِل
- يجعل
WindowAreaInfo#getCapability
غير قابل للحذف. (I17048)
الإصدار 1.2.0-beta01
26 تموز (يوليو) 2023
تم إصدار androidx.window:window-*:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على هذه المراجعات.
الميزات الجديدة
- وفِّر واجهات برمجة تطبيقات النوافذ التجريبية للوصول إلى الشاشة الخلفية.
- أصبحت واجهات برمجة التطبيقات الاختبارية لإنشاء
FoldingFeature
ثابتة الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
زائفة مستقرة الآن. - تُبلغ الدالة
WindowLayoutInfoPublisherRule
الآن عن القيمة المُلغاة عند الحصول على قيمة منUiContext
. - تُبلغ
WindowInfoTracker
عن تجميع بيانات الميزة إلى مَعلماتUiContext
.
تغييرات واجهة برمجة التطبيقات
- وضع علامة "تجريبية" على واجهة برمجة التطبيقات
WindowArea
للسماح بمواصلة تغييرات واجهة برمجة التطبيقات من أجل إصدار ثابت في الإصدار 1.3 (I857f5) - تم تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية حول إيقاف التوافق (I8e87a، b/287516207)
الإصدار 1.2.0-alpha03
21 حزيران (يونيو) 2023
تم إصدار androidx.window:window-*:1.2.0-alpha03
. يحتوي الإصدار 1.2.0-alpha03 على هذه المراجعات.
الميزات الجديدة
- إزالة واجهات برمجة التطبيقات المتوقّفة نهائيًا من واجهة برمجة التطبيقات
- أضِف واجهات برمجة تطبيقات لتتوافق مع الشاشات المعروضة في الوقت نفسه.
- أضِف موقعًا لإيقاف ميزة إلغاء تغيير الحجم القسري.
- أضِف موقعًا لإيقاف إلغاء الحد الأدنى لنسبة العرض إلى الارتفاع.
- تحسين
ActivityEmbeddingRule
لدعم اختبار الوحدة حول "تضمين النشاط"
تغييرات واجهة برمجة التطبيقات
إصلاح الأخطاء
- إضافة سمة التوافق لإيقاف خيار إلغاء إعادة الحجم بالقوة (Ie7ab1)
- لإزالة
SESSION_STATE_CONTENT_INVISIBLE
من واجهة الإضافات (I6ed19) - تحسين
ActivityEmbeddingRule
لدعم اختبار الوحدة حول تضمين النشاط (I8d6b6) - إضافة سمة التوافق مع إيقاف الميزة لتجاوز الحد الأدنى لنسبة العرض إلى الارتفاع (I66390)
- إزالة واجهات برمجة التطبيقات WindowArea API التي تم إيقافها نهائيًا (Ieb67c)
- أعِد تسمية خاصية حلقة طلب معلومات الاتجاه إلى
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
. (Ie2fbd) - تعديل أسماء الثوابت الخاصة بجلسة منطقة النافذة (I83675)
- إضافة سمة التوافق مع إيقاف الميزة التي تتجاهل حلقة طلب معلومات الاتجاه عند رصدها (I0a7a2)
- أضِف
WindowAreaComponent#STATUS_ACTIVE
للإشارة إلى أنّ الميزة مفعّلة. (I62bc3) - إضافة واجهات برمجة تطبيقات
RearDisplayPresentationMode
(I0401c) - إزالة واجهة برمجة التطبيقات الخاصة بلون الخلفية في الإصدار الثابت (I34c3e)
- إخفاء واجهات برمجة التطبيقات الخاصة بمنطقة النافذة (I39de0)
- أضِف طرقًا لتجاوز
SplitInfo
فيSplitController
. أضِف طرق اختبار لإنشاء اختبار مزدوج لكل منSplitInfo
وActivityStack
. (Icd69f) - اجعل العلامة اختيارية لـ
ActivityRule.Builder
. (Ib0b44) - أزِل
RatioSplitType
وExpandContainersSplit
وHingeSplitType
. عمره الآنSplitType
.- استبدال
#splitEqually()
و#expandContainers()
و#splitByHinge
بقيم ثابتةSplitType SPLIT_TYPE_EQUAL
وSPLIT_TYPE_EXPAND
وSPLIT_TYPE_HINGE
- أزِل وظيفة ضبط نوع النسخ الاحتياطي لنوع التقسيم المرتبط بالإعلانات المتجاوبة. إذا تعذّر تطبيق نوع تقسيم الشاشة على شكل مفصل بسبب حالة الجهاز أو النافذة الحالية، يتم التراجع إلى تقسيم حاوية المهام الرئيسية بالتساوي. استخدِم
SplitController#setSplitAttributesCalculator
لتخصيص نوع التقسيم الاحتياطي. (Ifcc59)
- استبدال
- إيقاف
add
/removeSplitCallback
نهائيًا- نقل
add
/removeSplitCallback
إلىSplitControllerCallbackAdapter
- إضافة دعم
Flow
للحصول على قائمةSplitInfo
(I7f1b6)
- نقل
- إضافة قاعدة اختبارية
ActivityEmbeddingController
(I42e9b) - إعادة تسمية
ActivityOptionsCompat
إلىActivityEmbeddingOptions
(I89301) - أضِف
splitSupportStatus
للإشارة إلى ما إذا كان خيار تضمين النشاط متاحًا. (I10024) - أدخِل
SplitAttributes.BackgroundColor
لتمثيل قيمةDEFAULT
بشكل أفضل. توضيح أنّه لا يمكن استخدام لون خلفية متحركة غير شفاف، لذا سيتم التعامل مع أي ألوان غير شفافة على أنّها الإعداد التلقائي، ما يعني استخدام لون خلفية نافذة المظهر الحالي. (Ic6b95) - استبدِل
alwaysAllow()
وalwaysDisallow()
بـALWAYS_ALLOW
وALWAYS_DISALLOW
. (I3057b) - أضِف واجهات برمجة تطبيقات لكل من
SplitRule
وSplitAttributes
وSplitAttributesCalculator
. (I92d23) - أضِف
TestActivityStack
لإنشاءActivityStack
للاختبار- أضِف
TestSplitInfo
لإنشاءSplitInfo
للاختبار. (I8e779)
- أضِف
- إضافة طريقة لإنشاء
SplitAttributesCalculatorParams
مزيّف حتى يتمكّن المطوّرون من إثبات ملكيةSplitAttributesCalculator
المخصّصة (Id4a6e) - أضِف
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
وWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f).
الإصدار 1.2.0-alpha02
7 حزيران (يونيو) 2023
تم إصدار androidx.window:window-*:1.2.0-alpha02
. يحتوي الإصدار 1.2.0-alpha02 على هذه المراجعات.
الميزات الجديدة
- تعديل واجهة برمجة التطبيقات الاختبارية لتوفير ثابت لميزات الطي غير المحدّدة
- سيؤدي إلغاء الإعداد باستخدام
WindowLayoutInfoPublishRule
إلى إلغاء جميع قيمwindowLayoutInfo
، بما في ذلك واجهة برمجة التطبيقات المستندة إلى السياق.
تغييرات واجهة برمجة التطبيقات
- أضِف ثابتًا لميزة الطي في المنتصف غير المحدّدة. (I7530c)
إصلاح الأخطاء
- عدِّل
WindowLayoutInfoPublishRule
للسماح بعمليات الاستبدال فيWindowLayoutInfo
المستندة إلىContext
. (I2037a)
الإصدار 1.2.0-alpha01
24 أيار (مايو) 2023
تم إصدار androidx.window:window-*:1.2.0-alpha01
. يحتوي الإصدار 1.2.0-alpha01 على هذه المراجعات.
الميزات الجديدة
تحسين اختبار واجهات برمجة التطبيقات المتعلّقة بإدراج الأنشطة وWindowLayoutInfoTracker
تمت ترقية الإصدار ActivityEmbeddingRule
إلى الإصدار الثابت.
تمت ترقية الإصدار WindowMetricsCalculatorRule
إلى الإصدار الثابت.
تم ترقية وظائف المرافق لإنشاء FoldingFeature
للاختبار إلى الإصدار الثابت.
تغييرات واجهة برمجة التطبيقات
- تحسين
ActivityEmbeddingRule
لدعم اختبار الوحدة حول تضمين الأنشطة (I8d6b6) WindowMetrisCalculatorTestRule
هي إصدار ثابت يسمح باستخدام مقاييس العناصر النائبة لاختبارات آلة Java الافتراضية. ننصح باستخدام محاكي للحصول على نتائج دقيقة.- تحسين استقرار واجهات برمجة التطبيقات الاختبارية لواجهة
WindowLayoutInfo
لدعم اختبار آلة Java الافتراضية (Ie036e) - أضِف
IntRange
لقيم ميزة طيّ الاختبار. (I69f7d)
الإصدار 1.1
الإصدار 1.1.0
7 حزيران (يونيو) 2023
تم إصدار androidx.window:window-*:1.1.0
. يحتوي الإصدار 1.1.0 على عمليات الربط هذه.
التغييرات المهمة منذ الإصدار 1.0.0
تضمين الأنشطة
- تمت إضافة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
كسمة منطقية لعلامة<application>
في بيان التطبيق. - تم إيقاف
isSplitSupported
نهائيًا واستبداله بـsplitSupportStatus
لتقديم معلومات أكثر تفصيلاً عن سبب عدم توفّر ميزة التقسيم. - تمت إضافة الصفّ المُدمَج
SplitController.SplitSupportStatus
لتوفير ثوابت الحالة للسمةsplitSupportStatus
. - تم إعادة صياغة
SplitController
إلى عدة وحدات:- وحدة
ActivityEmbeddingController
لواجهات برمجة التطبيقات ذات الصلة بـActivity
أوActivityStack
- تم نقل "
isActivityEmbedded
" من "SplitController
" إلى "ActivityEmbeddingController
". - وحدة
RuleController
للعمليات ذات الصلة بـEmbeddingRule
: - تمّت إزالة
SplitController
واجهة برمجة تطبيقات: clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- تمّت إضافة
RuleController
واجهة برمجة تطبيقات: addRule()
- تُضيف قاعدة أو تعدّل القاعدة التي تحتوي على العلامة نفسها.-
removeRule()
- لإزالة قاعدة من مجموعة القواعد المسجّلة setRules()
- لإنشاء مجموعة من القواعد-
clearRules()
- لإزالة جميع القواعد المسجَّلة parseRules()
- لتحليل القواعد من تعريفات قواعد XML
- وحدة
- تتطلّب جميع الوحدات إعداد سياق باستخدام طريقة
#getInstance()
، بما في ذلك:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- تمت إضافة فئة
EmbeddingAspectRatio
لتحديد ثوابت السلوك التي تشبه التعداد ذات الصلة بنسبة عرض إلى ارتفاع الشاشة. - تمت إضافة الفئة
SplitAttributes
لتحديد تنسيق التقسيم. - تمت إضافة
SplitAttributes
دالة حاسبة إلىSplitController
لتخصيص تنسيقات التقسيم:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
للتحقّق مما إذا كانت واجهات برمجة التطبيقاتSplitAttributesCalculator
متوافقة مع الجهاز
- تمت إضافة حقل
EmbeddingRule#tag
. - تحديثات واجهة برمجة التطبيقات في
SplitRule
:- تمّت إضافة
defaultSplitAttributes
: لتحديد تنسيق التقسيم التلقائي، ويحلّ محلّsplitRatio
وlayoutDirection
. - تمت إضافة ترجمة سمتَي XML
splitRatio
وsplitLayoutDirection
إلىdefaultSplitAttributes
. - تم تغيير تعريفات الحد الأدنى للسمات لاستخدام وحدات البكسل المستقلة الكثافة (dp) بدلاً من وحدات البكسل.
- تمت إضافة
minHeightDp
بالقيمة التلقائية 600dp. - تم تغيير
minWidth
إلىminWidthDp
بالقيمة التلقائية 600dp. - تم تغيير
minSmallestWidth
إلىminSmallestWidthDp
مع القيمة التلقائية 600dp. - تمت إضافة
maxAspectRatioInHorizontal
بالقيمة التلقائيةALWAYS_ALLOW
. - تمت إضافة
maxAspectRatioInPortrait
بالقيمة التلقائية 1.4. - تمّ تحديد فئة
FinishBehavior
متداخلة لاستبدال الثوابت المتعلّقة بسلوك الانتهاء. - تم تطبيق تغييرات السمة على فئة Builder المدمجة من
SplitPairRule
وSplitPlaceholderRule
.
- تمّت إضافة
- تم استبدال
SplitInfo#getSplitRatio()
بـSplitInfo#getSplitAttributes()
لتقديم معلومات إضافية متعلقة بالقسمة.
WindowLayout
- تمت إضافة ميزة تجريبية تتيح استخدام سياق واجهة المستخدم غير المرتبط بالأنشطة في
WindowInfoTracker
. - تمت إضافة سياق تجريبي لواجهة المستخدم غير المرتبط بالأنشطة إلى
WindowMetricsCalculator
.
خطوات نقل البيانات
- لتفعيل تضمين الأنشطة لعرض الأنشطة في الأقسام، يجب أن تضيف التطبيقات السمة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
إلى علامة البيان<application>
:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
يتيح ذلك للنظام تحسين سلوكيات التقسيم لتطبيق معيّن مسبقًا. - نسبة
SplitInfo
- تحقَّق مما إذا كان التقسيم الحالي مُجمَّعًا:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- تحقَّق من النسبة الحالية:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- تحقَّق مما إذا كان التقسيم الحالي مُجمَّعًا:
- عمليات نقل SplitController:
- تم تغيير
SplitController.getInstance()
إلىSplitController.getInstance(Context)
. - تم تغيير
SplitController.initialize(Context, @ResId int)
إلىRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. - تم تغيير
SplitController.getInstance().isActivityEmbedded(Activity)
إلىActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. - تم تغيير
SplitController.getInstance().registerRule(rule)
إلىRuleController.getInstance(Context).addRule(rule)
. - تم تغيير
SplitController.getInstance().unregisterRule(rule)
إلىRuleController.getInstance(Context).removeRule(rule)
. - تم تغيير
SplitController.getInstance().clearRegisteredRules()
إلىRuleController.getInstance(Context).clearRules()
. - تم تغيير
SplitController.getInstance().getSplitRules()
إلىRuleController.getInstance(Context).getRules()
.
- تم تغيير
- عمليات نقل بيانات المواقع الإلكترونية على
SplitRule
:- يستخدم
minWidth
وminSmallestWidth
الآن وحدات dp بدلاً من وحدات البكسل. يمكن للتطبيقات استخدام الطلب التالي:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
أو ببساطة قسمةminWith
بالبكسل علىdisplayMetrics#density
.
- يستخدم
- يجب نقل ثوابت سلوك الانتهاء إلى
FinishBehavior
ثوابت فئة تشبه التعداد:- تم تغيير
FINISH_NEVER
إلىFinishBehavior.NEVER
. - تم تغيير
FINISH_ALWAYS
إلىFinishBehavior.ALWAYS
. - تم تغيير
FINISH_ADJACENT
إلىFinishBehavior.ADJACENT
.
- تم تغيير
- يجب نقل اتجاه التنسيق إلى
SplitAttributes.LayoutDirection
:- تم تغيير
ltr
إلىSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. - تم تغيير
rtl
إلىSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. - تم تغيير
locale
إلىSplitAttributes.LayoutDirection.LOCALE
. - يجب نقل
splitRatio
إلىSplitAttributes.SplitType.ratio(splitRatio)
.
- تم تغيير
SplitPairRule.Builder
عمليات نقل البيانات:- تم تغيير
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
إلىkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
- تغيير
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
إلىkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- يقبل كلّ من
setFinishPrimaryWithSecondary
وsetFinishSecondaryWithPrimary
الثوابت التي تشبه القائمةFinishBehavior
. راجِع "عمليات نقل بيانات SplitRule" للاطّلاع على التفاصيل. - استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض الأقسام على الأجهزة التي تعمل في الوضع العمودي.
- تم تغيير
SplitPlaceholder.Builder
عمليات نقل البيانات:- تحتوي على المَعلمتَين
filters
وplaceholderIntent
فقط. يتم نقل السمات الأخرى إلى أدوات الإعداد. اطّلِع على "عمليات نقل SplitPairRule.Builder" للاطّلاع على التفاصيل. - يأخذ
setFinishPrimaryWithPlaceholder
الثوابت التي تشبه القائمةFinishBehavior
. راجِع "عمليات نقل بيانات SplitRule" للاطّلاع على التفاصيل. - تم تغيير
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
إلى:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض الأقسام على الأجهزة التي تعمل في الوضع العمودي.
- تحتوي على المَعلمتَين
الإصدار 1.1.0-rc01
10 أيار (مايو) 2023
تم إصدار androidx.window:window-*:1.1.0-rc01
. يحتوي الإصدار 1.1.0-rc01 على هذه المراجعات.
الميزات الجديدة
- إصدار
ActivityEmbedding
كواجهة برمجة تطبيقات ثابتة - إصلاحات أخطاء متنوّعة
الإصدار 1.1.0-beta02
5 نيسان (أبريل) 2023
تم إصدار androidx.window:window-*:1.1.0-beta02
. يحتوي الإصدار 1.1.0-beta02 على هذه المراجعات.
الميزات الجديدة
- إصلاحات داخلية وإزالة الملفات غير الضرورية
الإصدار 1.1.0-beta01
22 آذار (مارس) 2023
تم إصدار androidx.window:window-*:1.1.0-beta01
. يحتوي الإصدار 1.1.0-beta01 على هذه المراجعات.
تضمين الأنشطة
- تمت إضافة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
كسمة منطقية لعلامة<application>
في بيان التطبيق. - تم إيقاف
isSplitSupported
نهائيًا واستبداله بـsplitSupportStatus
لتقديم معلومات أكثر تفصيلاً عن سبب عدم توفّر ميزة التقسيم. - تمت إضافة الصفّ المُدمَج
SplitController.SplitSupportStatus
لتوفير ثوابت الحالة للسمةsplitSupportStatus
. - تم إعادة صياغة
SplitController
إلى عدة وحدات:- وحدة
ActivityEmbeddingController
لواجهات برمجة التطبيقات ذات الصلة بـActivity
أوActivityStack
- تم نقل "
isActivityEmbedded
" من "SplitController
" إلى "ActivityEmbeddingController
". - وحدة
RuleController
للعمليات ذات الصلة بـEmbeddingRule
: - واجهات برمجة التطبيقات التي تمّت إزالتها:
clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
SplitController
- تمت إضافة
RuleController
واجهات برمجة تطبيقات:addRule()
- لإضافة قاعدة أو تعديل القاعدة التي تحتوي على العلامة نفسها-
removeRule()
- لإزالة قاعدة من مجموعة القواعد المسجّلة setRules()
- لإنشاء مجموعة من القواعد-
clearRules()
- لإزالة جميع القواعد المسجَّلة - `parseRules() - لتحليل القواعد من تعريفات قواعد XML
- وحدة
- تتطلّب جميع الوحدات إعداد سياق باستخدام طريقة
#getInstance()
، بما في ذلك:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- تمت إضافة فئة
EmbeddingAspectRatio
لتحديد ثوابت السلوك التي تشبه التعداد ذات الصلة بنسبة عرض إلى ارتفاع الشاشة. - تمت إضافة الفئة
SplitAttributes
لتحديد تنسيق التقسيم. - تمت إضافة
SplitAttributes
دالة حاسبة إلىSplitController
لتخصيص تنسيقات التقسيم:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
للتحقّق مما إذا كانت واجهات برمجة التطبيقات SplitAttributesCalculator متوافقة مع الجهاز
- تمت إضافة حقل
EmbeddingRule#tag
. - تحديثات واجهة برمجة التطبيقات في
SplitRule
:- تمّت إضافة
defaultSplitAttributes
: لتحديد تنسيق التقسيم التلقائي، ويحلّ محلّsplitRatio
وlayoutDirection
. - تمت إضافة ترجمة سمتَي XML
splitRatio
وsplitLayoutDirection
إلىdefaultSplitAttributes
. - تم تغيير تعريفات الحد الأدنى للسمات لاستخدام وحدات البكسل المستقلة الكثافة (dp) بدلاً من وحدات البكسل.
- تمت إضافة
minHeightDp
بالقيمة التلقائية 600dp. - تم تغيير
minWidth
إلىminWidthDp
بالقيمة التلقائية 600dp. - تم تغيير
minSmallestWidth
إلىminSmallestWidthDp
مع القيمة التلقائية 600dp. - تمت إضافة
maxAspectRatioInHorizontal
بالقيمة التلقائيةALWAYS_ALLOW
. - تمت إضافة
maxAspectRatioInPortrait
بالقيمة التلقائية1.4
. - تمّ تحديد فئة
FinishBehavior
متداخلة لاستبدال الثوابت المتعلّقة بسلوك الانتهاء. - تم تطبيق تغييرات السمة على الصفّ المُدمَج
Builder
من الصفّينSplitPairRule
وSplitPlaceholderRule
.
- تمّت إضافة
- تم استبدال
SplitInfo#getSplitRatio()
بـSplitInfo#getSplitAttributes()
لتقديم معلومات إضافية متعلقة بالقسمة.
WindowLayout
- تمت إضافة ميزة دعم سياق واجهة المستخدم غير المتعلّق بالنشاط إلى
WindowInfoTracker
. - تمت إضافة سياق واجهة مستخدم غير مرتبط بالنشاط إلى
WindowMetricsCalculator
.
خطوات نقل البيانات
- لتفعيل تضمين الأنشطة لعرض الأنشطة في الأقسام، يجب أن تضيف التطبيقات السمة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
إلى علامة البيان<application>
:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
يتيح ذلك للنظام تحسين سلوكيات التقسيم لتطبيق معيّن مسبقًا. - نسبة
SplitInfo
- تحقَّق مما إذا كان التقسيم الحالي مُجمَّعًا:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- تحقَّق من النسبة الحالية:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- تحقَّق مما إذا كان التقسيم الحالي مُجمَّعًا:
SplitController
عمليات نقل البيانات:- تم تغيير
SplitController.getInstance()
إلىSplitController.getInstance(Context)
. SplitController.initialize(Context, @ResId int)
يتغيّر إلىRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.- تم تغيير
SplitController.getInstance().isActivityEmbedded(Activity)
إلىActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. - تم تغيير
SplitController.getInstance().registerRule(rule)
إلىRuleController.getInstance(Context).addRule(rule)
. - تم تغيير
SplitController.getInstance().unregisterRule(rule)
إلىRuleController.getInstance(Context).removeRule(rule)
. - تم تغيير
SplitController.getInstance().clearRegisteredRules()
إلىRuleController.getInstance(Context).clearRules()
. - تم تغيير
SplitController.getInstance().getSplitRules()
إلىRuleController.getInstance(Context).getRules()
.
- تم تغيير
- عمليات نقل بيانات المواقع الإلكترونية على
SplitRule
:- يستخدم
minWidth
وminSmallestWidth
الآن وحدات dp بدلاً من وحدات البكسل. يمكن للتطبيقات استخدام الطلب التالي:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
أو ببساطة قسمةminWith
بالبكسل علىdisplayMetrics#density
.
- يستخدم
- يجب نقل ثوابت سلوك الانتهاء إلى
FinishBehavior
ثوابت فئة تشبه التعداد:- تم تغيير
FINISH_NEVER
إلىFinishBehavior.NEVER
. - تم تغيير
FINISH_ALWAYS
إلىFinishBehavior.ALWAYS
. - تم تغيير
FINISH_ADJACENT
إلىFinishBehavior.ADJACENT
.
- تم تغيير
- يجب نقل اتجاه التنسيق إلى
SplitAttributes.LayoutDirection
:- تم تغيير
ltr
إلىSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. - تم تغيير
rtl
إلىSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. - تم تغيير
locale
إلىSplitAttributes.LayoutDirection.LOCALE
. - يجب نقل
splitRatio
إلىSplitAttributes.SplitType.ratio(splitRatio)
.
- تم تغيير
SplitPairRule.Builder
عمليات نقل البيانات:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
يتغيّر إلىkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
يتغيّران إلىkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- يقبل كلّ من
setFinishPrimaryWithSecondary
وsetFinishSecondaryWithPrimary
الثوابت التي تشبه القائمةFinishBehavior
. راجِع "عمليات نقل بيانات SplitRule" للاطّلاع على التفاصيل. - استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض الأقسام على الأجهزة التي تعمل في الوضع العمودي.
SplitPlaceholder.Builder
عمليات نقل البيانات:- تحتوي على المَعلمتَين
filters
وplaceholderIntent
فقط. يتم نقل السمات الأخرى إلى أدوات الإعداد. اطّلِع على "عمليات نقل SplitPairRule.Builder" للاطّلاع على التفاصيل. - يأخذ
setFinishPrimaryWithPlaceholder
الثوابت التي تشبه القائمةFinishBehavior
. راجِع "عمليات نقل بيانات قواعد تقسيم الأرباح" للاطّلاع على التفاصيل. - تم تغيير
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
إلى:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض الأقسام على الأجهزة التي تعمل في الوضع العمودي.
- تحتوي على المَعلمتَين
الإصدار 1.1.0-alpha06
22 شباط (فبراير) 2023
تم إصدار androidx.window:window-*:1.1.0-alpha06
. يحتوي الإصدار 1.1.0-alpha06 على هذه المراجعات.
الميزات الجديدة
- عرض إصدار تجريبي من الحصول على
WindowLayoutInfo
من سياق واجهة المستخدم
تغييرات واجهة برمجة التطبيقات
- أضِف
splitSupportStatus
للإشارة إلى ما إذا كان خيار تضمين النشاط متاحًا. (I10024) - اجعل واجهة برمجة التطبيقات UI Context
WindowLayoutInfo
تجريبية. (I58ee0) - يعرِض هذا القسم
WindowAreaController
وواجهات برمجة التطبيقات لتفعيل وضعRearDisplay
من أجل نقل النافذة الحالية إلى الشاشة التي تكون محاذية للكاميرا الخلفية. (Iffcbf) - عدِّل لون الخلفية التلقائي. (I1ac1b)
- أضِف مَعلمات
SplitAttributes
. (I18bdd) - أضِف واجهات برمجة تطبيقات لكل من
SplitRule
وSplitAttributes
وSplitAttributesCalculator
. (I92d23) - تحسين واجهات برمجة التطبيقات في ما يتعلّق
maxAspectRatio
:- استبدِل
alwaysAllow()
وalwaysDisallow()
بـALWAYS_ALLOW
وALWAYS_DISALLOW
. - تعديل مستندات واجهة برمجة التطبيقات الخاصة بـ @see باستخدام مستندات مستقلة (I3057b)
- استبدِل
- تتم إزالة وظائف الإنشاء التالية من واجهات برمجة التطبيقات العامة لأنّه من المفترض ألا تطلب التطبيقات استدعاؤها.
SplitInfo
طريقة وضع التصميمActivityStack
المنشئ (Ide534)
- أصبح
SplitRule
يأخذmaxAspectRatioInPortrait/Landscape
الآن. لا يسمح هذا الخيار بتقسيم الأنشطة إلا عندما تكون نسبة العرض إلى الارتفاع لحدود العنصر الرئيسي أصغر أو مساوية للنسبةmaxAspectRatio
المطلوبة. (Ia5990) - تغيير
RuleController#parseRules
ليصبح ثابتًا (I785df) - تحسين واجهات برمجة التطبيقات المتعلّقة بـ ActivityEmbedding
- مواءمة عملية تسمية واجهة برمجة التطبيقات: استخدِم إضافة/إزالة لحالات متعددة:
- تم تغيير
registerRule
إلىaddRule
- تم تغيير
unregisterRule
إلىremoveRule
. - استبدِل
getSplitRules
بـgetRules
لأنّActivityRule
ليست قاعدة تقسيم. - أضِف
RuleController#setRules
لضبط مجموعة من القواعد. - استخرِج واجهات برمجة التطبيقات ذات الصلة بالقاعدة من
SplitController
إلى العنصر الفرديRuleController
. وهم: addRule
removeRule
getRules
setRules
clearRules
parseRules
- استخرِج
#isActivityEmbedded
منSplitController
إلى العنصر الفرديActivityEmbeddingController
. وهم: isActivityEmbedded
- أزِل
SplitController#initialize
. لضبط القواعد من ملف XML، يُرجى استخدامRuleController#parseRules
و#setRules
. قبل هذا التغيير:SplitController.initialize(context, R.xml.static_rules)
بعد هذا التغيير:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- لم نعُد نفرّق بين القواعد الثابتة وقواعد وقت التشغيل. ومع ذلك، يؤدي استدعاء
#clearRules
إلى محو جميع القواعد بغض النظر عمّا إذا كانت مسجّلة باستخدام تعريفات قواعد XML ثابتة أو أثناء التشغيل. للحصول على السلوك القديم لـSplitController#clearRegisteredRules
، يُرجى الاتصال بـRuleController#parseRules
باستخدام معرّف موارد XML والاتصال بـRuleController#setRules
لإعادة ضبط القواعد مرة أخرى. قبل هذا التغيير:SplitController.getInstance(context).clearRegisteredRules()
بعد هذا التغيير:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- تحسين واجهات برمجة التطبيقات SplitRule:
- يجب استخدام الحد الأدنى للأبعاد بالنقاط بدلاً من البكسل لـ
SplitRule
. - إعادة صياغة
SplitRule
Builder لجعل الحد الأدنى من السمات اختياريًا (I95f17)
- يجب استخدام الحد الأدنى للأبعاد بالنقاط بدلاً من البكسل لـ
- تمرير سياق لإعداد
SplitController
(I42549) - تمت إعادة تسمية
SplitRule#layoutDir
إلى#layoutDirection
وSplitRule Builder#setLayoutDir
إلىBuilder#setLayoutDirection
. (I3f6d1)
الإصدار 1.1.0-alpha04
9 تشرين الثاني (نوفمبر) 2022
تم إصدار androidx.window:window-*:1.1.0-alpha04
. يحتوي الإصدار 1.1.0-alpha04 على هذه المراجعات.
الميزات الجديدة
- اعرض طريقة لتحديد ما إذا كان
ActivityStack
فارغًا لـActivityEmbedding
. - تمت إزالة علامات واجهة برمجة التطبيقات التجريبية من واجهات برمجة تطبيقات
ActivityEmbedding
. - إخفاء أداة إنشاء
ActivityRule
لأنّBuilder
هي الطريقة المفضّلة لإنشاء العنصر - أضِف طريقة تجريبية للحصول على
WindowInsets
فيWindowMetrics
. - عليك تعديل
SplitPlaceholderFinishBehavior
لمنع إنهاء العنصر النائب. أدّى إنهاء العنصر النائب إلى حدوث بعض السلوكيات المربكة.
تغييرات واجهة برمجة التطبيقات
- اجعل val
isEmpty
متاحًا للجميع لاستبدال funisEmpty
. - أعِد تسمية أنشطة مَعلمة
ActivityStack
إلىactivitiesInProcess
. (Ia5055) - أزِل
ActivityFilter#matchesClassName
وActivityFilter#matchesClassNameOrWildCard
لأنّهما مربكان. - أضِف
ActivityFilter#componentName
وActivityFilter#intentAction
للسماح للمتصل بالتمييز بين الفلاتر المختلفة (I41f22). - إزالة واجهات برمجة تطبيقات
@Deprecated
من واجهة برمجة التطبيقات التجريبية (I216b3) - إزالة
@ExperimentalWindowApi
لواجهات برمجة التطبيقات الخاصة بإدراج الأنشطة (I69ebe) - إخفاء أداة إنشاء
ActivityRule
، واستخدام أداة Builder بدلاً منها (If4eb6) - أضِف واجهات برمجة التطبيقات للتحقّق مما إذا كان النشاط جزءًا من
ActivityFilter
. (Ia43cf) - تعديل ملفات واجهة برمجة التطبيقات لتعكس التغييرات في فئتَي
WindowMetrics
وWindowMetricsCalculatorCompat
(I667fe) - تعديل ملف Javadoc الخاص بموقع
ActivityEmbedding
واسم الفئة (Ia1386) - إضافة أسماء علامات المواقع
ActivityEmbedding
لاستخدامها في ملف AndroidManifest.xml (Id1ad4) - تمت إضافة واجهتَي برمجة التطبيقات
SplitPlaceholderFinishBehavior
وSplitPlaceholderRule.finishPrimaryWithPlaceholder
الجديدتَين، وهذا يحلّ محلّ واجهة برمجة التطبيقاتSplitPlaceholderRule.finishPrimaryWithSecondary
الحالية التي تحدّد وقت انتهاء الأنشطة النائبة وطريقة تصرف الأنشطة المرتبطة في ميزة "تضمين الأنشطة". (I64647)
إصلاح الأخطاء
- يعرِض هذا القسم
WindowAreaController
وواجهات برمجة التطبيقات لتفعيل وضعRearDisplay
من أجل نقل النافذة الحالية إلى الشاشة التي تكون محاذية للكاميرا الخلفية. (I388ab)
الإصدار 1.1.0-alpha03
27 تموز (يوليو) 2022
تم إصدار androidx.window:window-*:1.1.0-alpha03
. يحتوي الإصدار 1.1.0-alpha03 على هذه المراجعات.
الميزات الجديدة
- عدِّل القيم التلقائية لقواعد التضمين.
تغييرات واجهة برمجة التطبيقات
- عدِّل القيم التلقائية لخصائص قاعدة التضمين. (Ic4d35)
الإصدار 1.1.0-alpha02
11 أيار (مايو) 2022
تم إصدار androidx.window:window-*:1.1.0-alpha02
. يحتوي الإصدار 1.1.0-alpha02 على هذه المراجعات.
الميزات الجديدة
- طرح مكتبات المحوِّل لتتوافق مع Java وRxJava
الإصدار 1.1.0-alpha01
11 أيار (مايو) 2022
تم إصدار androidx.window:window-*:1.1.0-alpha01
. يحتوي الإصدار 1.1.0-alpha01 على هذه المراجعات.
الميزات الجديدة
- إصدار محولات متوافقة مع java وRxJava
الإصدار 1.1.0-alpha01
20 نيسان (أبريل) 2022
تم إصدار androidx.window:window:1.1.0-alpha01
. يحتوي الإصدار 1.1.0-alpha01 على هذه المراجعات.
الميزات الجديدة
- إصلاح خطأ يؤدي إلى إيقاف ميزات الطي عند تشغيل التطبيق في الخلفية
- توسيع نطاق واجهة برمجة التطبيقات التجريبية ActivityEmbedding API
تغييرات واجهة برمجة التطبيقات
- واجهة برمجة تطبيقات عامة للتحقّق مما إذا كان يتم تضمين نشاط (I39eb7)
إصلاح الأخطاء
- إضافة واجهات برمجة تطبيقات لتخصيص سلوك الانتهاء للحاويات في عمليات تقسيم الأنشطة (I1a1e4)
- تمت إضافة خيار إعداد جديد لقواعد تقسيم النشاط. (Iec6af)
الإصدار 1.0
الإصدار 1.0.0
26 كانون الثاني (يناير) 2022
تم إصدار androidx.window:window-*:1.0.0
. يحتوي الإصدار 1.0.0 على عمليات الربط هذه.
الميزات الرئيسية في الإصدار 1.0.0
- التوافق مع الهواتف القابلة للطي من طراز
WindowInfoTracker
وFoldingFeature
WindowMetricsCalculator
للمساعدة في احتساب WindowMetrics الحالية
الإصدار 1.0.0-rc01
15 كانون الأول (ديسمبر) 2021
تم إصدار androidx.window:window-*:1.0.0-rc01
. يحتوي الإصدار 1.0.0-rc01 على هذه المراجعات.
الميزات الجديدة
- إتاحة استخدام الهواتف القابلة للطي من خلال
WindowInfoTracker
- أضِف طرقًا لاحتساب الحد الأقصى والحد الأدنى لقيمة
WindowMetrics
. - أضِف واجهات برمجة تطبيقات اختبارية داعمة.
الإصدار 1.0.0-beta04
17 تشرين الثاني (نوفمبر) 2021
تم إصدار androidx.window:window-*:1.0.0-beta04
. يحتوي الإصدار 1.0.0-beta04 على هذه المراجعات.
الميزات الجديدة
- أعِد تسمية WindowInfoRepository إلى WindowInfoTracker.
- اجعل Activity عنصرًا تابعًا لطريقة صريحة في WindowInfoTracker.
- أضِف TestRule بسيطًا لـ WindowMetricsCalculator لدعم المطوّرين الذين يستخدمون Robolectric.
تغييرات واجهة برمجة التطبيقات
- استخراج الإضافات (I25a5f)
- إضافة isEmpty في ActivityStack (I5a4e6)
- أعِد تسمية WindowInfoRepository إلى WindowInfoTracker.
- عدِّل تبعيات java/rxjava/testing لتتطابق. (I0da63)
- أضِف قاعدة اختبار لواحدة من أدوات WindowMetricsCalculator البسيطة. (Ibacdb)
الإصدار 1.0.0-beta03
27 تشرين الأول (أكتوبر) 2021
تم إصدار androidx.window:window-*:1.0.0-beta03
. يحتوي الإصدار 1.0.0-beta03 على هذه المراجعات.
الميزات الجديدة
- إضافة واجهات برمجة التطبيقات التجريبية لإدراج الأنشطة يسمح إصدار التنسيق الأولي هذا بعرض نشاطَين جنبًا إلى جنب.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة currentWindowMetrics API لأنّنا لا يمكننا توفيرها بدقة. يُرجى استخدام WindowMetricsCalculator بدلاً من ذلك (Icda5f).
- تم تعديل واجهة برمجة التطبيقات الخاصة بالإضافات. (Ica92b)
- تمت إضافة واجهة لميزة جديدة تتيح تضمين الأنشطة وعرضها جنبًا إلى جنب ضمن نافذة مهمة الرئيسية. (I5711d)
- تم إخفاء وظائف الإنشاء لـ WindowMetrics وWindowLayoutInfo، يُرجى استخدام واجهات برمجة تطبيقات الاختبار بدلاً من ذلك. (I5a1b5)
- أضِف واجهة برمجة تطبيقات لإنشاء عناصر WindowLayoutInfo وهمية. (I4a2fd)
إصلاح الأخطاء
- تم إصلاح تسرّب الذاكرة. (I3fc79، b/202989046)
الإصدار 1.0.0-beta02
1 أيلول (سبتمبر) 2021
تم إصدار androidx.window:window-*:1.0.0-beta02
. يحتوي الإصدار 1.0.0-beta02 على هذه المراجعات.
الميزات الجديدة
- أضِف تعليقًا توضيحيًا تجريبيًا لإضافة تعليقات توضيحية إلى واجهات برمجة التطبيقات التجريبية. (I9f1b6)
- أضِف طريقة اختبار لإنشاء FoldingFeature اختباري يقبل Rect. سيسهّل ذلك الاختبار عند استخدام Robolectric بدلاً من Activity فعلي. (Id1cca)
الإصدار 1.0.0-beta01
18 آب (أغسطس) 2021
تم إصدار androidx.window:window-*:1.0.0-beta01
. يحتوي الإصدار 1.0.0-beta01 على هذه المراجعات.
الميزات الجديدة
- تمت إزالة الثوابت القديمة وتحويل
FoldingFeature
إلى واجهة.
تغييرات واجهة برمجة التطبيقات
- أزِل الثوابت القديمة واجعل FoldFeature واجهة. (I9a2d5)
إصلاح الأخطاء
- تم ترقية المكتبات التي تعتمد على مكتبة
Test Core
إلى الإصدار1.4.0
، وستتوافق الآن مع الإصدار S من منصة Android. (I88b72، b/189353863)
الإصدار 1.0.0-alpha10
4 آب (أغسطس) 2021
تم إصدار androidx.window:window-*:1.0.0-alpha10
. يحتوي الإصدار 1.0.0-alpha10 على هذه المراجعات.
الميزات الجديدة
- عليك إعادة تسمية WindowInfoRepo إلى WindowInfoRepository وتعديل الفئات أو الملفات المقابلة.
- حوِّل مقاييس النوافذ الحالية إلى مسار في WindowInfoRepository لأنّ القيمة تتغيّر بمرور الوقت.
- إعادة تسمية WindowInfoRepoJavaAdapter إلى WindowInfoRepoCallbackAdapter
- إضافة طريقة مساعدة لإنشاء كائنات FoldingFeature اختبارية
- عدِّل الحِزم لتجميع الفئات استنادًا إلى الميزة التي توفّرها.
تغييرات واجهة برمجة التطبيقات
- إعادة تسمية ActivityExt إلى ActivityExtensions تغيير من Repo إلى Repository (I61a16)
- تعديل الحِزم للفصول (I23ae2)
- إزالة WindowMetrics من WindowInfoRepo (I24663)
- أزِل WindowManager واستخدِم WindowInfoRepo
- اجعل WindowBackend داخليًا. (I06d9a)
- حوِّل مقاييس الفترة إلى "مسار الإحالة الناجحة".
- إعادة تسمية محوِّل Java إلى WindowInfoRepoCallbackAdapter
- أزِل callbackFlow حتى لا يتم استخدام أي واجهات برمجة تطبيقات تجريبية. (Ia4d15)
- أضِف طريقة مساعدة لإنشاء ميزات عرض الاختبار.
- التغيير من occlusionMode إلى occlusionType (If4cff)
إصلاح الأخطاء
- إصلاح خطأ Proguard الذي كان يحدث عند إزالة المكتبة الأساسية
- إصلاح خطأ عدم إرسال WindowLayoutInfo إلى المشتركين الإضافية
- إصلاح خطأ تعذُّر بدء تحديثات ميزة الطي عند إجراء تغييرات على الإعدادات
الإصدار 1.0.0-alpha09
30 حزيران (يونيو) 2021
تم إصدار androidx.window:window-*:1.0.0-alpha09
. يحتوي الإصدار 1.0.0-alpha09 على هذه المراجعات.
الميزات الجديدة
- غيِّر من الثوابت الصحيحة إلى قوائم أرقام غير محدودة.
- أضِف أداة اختبار لإنشاء ميزات طي الاختبار.
تغييرات واجهة برمجة التطبيقات
- أضِف طريقة مساعدة لإنشاء ميزات عرض الاختبار. (I3cf54)
- تغيير النسبة المئوية لطرح الإصدار من
occlusionMode
إلىocclusionType
- تغيير النسبة المئوية لطرح الإصدار من
إصلاح الأخطاء
- بث القيمة الأولية عند إضافة مستخدِمين متعدّدين لمصادر البيانات
الإصدار 1.0.0-alpha08
16 حزيران (يونيو) 2021
تم إصدار androidx.window:window-*:1.0.0-alpha08
. يحتوي الإصدار 1.0.0-alpha08 على هذه المراجعات.
الميزات الجديدة
- تم إصدار عنصر اختبار لتسهيل الاختبار عند استخدام WindowInfoRepository. استخدِم WindowInfoRepository للحصول على معلومات عن DisplayFeatures وWindowMetrics. (I57f66، Ida620)
الإصدار 1.0.0-alpha07
2 حزيران (يونيو) 2021
تم إصدار androidx.window:window-*:1.0.0-alpha07
. يحتوي الإصدار 1.0.0-alpha07 على هذه المراجعات.
الميزات الجديدة
- نقل مكتبة النوافذ الأساسية إلى Kotlin سيتم استخدام الدوال المتزامنة ودوال التعليق لعرض البيانات غير المتزامنة من الآن فصاعدًا.
- أضِف WindowInfoRepo كنقطة التفاعل الرئيسية للحصول على WindowMetrics وبث WindowLayoutInfo.
- عنصر
window-java
جديد لعرض واجهات برمجة تطبيقات متوافقة مع Java لتسجيل عمليات تسجيل الإحالات الخلفية وإلغاء تسجيلها - عناصر
window-rxjava2
وwindow-rxjava3
جديدة لعرض واجهات برمجة التطبيقات المتوافقة مع RxJava
تغييرات واجهة برمجة التطبيقات
- أضِف
WindowServices
لتوفير التبعيات بشكلٍ موحّد.- إضافة واجهة برمجة تطبيقات مستندة إلى coroutine لاستخدام معلومات تنسيق النافذة (Iab70f)
- نقل مكتبة "مدير النوافذ" الأساسية إلى Kotlin (Icca34)
إصلاح الأخطاء
- أضِف فئة بيانات جديدة لتمثيل حدود العناصر. (I6dcd1)
الإصدار 1.0.0-alpha06
5 أيار (مايو) 2021
تم إصدار androidx.window:window:1.0.0-alpha06
. يحتوي الإصدار 1.0.0-alpha06 على هذه المراجعات.
الميزات الجديدة
- لقد بدأنا عملية نقل البيانات إلى Kotlin وسننتهي منها في الإصدار التالي.
- تمت إزالة DeviceState من واجهة برمجة التطبيقات المتاحة للجميع، لذا يُرجى استخدام FoldingFeature بدلاً منها.
- لقد أزلنا
STATE_FLIPPED
من حالات FoldingFeature لأنّها غير متوافقة مع أي حالة استخدام في الوقت الحالي. - وأزلنا أيضًا واجهات برمجة تطبيقات أخرى متوقّفة نهائيًا.
تغييرات واجهة برمجة التطبيقات
- إضافة Kotlin كتبعية
- نقل المكتبة الأساسية إلى Kotlin (Idd995)
- تمت إزالة
DisplayFeature
صانع المحتوى. (I61fa4) - تمت إزالة
DeviceState
من واجهة برمجة التطبيقات المتاحة للجميع، ويمكنك استخدامFoldingFeature
بدلاً منها. (Id6079) - إزالة طلب إعادة الاتصال بحالة الجهاز من الإضافات (I5ea83)
- أزِل
STATE_FLIPPED
من FoldingFeature. (I9c4e1) - أزِل طرق التسجيل التي تم إيقافها نهائيًا. (Ib381b)
الإصدار 1.0.0-alpha05
24 آذار (مارس) 2021
تم إصدار androidx.window:window:1.0.0-alpha05
. يحتوي الإصدار 1.0.0-alpha05 على هذه المراجعات.
الميزات الجديدة
أضفنا طرقًا سهلة الاستخدام إلى FoldingFeature حتى تتمكّن التطبيقات من معرفة ما إذا كانت الميزة تفصل أو تحجب الشاشة وتحديد اتجاه المفصل. سنخفي أيضًا نوع المفصل لكي
نحن بصدد إزالة طرق القراءة المتزامنة من WindowManager. إنّ طرق القراءة المتزامنة معرّضة للخطأ لأنّ هناك شرط تسابق ضمنيًا. سجِّل المستمعين وعمليات ردّ الاتصال لتلقّي آخر المعلومات عن WindowLayoutInfo.
تغييرات واجهة برمجة التطبيقات
- إضافة طرق ملائمة للعمل مع FoldingFeatures (Ie733f)
- إزالة طرق القراءة المتزامنة من WindowManager (I96fd4)
الإصدار 1.0.0-alpha04
10 آذار (مارس) 2021
تم إصدار androidx.window:window:1.0.0-alpha04
. يحتوي الإصدار 1.0.0-alpha04 على هذه المراجعات.
الميزات الجديدة
- إصلاح خطأ يؤدي إلى عدم إصدار WindowLayoutInfo في حال عدم تنفيذ الشركة المصنّعة للجهاز الآن نُرسل عنصر WIndowLayoutInfo فارغًا.
- إصلاح خلل تعذُّر تحديث الحالة بشكل صحيح في حال تغيّرت حالة المفصل أثناء تشغيل التطبيق في الخلفية من المفترض أن تكون الحالة متّسقة الآن.
- تعديل ملفات Proguard لتجاهل التحذيرات الواردة من تبعيات وقت التشغيل
إصلاح الأخطاء
- إخراج قيمة فارغة عند عدم توفّر مكتبة المصنّع الأصلي للجهاز (Ide935)
الإصدار 1.0.0-alpha03
18 شباط (فبراير) 2021
تم إصدار androidx.window:window:1.0.0-alpha03
. يحتوي الإصدار 1.0.0-alpha03 على هذه المراجعات.
الميزات الجديدة
- أرسِل قيمة فارغة لـ WindowLayoutInfo عندما يكون تطبيق المصنّع الأصلي للجهاز فارغًا. من المفترض أن يسهّل ذلك استخدام المكتبة على المزيد من الأجهزة. بما أنّ واجهات برمجة التطبيقات غير متزامنة، لا يزال من المستحسن أن تكتب التطبيقات بعض الرموز البرمجية الوقائية وتُصدر قيمة تلقائية بعد انتهاء مهلة. لا نقدّم أي ضمانات بشأن عمليات التنفيذ التي يجريها المصنّعون الأصليون للأجهزة، وقد يتأخّر ظهور القيمة الأولية.
إصلاح الأخطاء
- إخراج قيمة فارغة عند عدم توفّر مكتبة المصنّع الأصلي للجهاز (Ide935)
الإصدار 1.0.0-alpha02
27 كانون الثاني (يناير) 2021
تم إصدار androidx.window:window:1.0.0-alpha02
. يحتوي الإصدار 1.0.0-alpha02 على هذه المراجعات.
الميزات الجديدة
لقد أوقفنا نهائيًا بعض واجهات برمجة التطبيقات للمساعدة في تبسيط واجهة برمجة التطبيقات والحدّ من الأخطاء. وتشمل بعض الأمثلة البارزة إزالة عمليات القراءة المتزامنة من WindowManager وإيقاف DeviceState نهائيًا. يمكن أن تؤدي عمليات القراءة المتزامنة إلى حالات تداخل وظهور واجهة مستخدم غير صحيحة.
لقد حوّلنا DisplayFeature إلى واجهة ستنفّذها الميزات الأخرى من الآن فصاعدًا. الميزة الأولى هي FoldingFeature التي تمثّل الآن شاشة قابلة للطي أو مفصلاً. يحتوي هذا أيضًا على حالة المفصل الذي يحل محل DeviceState.
تم طرح WindowMetrics في Android 11 لتزويد المطوّرين بطريقة بسيطة للبحث عن مقاييس عن نافذة، مثل موضع النافذة وحجمها على الشاشة وأيّ عناصر مضمّنة في النظام. لقد أدرجنا واجهة برمجة التطبيقات في هذا الإصدار حتى يتمكّن المطوّرون من الاستفادة من WindowMetrics ومواصلة توفير التوافق مع إصدارات Android القديمة. يمكن الحصول على WindowMetrics من خلال واجهتَي برمجة التطبيقات
WindowManager#getCurrentWindowMetrics()
وWindowManager#getMaximumWindowMetrics().
تغييرات واجهة برمجة التطبيقات
- إيقاف واجهات برمجة التطبيقات نهائيًا التي ستتم إزالتها في الإصدار التجريبي التالي (Ib7cc4)
- تعديلات على
ExtensionInterface
لقبول إشارات صريحة إلى "النشاط" (I07ded) - تعريف واجهة برمجة التطبيقات WindowMetrics API (I3ccee)
- إزالة طرق القراءة المتزامنة من WindowManager (I69983)
- اجعل حزمة ExtensionWindowBackend محمية. (Ied208)
إصلاح الأخطاء
- تعديل واجهات برمجة تطبيقات
ExtensionInterface
لقبول السياقات المرئية (I8e827)
المساهمة الخارجية
- دمج DeviceState وWindowLayoutInfo لتسهيل الوصول إلى البيانات (Id34f4)
الإصدار 1.0.0-alpha01
27 شباط (فبراير) 2020
تم طرح الإصدارَين androidx.window:window:1.0.0-alpha01
وandroidx.window:window-extensions:1.0.0-alpha01
. يحتوي الإصدار 1.0.0-alpha01 على هذه المراجعات.
هذا هو الإصدار الأول من مكتبة Window Manager.
الميزات الجديدة
DisplayFeature
: ترصد واجهة برمجة التطبيقات الجديدة هذه الانقطاعات في مساحات شاشة الالتفاف المسطحة المستمرة، مثل المفاصل أو الطيات.DeviceState
: تقدّم واجهة برمجة التطبيقات الجديدة هذه الوضع الحالي للهاتف من قائمة بالأوضاع المحدّدة (على سبيل المثال،CLOSED
وOPENED
وHALF_OPENED
وما إلى ذلك).