WindowManager
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
18 سپتامبر 2024 | 1.3.0 | - | - | 1.4.0-alpha03 |
اعلام وابستگی ها
برای افزودن وابستگی به WindowManager، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
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" }
کاتلین
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-alpha03
18 سپتامبر 2024
androidx.window:window-*:1.4.0-alpha03
منتشر شد. نسخه 1.4.0-alpha03 حاوی این commit ها است.
ویژگی های جدید
- یک روش کاربردی برای دریافت یک
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>
اضافه کنید تا بهترین تطابق را از Set محاسبه کنید. - برای نقاط شکست توصیه شده اندروید، ثابت اضافه کنید.
- مجموعه نقطه شکست مربوط به نقاط شکست توصیه شده اندروید را اضافه کنید.
تغییرات API
- نام روش کرانه ها را برای
WindowSizeClass
به روز کنید. ( If89a6 ) - API
WindowSizeClass
را برای پشتیبانی از افزودن مقادیر جدید نقطه شکست در آینده بهروزرسانی کنید. به جای داشتن کرانه های مطلق، از کران های پایین استفاده می کنیم و به توسعه دهندگان توصیه می کنیم هنگام پردازش یکWindowSizeClass
از بررسی های کران پایین تر استفاده کنند.WindowWidthSizeClass
وWindowHeightSizeClass
موجود منسوخ خواهند شد زیرا بیشتر توسعه نخواهند یافت. ( I014ce )
نسخه 1.4.0-alpha01
7 آگوست 2024
androidx.window:window-*:1.4.0-alpha01
منتشر شد. نسخه 1.4.0-alpha01 حاوی این تعهدات است.
ویژگی های جدید
- ActivityStack Pinning به برنامهها اجازه میدهد محتوا را در یک ظرف پین کنند و مسیریابی آن را از ظرف دیگر جدا کنند.
- Interactive Divider به برنامهها اجازه میدهد تا یک تقسیمکننده ثابت یا قابل کشیدن بین دو فعالیت را در یک ارائه تقسیمبندی نشان دهند.
- Dialog Dimming به برنامهها اجازه میدهد تا ناحیه محاورهای را مشخص کنند، یا کل پنجره کار را کمنور کنند یا فقط محفظهای را که دیالوگ را نشان میدهد کم نور کنند.
- پاسخ به تماس اطلاعات پنجره فعالیت جاسازی شده به برنامه ها امکان می دهد به طور مداوم به روز رسانی های پنجره فعالیت جاسازی شده را دریافت کنند.
- Embedding Animation Background به برنامهها اجازه میدهد پسزمینه انیمیشن را مشخص کنند و کیفیت انیمیشن انتقال را در هنگام استفاده از
ActivityEmbedding
بهبود بخشند. - مدیریت بهبود یافته ActivityStack به برنامهها اجازه میدهد هنگام استفاده از
ActivityEmbedding
کنترل بیشتری رویActivityStacks
داشته باشند، از جمله: - راه اندازی یک فعالیت در یک
ActivityStack
مشخص - اتمام یک
ActivityStack
تغییرات API
یک API جدید
WindowInfoTracker#supportedPostures
:- یک API برای تعیین اینکه آیا دستگاه از حالت TableTop برای تاشوها پشتیبانی می کند یا خیر. WindowAreaSessionPresenter#getWindow را اضافه می کند
افزودن API برای پشتیبانی از پین کردن
ActivityStack
:- کلاس
SplitPinRule
-
SplitController#pinTopActivityStack
-
SplitController#unpinTopActivityStack
- کلاس
API ها را برای فعال کردن و پیکربندی تقسیم کننده تعاملی اضافه کنید
- کلاس
DividerAttributes
-
SplitAttributes.Builder#setDividerAttributes
- کلاس
افزودن API برای تنظیم
EmbeddingConfiguration
وDimAreaBehavior
برای گفتگوها- کلاس
EmbeddingConfiguration
- کلاس
DimAreaBehavior
-
ActivityEmbeddingController#setEmbeddingConfiguration
- کلاس
برای دریافت بهروزرسانیهای اطلاعات پنجره فعالیت تعبیهشده، APIها را اضافه کنید
- کلاس
EmbeddedActivityWindowInfo
-
ActivityEmbeddingController#embeddedActivityWindowInfo
- کلاس
APIها را برای تنظیم پسزمینه انیمیشن درج شده اضافه کنید
-
EmbeddingAnimationBackground
-
SplitAttributes.Builder#setAnimationBackground
-
API ها را برای تکمیل
ActivityStacks
اضافه کنید-
ActivityEmbeddingController#finishActivityStacks
-
API ها را برای تنظیم راه اندازی
ActivityStack
اضافه کنید-
ActivityEmbeddingOptions#setLaunchingActivityStack
-
APIهای زیر پایدار هستند و دیگر آزمایشی نیستند:
-
ActivityEmbeddingController#invalidateVisibleActivityStacks
(از SplitController#invalidateTopVisibleSplitAttributes منتقل شد) -
ActivityEmbeddingController#getActivityStack
-
SplitController#updateSplitAttributes
-
افزودن API برای 1.4. ( I56774 )
رفع اشکال
- رفع اشکال در برخی از دستگاهها که در آنها وقتی جلسه فعال است، به جای ACTIVE، UNAVILABLE برگردانده میشود.
- به دلیل پشتیبانی ناپایدار API، پشتیبانی از
transferActivityToWindowArea
در دستگاههای دارایvendorApiLevel
2 حذف میکند. - API را برای فعال کردن کشیدن به تمام صفحه برای تقسیم کننده قابل کشیدن Activity Embedding معرفی کنید. ( I645c9 )
- به برنامهها اجازه دهید انیمیشنهای
ActivityEmbedding
را از طریق پارامترهای انیمیشن برایSplitAttributes
غیرفعال کنند. ( IDc01a ) - طرح دستی دسترسی به APIهای پلتفرم جدید حذف شد زیرا این به طور خودکار از طریق مدلسازی API هنگام استفاده از R8 با AGP 7.3 یا جدیدتر (مثلا R8 نسخه 3.3) و برای همه ساختها هنگام استفاده از AGP 8.1 یا بالاتر (به عنوان مثال D8 نسخه 8.1) اتفاق میافتد. به مشتریانی که از AGP استفاده نمیکنند، توصیه میشود به نسخه 8.1 یا بالاتر D8 بهروزرسانی کنند. برای جزئیات بیشتر به این مقاله مراجعه کنید. ( Ia60e0 , b/345472586 )
- به برنامههای افزودنی اجازه دهید پارامترهای انیمیشن را برای
SplitAttributes
بگیرند تا دستگاه بتواند از آن برای انتقال انیمیشن استفاده کند. ( Iede00 ) - پنهان کردن APIهای همپوشانی ( IC4251 )
- API ها را برای پیکربندی تقسیم کننده ثابت یا قابل کشیدن برای تقسیم معرفی کنید ( Ia7a78 )
- تراکم اضافه شده به
WindowMetrics
( Id6723 ) - API را برای دریافت
SupportedPostures
اضافه کنید. ( If557a ) - حذف
setLaunchingActivityStack
از API آزمایشی ( I191cf ) - معرفی
ActivityEmbeddingController#embeddedActivityWindowInfo
( I24312 ) -
#getToken
منسوخ کنید و#getActivityStackToken
را اضافه کنید ( Ie0471 ) - معرفی آداپتور برگشت به تماس برای
embeddedActivityWindowInfo
flow API ( Ida77f ) - افزودن آداپتور برگشت به تماس برای overlayInfo flow API ( I7264f )
-
WindowSdkExtensionsRule
برای نادیده گرفتنextensionsVersion
برای آزمایش معرفی کنید. ( Ifb928 ) - -
#setLaunchingActivityStack
به Bundle منتقل کنید تا با استفادههایActivityOptionsCompat
سازگار شود.- کاربران باید
activityOptions.toBundle
به جای خودActvityOptions
ارسال کنند. -
#setLaunchingActivityStack(Activity)
را حذف کنید. کاربران باید برای دریافتActivityStack
برای استفاده ازActivityEmbeddingController#getActivityStac(Activity)
مهاجرت کنند وActivityStack
به#setLaunchingActivityStack
منتقل کنند. ( Ie0ccc )
- کاربران باید
- -
ActivityStack.Token
وSpltInfo.Token
به عنوان یک شناسه برای برقراری ارتباط بین WM Jetpack و برنامه های افزودنی معرفی کنید.- API ها را منسوخ یا جایگزین کنید تا به جای IBinder، Token را بگیرید/برگردانید. ( I12b24 )
- - معرفی
ActivityEmbeddingController#invalidateVisibleActivityStacks
-
SplitController#invalidateTopVisibleSplitAttributes
را حذف کنید زیرا این ویژگی به#invalidateVisibleActivityStacks
ادغام شده است ( I02ef5 )
-
- - اضافه کردن API برای تنظیم پیکربندی جاسازی. ( I59a4a )
- - افزودن پین/بازکردن پین بالا
ActivityStack
androidx.Window
API- در حال بهروزرسانی برنامه آزمایشی برای اجازه دادن به پین یا برداشتن پین بالای
ActivityStack
( I24dd3 )
- در حال بهروزرسانی برنامه آزمایشی برای اجازه دادن به پین یا برداشتن پین بالای
- دوباره
#finishActivityStacks
وActivityEmbeddingOptions
را اضافه کنید ( Ic1ab3 ) - API های ناپایدار را حذف کنید. ( Ibc534 , b/302380585 )
نسخه 1.3
نسخه 1.3.0
29 مه 2024
androidx.window:window-*:1.3.0
منتشر شد. نسخه 1.3.0 شامل این commit ها است.
تغییرات مهم از 1.2.0
- پشتیبانی از چند پلتفرم Kotlin برای کلاس های اندازه پنجره.
نسخه 1.3.0-rc01
14 مه 2024
WindowManager
Jetpack 1.3 پشتیبانی از Kotlin Multiplatform را برای ویژگیهای WindowSizeClass
و همچنین رفع چندین باگ ارائه میکند.
androidx.window:window-*:1.3.0-rc01
منتشر شد. نسخه 1.3.0-rc01 حاوی این commit ها است.
نسخه 1.3.0-beta02
1 مه 2024
androidx.window:window-*:1.3.0-beta02
منتشر شد. نسخه 1.3.0-beta02 حاوی این تعهدات است.
تغییرات API
- پشتیبانی برای ایجاد و استفاده از
WindowSizeClass
سفارشی را حذف کنید. ( شناسه 1143 )
رفع اشکال
- رفع خطای
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 حاوی این تعهدات است.
تغییرات API
-
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 حاوی این commit ها است.
ویژگی های جدید
- بهروزرسانیهای سطح API APIهای کلاس اندازه پنجره برای بهبود انعطافپذیری برای توسعهدهندگانی که میخواهند از کلاسهای اندازه خودشان استفاده کنند.
تغییرات 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 حاوی این commit ها است.
ویژگی های جدید
- APIهای پنجره آزمایشی را برای دسترسی به صفحه پشتی نمایش دهید.
- تست API برای ایجاد
FoldingFeature
اکنون پایدار است. - APIهای آزمایشی برای تنظیم مقادیر جعلی
ActivityEmbedding
اکنون پایدار هستند. -
WindowLayoutInfoPublisherRule
اکنون در هنگام بدست آوردن یک مقدار از یکUiContext
، نادیده گرفتن را گزارش می کند. -
WindowInfoTracker
داده های ویژگی تاشو به پارامترهایUiContext
را گزارش می دهد. - نسخه Extensions را روی دستگاه نمایش دهید.
- ثابت های
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 حاوی این commit ها است.
تغییرات مهم از 1.1.0
- APIهای پنجره آزمایشی را برای دسترسی به صفحه پشتی نمایش دهید.
- تست API برای ایجاد
FoldingFeature
اکنون پایدار است. - APIهای آزمایشی برای تنظیم مقادیر جعلی
ActivityEmbedding
اکنون پایدار هستند. -
WindowLayoutInfoPublisherRule
اکنون در هنگام بدست آوردن یک مقدار از یکUiContext
، نادیده گرفتن را گزارش می کند. -
WindowInfoTracker
داده های ویژگی تاشو به پارامترهایUiContext
را گزارش می دهد. - نسخه Extensions را روی دستگاه نمایش دهید.
نسخه 1.2.0-rc01
1 نوامبر 2023
androidx.window:window-*:1.2.0-rc01
منتشر شد. نسخه 1.2.0-rc01 حاوی این commit ها است.
ویژگی های جدید
- APIهای پنجره آزمایشی را برای دسترسی به صفحه پشتی نمایش دهید.
- تست API برای ایجاد
FoldingFeature
اکنون پایدار است. - APIهای آزمایشی برای تنظیم مقادیر جعلی
ActivityEmbedding
اکنون پایدار هستند. -
WindowLayoutInfoPublisherRule
اکنون در هنگام بدست آوردن یک مقدار از یکUiContext
، نادیده گرفتن را گزارش می کند. -
WindowInfoTracker
داده های ویژگی تاشو به پارامترهایUiContext
را گزارش می دهد. - نسخه Extensions را روی دستگاه نمایش دهید.
نسخه 1.2.0-beta04
18 اکتبر 2023
androidx.window:window-*:1.2.0-beta04
منتشر شد. نسخه 1.2.0-beta04 حاوی این تعهدات است.
تغییرات API
- API های ناپایدار را حذف کنید. ( Ibc534 , b/302380585 )
نسخه 1.2.0-beta03
20 سپتامبر 2023
androidx.window:window-*:1.2.0-beta03
منتشر شد. نسخه 1.2.0-beta03 حاوی این تعهدات است.
ویژگی های جدید
- بررسیهای
RequiresApi
را برای APIهایی که برای عملکرد صحیح به نسخه خاصی از برنامههای افزودنی نیاز دارند اضافه کنید. - یک API اضافه کنید تا نسخه برنامههای افزودنی در دستگاه نمایش داده شود.
تغییرات API
- نسخه برنامه افزودنی SDK پنجره مورد نیاز را در APIهای عمومی حاشیه نویسی کنید.
- حذف
isXXXSupported
در جزء Activity Embedding. ( Ie3dae )
- حذف
-
WindowSdkExtensions
برای گزارش نسخه افزونه در دستگاه معرفی کنید.-
RequiresWindowSdkExtension
برای حاشیه نویسی حداقل نسخه برنامه افزودنی مورد نیاز معرفی کنید. ( I05fd4 )
-
-
WindowAreaInfo#getCapability
غیر قابل تهی می کند. ( I17048 )
نسخه 1.2.0-beta01
26 جولای 2023
androidx.window:window-*:1.2.0-beta01
منتشر شد. نسخه 1.2.0-beta01 حاوی این تعهدات است.
ویژگی های جدید
- APIهای پنجره آزمایشی را برای دسترسی به صفحه پشتی نمایش دهید.
- تست API برای ایجاد
FoldingFeature
اکنون پایدار است. - APIهای آزمایشی برای تنظیم مقادیر جعلی
ActivityEmbedding
اکنون پایدار هستند. -
WindowLayoutInfoPublisherRule
اکنون در هنگام بدست آوردن یک مقدار از یکUiContext
، نادیده گرفتن را گزارش می کند. -
WindowInfoTracker
داده های ویژگی تاشو به پارامترهایUiContext
را گزارش می دهد.
تغییرات API
-
WindowArea
API را بهعنوان آزمایشی علامتگذاری میکند تا اجازه دهد تغییرات API برای انتشار پایدار در نسخه 1.3 ( I857f5 ) ادامه یابد. - فایل های API به روز شده برای حاشیه نویسی حذف سازگاری ( I8e87a , b/287516207 )
نسخه 1.2.0-alpha03
21 ژوئن 2023
androidx.window:window-*:1.2.0-alpha03
منتشر شد. نسخه 1.2.0-alpha03 حاوی این commit ها است.
ویژگی های جدید
- حذف API های منسوخ شده از سطح API.
- API ها را برای پشتیبانی از نمایشگرهای همزمان اضافه کنید.
- یک ویژگی برای انصراف از تغییر اندازه اجباری اضافه کنید.
- برای انصراف از لغو حداقل نسبت تصویر، ویژگی را اضافه کنید.
-
ActivityEmbeddingRule
برای پشتیبانی از تست واحد در مورد Activity Embedding تثبیت کنید.
تغییرات API
رفع اشکال
- افزودن ویژگی سازگاری انصراف برای تغییر اندازه اجباری ( Ie7ab1 )
-
SESSION_STATE_CONTENT_INVISIBLE
از رابط برنامه های افزودنی حذف می کند. ( I6ed19 ) -
ActivityEmbeddingRule
برای پشتیبانی از تست واحد در مورد تعبیه فعالیت تثبیت کنید. ( I8d6b6 ) - افزودن ویژگی انصراف compat برای لغو نسبت ابعاد حداقل. ( I66390 )
- API های منسوخ شده WindowArea ( Ieb67c ) را حذف می کند
- تغییر نام ویژگی حلقه درخواست جهت به
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
. ( Ie2fbd ) - نامهای ثابت جلسه ناحیه پنجره را بهروزرسانی میکند ( I83675 )
- افزودن ویژگی compat انصراف که حلقه درخواست جهت را در صورت شناسایی نادیده می گیرد ( I0a7a2 )
-
WindowAreaComponent#STATUS_ACTIVE
را اضافه کنید تا مشخص شود که این ویژگی از قبل فعال است. ( I62bc3 ) - افزودن APIهای
RearDisplayPresentationMode
( I0401c ) - API رنگ پس زمینه را برای پایداری حذف کنید. ( I34c3e )
- API های ناحیه پنجره را مخفی کنید. ( I39de0 )
- روش هایی را برای لغو
SplitInfo
درSplitController
اضافه کنید. روشهای آزمایشی را برای ایجاد double برای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
منتقل کنید - برای دریافت لیست
SplitInfo
پشتیبانیFlow
را اضافه کنید ( I7f1b6 )
-
- یک قانون آزمایشی برای
ActivityEmbeddingController
( I42e9b ) اضافه کنید - تغییر نام
ActivityOptionsCompat
بهActivityEmbeddingOptions
( I89301 ) -
splitSupportStatus
اضافه کنید تا مشخص کنید آیا تعبیه فعالیت در دسترس است یا خیر. ( I10024 ) - برای نمایش بهتر مقدار
DEFAULT
SplitAttributes.BackgroundColor
معرفی کنید. روشن کنید که رنگ پسزمینه پویانمایی غیر شفاف پشتیبانی نمیشود، بنابراین هر رنگ غیر شفاف بهعنوان پیشفرض در نظر گرفته میشود، که به معنای استفاده از رنگ پسزمینه پنجره طرح زمینه فعلی است. ( IC6b95 ) -
alwaysAllow()
وalwaysDisallow()
را باALWAYS_ALLOW
وALWAYS_DISALLOW
جایگزین کنید. ( I3057b ) - APIها را برای
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 حاوی این commit ها است.
ویژگی های جدید
- API آزمایشی را بهروزرسانی کنید تا برای ویژگیهای تاشو نامشخص ثابت باشد.
- نادیده گرفتن با
WindowLayoutInfoPublishRule
همه مقادیرwindowLayoutInfo
، از جمله API مبتنی بر Context را لغو میکند.
تغییرات API
- اضافه کردن ثابت برای ویژگی تاشو وسط نامشخص. ( I7530c )
رفع اشکال
-
WindowLayoutInfoPublishRule
برای پشتیبانی از نادیده گرفتنWindowLayoutInfo
مبتنی برContext
بهروزرسانی کنید. ( I2037a )
نسخه 1.2.0-alpha01
24 مه 2023
androidx.window:window-*:1.2.0-alpha01
منتشر شد. نسخه 1.2.0-alpha01 حاوی این commit ها است.
ویژگی های جدید
APIهای آزمایشی را در مورد Activity Embedding و WindowLayoutInfoTracker
تثبیت کنید. ActivityEmbeddingRule
به پایدار ارتقا یافته است. WindowMetricsCalculatorRule
به پایدار ارتقا یافته است. توابع ابزار برای ایجاد یک FoldingFeature
برای آزمایش به پایدار ارتقا یافته است.
تغییرات API
-
ActivityEmbeddingRule
برای پشتیبانی از تست واحد در مورد تعبیه فعالیت تثبیت کنید. ( I8d6b6 ) -
WindowMetrisCalculatorTestRule
پایدار است و اجازه می دهد معیارهای خرد برای تست های JVM وجود داشته باشد. توصیه می کنیم برای نتایج دقیق از شبیه ساز استفاده کنید. - برای پشتیبانی از تست JVM، API های آزمایشی را برای
WindowLayoutInfo
تثبیت کنید. ( Ie036e ) -
IntRange
برای آزمایش مقادیر ویژگی تاشو اضافه کنید. ( I69f7d )
نسخه 1.1
نسخه 1.1.0
7 ژوئن 2023
androidx.window:window-*:1.1.0
منتشر شد. نسخه 1.1.0 حاوی این commit ها است.
تغییرات مهم از 1.0.0
تعبیه فعالیت
-
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
بهعنوان ویژگی بولی تگ<application>
در مانیفست برنامه اضافه شد. -
isSplitSupported
منسوخ شده و باsplitSupportStatus
جایگزین شده است تا اطلاعات دقیق تری در مورد اینکه چرا ویژگی تقسیم در دسترس نیست ارائه شود. - کلاس تودرتو
SplitController.SplitSupportStatus
را برای ارائه ثابت های حالت برای ویژگیsplitSupportStatus
اضافه کرد. -
SplitController
به چندین ماژول Refactored کرد:- ماژول
ActivityEmbeddingController
برای APIهای مربوط بهActivity
یاActivityStack
. -
isActivityEmbedded
ازSplitController
بهActivityEmbeddingController
منتقل شد. - ماژول
RuleController
برای عملیات مربوط بهEmbeddingRule
: - API های حذف شده
SplitController
: -
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
- API های
RuleController
اضافه شده: -
addRule()
- یک قانون اضافه می کند یا قانونی را که دارای همان برچسب است به روز می کند. -
removeRule()
- یک قانون را از مجموعه قوانین ثبت شده حذف می کند. -
setRules()
- مجموعه ای از قوانین را ایجاد می کند. -
clearRules()
- تمام قوانین ثبت شده را حذف می کند. -
parseRules()
- قوانین را از تعاریف قوانین XML تجزیه می کند.
- ماژول
- همه ماژول ها به یک زمینه نیاز دارند که با متد
#getInstance()
مقداردهی اولیه شود، از جمله:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- کلاس
EmbeddingAspectRatio
را برای تعریف ثابت های رفتاری enum مانند مربوط به نسبت ابعاد نمایش اضافه کرد. - کلاس
SplitAttributes
را برای تعریف طرح تقسیم اضافه کرد. - توابع ماشین حساب
SplitAttributes
بهSplitController
برای سفارشی کردن طرح بندی های تقسیم شده اضافه شده است:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
برای بررسی اینکه آیا APIهایSplitAttributesCalculator
در دستگاه پشتیبانی می شوند یا خیر
-
- فیلد
EmbeddingRule#tag
اضافه شد. - به روز رسانی API در
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
اضافه شد. - زمینه UI آزمایشی غیرفعالی به
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
تقسیم کنند.
-
- ثابتهای رفتار Finish باید به ثابتهای کلاس enum مانند
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
ثابت های enum مانندFinishBehavior
را می گیرند. برای جزئیات بیشتر به " مهاجرت های SplitRule " مراجعه کنید. - از
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
برای نشان دادن تقسیمها در دستگاههای پرتره استفاده کنید.
-
- مهاجرت های
SplitPlaceholder.Builder
:- فقط
filters
و پارامترهایplaceholderIntent
دارد. سایر ویژگی ها به تنظیم کننده ها منتقل می شوند. برای جزئیات بیشتر به “SplitPairRule.Builder migrations” مراجعه کنید. -
setFinishPrimaryWithPlaceholder
ثابت های enum مانند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 حاوی این commit ها است.
ویژگی های جدید
-
ActivityEmbedding
به عنوان یک API پایدار منتشر کنید. - رفع اشکال مختلف
نسخه 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
به چندین ماژول Refactored کرد:- ماژول
ActivityEmbeddingController
برای APIهای مربوط بهActivity
یاActivityStack
. -
isActivityEmbedded
ازSplitController
بهActivityEmbeddingController
منتقل شد. - ماژول
RuleController
برای عملیات مربوط بهEmbeddingRule
: - API های حذف شده
SplitController
:-
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
-
- API های
RuleController
اضافه شده:-
addRule()
- یک قانون اضافه می کند یا قانونی را که دارای همان برچسب است به روز می کند. -
removeRule()
- یک قانون را از مجموعه قوانین ثبت شده حذف می کند. -
setRules()
- مجموعه ای از قوانین را ایجاد می کند. -
clearRules()
- تمام قوانین ثبت شده را حذف می کند. - `parseRules() - قوانین را از تعاریف قوانین XML تجزیه می کند.
-
- ماژول
- همه ماژول ها به یک زمینه نیاز دارند که با متد
#getInstance()
مقداردهی اولیه شود، از جمله:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- کلاس
EmbeddingAspectRatio
را برای تعریف ثابت های رفتاری enum مانند مربوط به نسبت ابعاد نمایش اضافه کرد. - کلاس
SplitAttributes
را برای تعریف طرح تقسیم اضافه کرد. - توابع ماشین حساب
SplitAttributes
بهSplitController
برای سفارشی کردن طرح بندی های تقسیم شده اضافه شده است:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
برای بررسی اینکه آیا APIهای SplitAttributesCalculator در دستگاه پشتیبانی می شوند یا خیر
-
- فیلد
EmbeddingRule#tag
اضافه شد. - به روز رسانی API در
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
تقسیم کنند.
-
- ثابتهای رفتار Finish باید به ثابتهای کلاس enum مانند
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
ثابت های enum مانندFinishBehavior
را می گیرند. برای جزئیات بیشتر به " مهاجرت های SplitRule " مراجعه کنید. - از
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
برای نشان دادن تقسیمها در دستگاههای پرتره استفاده کنید.
-
- مهاجرت های
SplitPlaceholder.Builder
:- فقط
filters
و پارامترهایplaceholderIntent
دارد. سایر ویژگی ها به تنظیم کننده ها منتقل می شوند. برای جزئیات بیشتر به “SplitPairRule.Builder migrations” مراجعه کنید. -
setFinishPrimaryWithPlaceholder
ثابت های enum مانند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-alpha06
22 فوریه 2023
androidx.window:window-*:1.1.0-alpha06
منتشر شد. نسخه 1.1.0-alpha06 حاوی این commit ها است.
ویژگی های جدید
- نسخه آزمایشی دریافت
WindowLayoutInfo
از یک زمینه UI را در معرض دید قرار دهید.
تغییرات API
-
splitSupportStatus
اضافه کنید تا مشخص کنید آیا تعبیه فعالیت در دسترس است یا خیر. ( I10024 ) - UI Context
WindowLayoutInfo
API را آزمایشی کنید. ( I58ee0 ) -
WindowAreaController
و API را برای فعال کردنRearDisplay
Mode برای انتقال پنجره فعلی به صفحه نمایشی که با دوربین عقب تراز شده است، معرفی می کند. ( Iffcbf ) - رنگ پسزمینه پیشفرض را بهروزرسانی کنید. ( I1ac1b )
- پارامترهای
SplitAttributes
را اضافه کنید. ( I18bdd ) - APIها را برای
SplitRule
،SplitAttributes
،SplitAttributesCalculator
اضافه کنید. ( I92d23 ) - API ها را در اطراف
maxAspectRatio
بهبود بخشید:-
alwaysAllow()
وalwaysDisallow()
باALWAYS_ALLOW
وALWAYS_DISALLOW
جایگزین کنید. - مستندات API SEE را با مستندات مستقل به روز کنید. ( i3057b )
-
- سازندگان زیر از API های عمومی حذف می شوند زیرا قرار نیست توسط برنامه ها فراخوانی شوند.
- سازنده
SplitInfo
- سازنده
ActivityStack
( IDE534 )
- سازنده
- اکنون
SplitRule
maxAspectRatioInPortrait/Landscape
را به خود می گیرد. این فقط اجازه می دهد تا فعالیتهایی که نسبت ابعاد مرزهای والدین کوچکتر یا برابر باmaxAspectRatio
درخواستی باشد ، تقسیم شود. ( IA5990 ) - تغییر
RuleController#parseRules
استاتیک ( i785DF ) - API های اطراف فعالیت را بهبود بخشید
- نامگذاری API را تراز کنید - برای موارد مختلف از افزودن/حذف استفاده کنید:
-
registerRule
درaddRule
تغییر می کند - تغییر
unregisterRule
درremoveRule
-
getSplitRules
باgetRules
جایگزین کنید زیراActivityRule
یک قانون تقسیم نیست - برای تنظیم مجموعه ای از قوانین
RuleController#setRules
اضافه کنید - API های مربوط به قانون عصاره از
SplitController
به SingletonRuleController
. آنها عبارتند از: -
addRule
-
removeRule
-
getRules
-
setRules
-
clearRules
-
parseRules
- عصاره
#isActivityEmbedded
ازSplitController
به SingletonActivityEmbeddingController
. آنها عبارتند از: -
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
، لطفاً با شناسه منابع XML باRuleController#parseRules
کنید و باRuleController#setRules
تماس بگیرید تا دوباره قوانین را تنظیم کنید. قبل از این تغییر:SplitController.getInstance(context).clearRegisteredRules()
پس از این تغییر:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
( IB3967 ))
- API های Splitrule را بهبود بخشید:
- به جای پیکسل ها برای
SplitRule
، ابعاد حداقل در DP بگیرید. - Refactor for
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
خالی است ، در معرض دید قرار دهید. - برچسب های API تجربی را از API های
ActivityEmbedding
حذف کرد. - مخفی کردن سازنده
ActivityRule
به عنوانBuilder
روش ارجح برای ساخت است. - یک روش آزمایشی اضافه کنید تا
WindowInsets
درWindowMetrics
بدست آورید. - برای جلوگیری از اتمام محل نگهدارنده ، به روزرسانی
SplitPlaceholderFinishBehavior
بروزرسانی کنید. اتمام محل نگهدارنده باعث ایجاد رفتار گیج کننده شد.
تغییرات API
- Val
isEmpty
Public را برای جایگزینی سرگرم کنندهisEmpty
قرار دهید. - تغییر نام فعالیت های پارامتر
ActivityStack
بهactivitiesInProcess
. ( IA5055 ) -
ActivityFilter#matchesClassName
وActivityFilter#matchesClassNameOrWildCard
را حذف کنید زیرا آنها گیج کننده هستند. - افزودن
ActivityFilter#componentName
ABDActivityFilter#intentAction
برای تماس گیرنده اجازه می دهد فیلترهای مختلف را تشخیص دهد ( I41F22 ) - API های
@Deprecated
را از API آزمایشی حذف کنید ( I216B3 ) - حذف
@ExperimentalWindowApi
برای فعالیت تعبیه شده API ( i69ebe ) - سازنده
ActivityRule
را پنهان کنید ، به جای آن از سازنده استفاده کنید. ( if4eb6 ) - API ها را اضافه کنید تا بررسی کنید که آیا یک فعالیت بخشی از
ActivityFilter
است یا خیر. ( IA43CF ) - فایلهای API را به روز کنید تا تغییرات در کلاسهای
WindowMetrics
وWindowMetricsCalculatorCompat
را منعکس کنید ( I667FE ) - به روزرسانی املاک
ActivityEmbedding
Javadoc و نام کلاس ( IA1386 ) - اضافه کردن نام های برچسب
ActivityEmbedding
نام های برچسب در AndroidManifest.xml ( ID1AD4 ) - اضافه شده API
SplitPlaceholderFinishBehavior
وSplitPlaceholderRule.finishPrimaryWithPlaceholder
، این جایگزینSplitPlaceholderRule.finishPrimaryWithSecondary
موجود است. FinishPrimaryWithSecondary که تعریف می کند که فعالیت های محل زندگی به پایان می رسد ، چگونه فعالیت های مرتبط با فعالیت در تعبیه باید رفتار کنند. ( i64647 )
رفع اشکال
-
WindowAreaController
و API را معرفی می کند تا حالتRearDisplay
فعال کند تا پنجره فعلی را به صفحه نمایش منتقل کند که با دوربین عقب تراز شده است. ( i388ab )
نسخه 1.1.0-alpha03
27 جولای 2022
androidx.window:window-*:1.1.0-alpha03
منتشر می شود. نسخه 1.1.0-alpha03 شامل این تعهدات است.
ویژگی های جدید
- مقادیر پیش فرض را برای قوانین جاسازی به روز کنید.
تغییرات API
- مقادیر پیش فرض را برای تعبیه خصوصیات قانون به روز کنید. ( IC4D35 )
نسخه 1.1.0-alpha02
11 مه 2022
androidx.window:window-*:1.1.0-alpha02
منتشر می شود. نسخه 1.1.0-alpha02 شامل این تعهدات است.
ویژگی های جدید
- کتابخانه های آداپتور را برای حمایت از جاوا و Rxjava منتشر کنید.
نسخه 1.1.0-alpha01
11 مه 2022
androidx.window:window-*:1.1.0-alpha01
منتشر می شود. نسخه 1.1.0-alpha01 شامل این تعهدات است.
ویژگی های جدید
- آداپتورها را برای حمایت از جاوا و rxjava رها کنید
نسخه 1.1.0-alpha01
20 آوریل 2022
androidx.window:window:1.1.0-alpha01
منتشر می شود. نسخه 1.1.0-alpha01 شامل این تعهدات است.
ویژگی های جدید
- اشکال را برطرف می کند که در آن پس زمینه یک برنامه از ویژگی های برابر متوقف می شود.
- در API فعالیت آزمایشگاهی گسترش یافته است.
تغییرات API
- یک API عمومی برای بررسی اینکه آیا یک فعالیت تعبیه شده است یا خیر. ( i39eb7 )
رفع اشکال
- API هایی را اضافه کنید که رفتار نهایی را برای ظروف در شکاف های فعالیت سفارشی کنید ( 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
اضافه کنید. - API های تست پشتیبانی را اضافه کنید.
نسخه 1.0.0-beta04
17 نوامبر 2021
androidx.window:window-*:1.0.0-beta04
منتشر می شود. نسخه 1.0.0-beta04 شامل این تعهدات است.
ویژگی های جدید
- تغییر نام WindowinforePository به Windowinfotracker.
- فعالیت را به یک روش وابسته به روش صریح برای Windowinfotracker تبدیل کنید.
- برای پشتیبانی از توسعه دهندگان با استفاده از Robolectric ، یک تست ساده برای WindowMetricsCalculator اضافه کنید.
تغییرات API
- پسوند عصاره ( I25A5F )
- اضافه کردن isEmpty in ActivityStack ( i5a4e6 )
- تغییر نام WindowinforePository به Windowinfotracker.
- به روزرسانی Java/Rxjava/تست وابستگی ها برای مطابقت. ( i0da63 )
- یک قانون تست را برای یک WindowmetricsCalculator ساده اضافه کنید. ( iBACDB )
نسخه 1.0.0-beta03
27 اکتبر 2021
androidx.window:window-*:1.0.0-beta03
منتشر می شود. نسخه 1.0.0-beta03 شامل این تعهدات است.
ویژگی های جدید
- فعالیت تجربی تعبیه شده API را اضافه کنید. این نسخه اولیه طرح بندی امکان نشان دادن دو فعالیت در کنار هم را فراهم می کند.
تغییرات API
- API فعلی WindowMetrics را حذف کرد زیرا ما نمی توانیم آن را به طور دقیق تهیه کنیم. لطفاً به جای آن از WindowMetricsCalculator استفاده کنید ( ICDA5F )
- API پسوندها را به روز کرد. ( ICA92B )
- یک رابط کاربری برای یک ویژگی جدید که امکان تعبیه فعالیت ها را فراهم می کند و آنها را به صورت جانبی در پنجره وظیفه والدین نشان می دهد ، اضافه شد. ( i5711d )
- سازندگان را برای Windowmetrics و WindowlayOutinfo پنهان کنید ، لطفاً به جای آن از API های تست استفاده کنید. ( i5a1b5 )
- یک API اضافه کنید تا اشیاء جعلی WindowlayOutinfo ایجاد کنید. ( i4a2fd )
رفع اشکال
- نشت حافظه ثابت. ( i3fc79 ، b/202989046 )
نسخه 1.0.0-beta02
1 سپتامبر 2021
androidx.window:window-*:1.0.0-beta02
منتشر می شود. نسخه 1.0.0-beta02 شامل این تعهدات است.
ویژگی های جدید
- برای حاشیه نویسی API های تجربی ، یک حاشیه نویسی تجربی اضافه کنید. ( i9f1b6 )
- یک روش تست اضافه کنید تا یک تست تست تست تست شود که یک رکت را بپذیرد. این امر باعث می شود که هنگام استفاده از Robolectric بر خلاف یک فعالیت واقعی ، آزمایش کنید. ( id1cca )
نسخه 1.0.0-beta01
18 آگوست 2021
androidx.window:window-*:1.0.0-beta01
منتشر می شود. نسخه 1.0.0-beta01 شامل این تعهدات است.
ویژگی های جدید
- ثابت های قدیمی را برداشته و
FoldingFeature
در یک رابط قرار داد.
تغییرات API
- ثابت های قدیمی را برداشته و FoldFeature را به یک رابط تبدیل کنید. ( i9a2d5 )
رفع اشکال
- كتابخانه هایی كه به كتابخانه
Test Core
وابسته هستند به نسخه1.4.0
ارتقا یافته اند و هم اكنون با نسخه Android Platform S. ( 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
- روش یاور را اضافه کنید تا اشیاء تست تست تست ایجاد کنید
- بسته ها را بر اساس ویژگی ای که از آنها پشتیبانی می کنند ، به کلاس های گروهی بروزرسانی کنید.
تغییرات API
- تغییر نام فعالیت به فعالیتهای مربوط به فعالیت از repo به مخزن تغییر می کند. ( i61a16 )
- بسته های کلاس ها را به روز کنید. ( i23ae2 )
- WindowsMetrics را از Windowinforepo حذف کنید ( I24663 )
- WindowManager را حذف کنید و از Windowinforepo استفاده کنید
- Windowbackend داخلی. ( i06d9a )
- معیارهای پنجره را به جریان تبدیل کنید.
- آداپتور جاوا را به WindowinforePocallbackAdapter تغییر دهید
- جریان برگشتی را حذف کنید تا دیگر API های آزمایشی در حال استفاده نباشند. ( IA4D15 )
- برای ایجاد ویژگی های صفحه نمایش تست ، روش یاور را اضافه کنید.
- تغییر از EcclusionMode به EcclusionType ( IF4CFF )
رفع اشکال
- خطای proguard را که در آن کتابخانه اصلی حذف شده است ، رفع کنید.
- خطایی را برطرف کنید که در آن WindowlayOutinfo به مشترکان اضافی تحویل داده نشده است.
- خطایی را برطرف کنید که در آن تغییرات پیکربندی باعث به روزرسانی ویژگی های تاشو نمی شود.
نسخه 1.0.0-alpha09
30 ژوئن 2021
androidx.window:window-*:1.0.0-alpha09
منتشر می شود. نسخه 1.0.0-alpha09 شامل این تعهدات است.
ویژگی های جدید
- تغییر از ثابت عدد صحیح به عناصر بی حد و حصر.
- برای ایجاد ویژگی های تاشو تست ، یک استفاده از تست اضافه کنید.
تغییرات API
- برای ایجاد ویژگی های صفحه نمایش تست ، روش یاور را اضافه کنید. ( i3cf54 )
- تغییر از
occlusionMode
بهocclusionType
.
- تغییر از
رفع اشکال
- هنگام افزودن چندین مصرف کننده جریان داده ، مقدار اولیه را منتشر کنید.
نسخه 1.0.0-alpha08
16 ژوئن 2021
androidx.window:window-*:1.0.0-alpha08
منتشر می شود. نسخه 1.0.0-alpha08 شامل این تعهدات است.
ویژگی های جدید
- یک مصنوعات آزمایش را منتشر کرد تا هنگام استفاده از WindowsInforePository ، آزمایش را آسان تر کند. برای به دست آوردن اطلاعات در مورد نمایشگر و WindowMetrics از WindowinforePository استفاده کنید. ( I57F66 ، IDA620 )
نسخه 1.0.0-alpha07
2 ژوئن 2021
androidx.window:window-*:1.0.0-alpha07
منتشر می شود. نسخه 1.0.0-alpha07 شامل این تعهدات است.
ویژگی های جدید
- کتابخانه پنجره اصلی را به کوتلین مهاجرت کنید. از Coroutines و توابع تعلیق برای افشای داده های ناهمزمان به جلو استفاده می شود.
- Windowinforepo را به عنوان نقطه اصلی تعامل برای دریافت WindowMetrics و جریان WindowlayoutInfo اضافه کنید.
- آثار باستانی جدید
window-java
برای افشای API های دوستانه جاوا برای ثبت نام و عدم ثبت نام تماس تلفنی. -
window-rxjava2
وwindow-rxjava3
آثار باستانی برای افشای API های اقتباس شده Rxjava.
تغییرات API
-
WindowServices
اضافه کنید تا وابستگی ها به طور یکنواخت ارائه شود.- API مبتنی بر Coroutine را برای مصرف اطلاعات طرح پنجره اضافه کنید. ( IAB70F )
- کتابخانه مدیر پنجره اصلی را به کوتلین مهاجرت کنید. ( ICCA34 )
رفع اشکال
- کلاس داده جدید را اضافه کنید تا مرزهای ویژگی را نشان دهد. ( i6dcd1 )
نسخه 1.0.0-alpha06
5 مه 2021
androidx.window:window:1.0.0-alpha06
منتشر می شود. نسخه 1.0.0-alpha06 شامل این تعهدات است.
ویژگی های جدید
- ما مهاجرت خود را به کوتلین شروع کرده ایم و در نسخه بعدی به پایان خواهیم رسید.
- Devicestate از API عمومی حذف شده است ، لطفاً به جای آن از FoldingFeature استفاده کنید.
- ما
STATE_FLIPPED
از حالت های تاشو حذف کرده ایم زیرا در حال حاضر توسط هیچ موردی پشتیبانی نمی شود. - ما همچنین API های مستهلک شده دیگر را حذف کرده ایم.
تغییرات API
- افزودن کوتلین به عنوان وابستگی.
- کتابخانه اصلی را به کوتلین مهاجرت کنید. ( IDD995 )
-
DisplayFeature
Builder حذف شده است. ( i61fa4 ) -
DeviceState
از API عمومی حذف کنید ، به جای آن از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 ، شنوندگان و تماس های تماس را ثبت کنید.
تغییرات API
- روش های راحتی را برای کار با FoldingFeatures اضافه کنید ( IE733F )
- روشهای خواندن همزمان را از WindowManager حذف می کند ( I96FD4 )
نسخه 1.0.0-alpha04
10 مارس 2021
androidx.window:window:1.0.0-alpha04
منتشر می شود. نسخه 1.0.0-alpha04 شامل این تعهدات است.
ویژگی های جدید
- در صورت عدم اجرای OEM ، اشکالی را برطرف می کند که در آن هیچ WindowlayOutinfo منتشر نمی شود. اکنون ما یک WindowlayoutInfo خالی را منتشر می کنیم.
- در صورت تغییر وضعیت لولا در هنگام پس زمینه برنامه ، یک اشکال را برطرف کنید که حالت به درستی به روز نشود. اکنون دولت باید سازگار باشد.
- پرونده های Proguard ما را به روز کنید تا هشدارهای مربوط به وابستگی به زمان اجرا را نادیده بگیرید.
رفع اشکال
- هنگامی که کتابخانه OEM از دست رفته است ، یک مقدار خالی منتشر کنید. ( IDE935 )
نسخه 1.0.0-alpha03
18 فوریه 2021
androidx.window:window:1.0.0-alpha03
منتشر می شود. نسخه 1.0.0-alpha03 شامل این تعهدات است.
ویژگی های جدید
- هنگامی که اجرای OEM خالی است ، یک مقدار خالی برای WindowLayoutInfo منتشر کنید. این امر باید استفاده از کتابخانه در دستگاه های بیشتر را آسان تر کند. از آنجا که API ها ناهمزمان هستند ، هنوز هم توصیه می شود که برنامه ها کد دفاعی بنویسند و بعد از مدت زمان یک مقدار پیش فرض را منتشر کنند. ما هیچ تضمینی در مورد اجرای OEM نداریم و ممکن است مقدار اولیه به تأخیر بیفتد.
رفع اشکال
- هنگامی که کتابخانه OEM از دست رفته است ، یک مقدار خالی منتشر کنید. ( IDE935 )
نسخه 1.0.0-alpha02
27 ژانویه 2021
androidx.window:window:1.0.0-alpha02
منتشر می شود. نسخه 1.0.0-alpha02 شامل این تعهدات است.
ویژگی های جدید
ما برخی از API ها را برای کمک به ساده سازی API و کاهش اشتباهات کاهش داده ایم. برخی از نمونه های قابل توجه حذف عملیات خواندن همزمان از WindowManager و کاهش انحراف است. عملیات خواندن همزمان می تواند به شرایط مسابقه منجر شود و UI نادرست داشته باشد.
ما DisplayFeature را به یک رابط تبدیل کرده ایم که سایر ویژگی ها به جلو حرکت می کنند. اولین ویژگی ما FoldingFeature است که اکنون بازنمایی یک صفحه نمایش یا لولا است. این همچنین حاوی وضعیت لولا جایگزین Devicestate است.
WindowMetrics در Android 11 معرفی شد تا یک روش ساده برای پرس و جو برای معیارهای مربوط به یک پنجره ، به عنوان مثال موقعیت و اندازه آن روی صفحه و هر نوع سیستم ، به توسعه دهندگان ارائه دهد. ما در این نسخه از API استفاده کرده ایم تا توسعه دهندگان بتوانند از WindowMetrics استفاده کنند و به پشتیبانی از نسخه های قدیمی Android ادامه دهند. WindowMetrics را می توان از طریق
WindowManager#getCurrentWindowMetrics()
و WindowManager#getMaximumwindowMetrics () دریافت کرد.
تغییرات API
- API های مستهجن که در آلفا بعدی حذف می شوند ( IB7CC4 )
- به روزرسانی
ExtensionInterface
برای پذیرش منابع فعالیت صریح. ( i07ded ) - API WindowMetrics را معرفی می کند. ( i3ccee )
- روشهای خواندن همزمان را از WindowManager حذف کنید ( I69983 )
- بسته بندی ExtensionWindowBackend را محافظت کنید. ( IED208 )
رفع اشکال
- API های
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
: این API جدید اختلال در سطوح صفحه نمایش مسطح مداوم مانند لولا یا چین ها را مشخص می کند -
DeviceState
: این API جدید وضعیت فعلی تلفن را از لیستی از وضعیتهای تعریف شده فراهم می کند (به عنوان مثال ،CLOSED
،OPENED
،HALF_OPENED
و غیره)
WindowManager
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
18 سپتامبر 2024 | 1.3.0 | - | - | 1.4.0-alpha03 |
اعلام وابستگی ها
برای افزودن وابستگی به WindowManager ، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر ، مخزن Maven Google را بخوانید.
وابستگی های مصنوعات مورد نیاز خود را در پرونده build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
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" }
کاتلین
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-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
Point اضافه کنید. - رفع اشکال در جایی که ابعاد جمع و جور در بعضی موارد به درستی انتخاب نشده است.
نسخه 1.4.0-alpha02
4 سپتامبر 2024
androidx.window:window-*:1.4.0-alpha02
منتشر می شود. نسخه 1.4.0-alpha02 شامل این تعهدات است.
ویژگی های جدید
پشتیبانی از WindowSizeClass
سفارشی را اضافه کنید.
- سازنده
WindowSizeClass
را باز کنید تا Devs بتواند از خود استفاده کند. - روشهای ابزار
isAtLeast
را اضافه کنید تا توسعه دهندگان بتوانند طیف وسیعی از مقادیرWindowSizeClass
را پردازش کنند. - برای محاسبه بهترین مسابقه از مجموعه ، یک عملکرد پسوند را در
Set<WindowSizeClass>
اضافه کنید. - برای نقاط شکست توصیه شده اندروید ثابت اضافه کنید.
- مجموعه نقطه شکست مربوط به نقاط شکست توصیه شده اندروید را اضافه کنید.
تغییرات API
- نام های متد مرزها را برای
WindowSizeClass
به روز کنید. ( if89a6 ) - برای پشتیبانی از افزودن مقادیر جدید نقطه شکست در آینده ، API
WindowSizeClass
را به روز کنید. به جای داشتن مرزهای مطلق ، از مرزهای پایین استفاده می کنیم و توصیه می کنیم که هنگام پردازشWindowSizeClass
از چک های محدود پایین استفاده کنید.WindowWidthSizeClass
وWindowHeightSizeClass
موجود موجود است زیرا آنها بیشتر توسعه نمی یابند. ( i014ce )
نسخه 1.4.0-alpha01
7 آگوست 2024
androidx.window:window-*:1.4.0-alpha01
منتشر می شود. نسخه 1.4.0-alpha01 شامل این تعهدات است.
ویژگی های جدید
- Pinning ActivityStack به برنامه ها اجازه می دهد تا محتوا را در یک ظرف بچسبانند و ناوبری خود را از ظرف دیگر جدا کنند.
- تقسیم کننده تعاملی به برنامه ها اجازه می دهد تا یک تقسیم کننده ثابت یا قابل کشیدن را بین دو فعالیت در یک نمایش تقسیم نمایش دهند.
- DIMMING DIMING FULLSCREEN به برنامه ها اجازه می دهد تا منطقه Dialog Dim را مشخص کنند ، یا کل پنجره کار را کم رنگ کنند یا فقط ظرفی را که گفتگو را نشان می دهد کم رنگ کند.
- پاسخ به تماس با پنجره فعالیت تعبیه شده به برنامه ها اجازه می دهد تا برنامه ها به طور مداوم به روزرسانی های پنجره فعالیت تعبیه شده را دریافت کنند.
- تعبیه پس زمینه انیمیشن به برنامه ها اجازه می دهد تا پس زمینه انیمیشن را مشخص کنند و کیفیت انیمیشن انتقال را هنگام استفاده از
ActivityEmbedding
بهبود می بخشند. - مدیریت بهبود فعالیت استاك به برنامه ها اجازه می دهد تا هنگام استفاده
ActivityEmbedding
ActivityStacks
از جمله: از جمله: - راه اندازی یک فعالیت در یک
ActivityStack
مشخص شده - پایان دادن به
ActivityStack
تغییرات API
یک
WindowInfoTracker#supportedPostures
:- API برای تعیین اینکه آیا دستگاه از حالت تبلت برای Foldables پشتیبانی می کند یا خیر. اضافه کردن WindowareAsessPresenter#getWindow
اضافه کردن API برای پشتیبانی از
ActivityStack
Pinning:- کلاس
SplitPinRule
-
SplitController#pinTopActivityStack
-
SplitController#unpinTopActivityStack
- کلاس
API ها را اضافه کنید تا تقسیم کننده تعاملی را فعال و پیکربندی کنید
- کلاس
DividerAttributes
-
SplitAttributes.Builder#setDividerAttributes
- کلاس
API ها را به تنظیم
EmbeddingConfiguration
وDimAreaBehavior
برای گفتگوها اضافه کنید- کلاس
EmbeddingConfiguration
- کلاس
DimAreaBehavior
-
ActivityEmbeddingController#setEmbeddingConfiguration
- کلاس
API ها را برای دریافت به روزرسانی اطلاعات پنجره فعالیت تعبیه شده اضافه کنید
- کلاس
EmbeddedActivityWindowInfo
-
ActivityEmbeddingController#embeddedActivityWindowInfo
- کلاس
API ها را اضافه کنید تا زمینه انیمیشن تعبیه شده را تنظیم کنید
-
EmbeddingAnimationBackground
-
SplitAttributes.Builder#setAnimationBackground
-
API ها را اضافه کنید تا
ActivityStacks
تمام کنید-
ActivityEmbeddingController#finishActivityStacks
-
API ها را برای تنظیم
ActivityStack
راه اندازی اضافه کنید-
ActivityEmbeddingOptions#setLaunchingActivityStack
-
API های زیر پایدار هستند و دیگر تجربی نیستند:
-
ActivityEmbeddingController#invalidateVisibleActivityStacks
(منتقل شده از splitController#InvalidateTopvisiblesPlitAtTributes) -
ActivityEmbeddingController#getActivityStack
-
SplitController#updateSplitAttributes
-
API را برای 1.4 اضافه کنید. ( i56774 )
رفع اشکال
- رفع اشکال در دستگاههای خاصی که در صورت فعال بودن جلسه در دسترس نیست به جای فعال ، بازگردانده می شوند.
- پشتیبانی از
transferActivityToWindowArea
را در دستگاه هایی باvendorApiLevel
2 به دلیل پشتیبانی ناپایدار API حذف می کند. - API را برای فعال کردن صفحه نمایش درگ برای فعالیت تعبیه کننده draggable معرفی کنید. ( i645c9 )
- به برنامه ها اجازه دهید انیمیشن های
ActivityEmbedding
را از طریق پارامترهای انیمیشن برایSplitAttributes
غیرفعال کنند. ( IDC01A ) - حذف دستی دسترسی به دسترسی به API های پلت فرم جدید را حذف کرد زیرا این اتفاق به طور خودکار از طریق مدل سازی API هنگام استفاده از R8 با AGP 7.3 یا بالاتر (به عنوان مثال نسخه R8 3.3) و برای همه ساخت ها هنگام استفاده از AGP 8.1 یا بعد (به عنوان مثال نسخه D8 8.1) اتفاق می افتد. به مشتریانی که از AGP استفاده نمی کنند توصیه می شود نسخه 8.1 یا بعد از آن را به روز کنید. برای جزئیات بیشتر به این مقاله مراجعه کنید. ( IA60E0 ، B/345472586 )
- به برنامه های افزودنی اجازه دهید پارامترهای انیمیشن را برای
SplitAttributes
به دست آورند تا دستگاه بتواند از آن برای انتقال انیمیشن استفاده کند. ( iede00 ) - Hide Overlay API ( IC4251 )
- API ها را برای پیکربندی تقسیم کننده ثابت یا قابل کشیدن برای تقسیم ( IA7A78 ) معرفی کنید
- چگالی اضافه شده به
WindowMetrics
( ID6723 ) - API را برای دریافت
SupportedPostures
اضافه کنید. ( IF557a ) - حذف
setLaunchingActivityStack
از API آزمایش ( I191CF ) - معرفی
ActivityEmbeddingController#embeddedActivityWindowInfo
( I24312 ) -
#getToken
کاهش دهید و#getActivityStackToken
را اضافه کنید ( IE0471 ) - معرفی آداپتور پاسخ به تماس برای API جریان
embeddedActivityWindowInfo
( IDA77F ) - اضافه کردن آداپتور پاسخ به تماس برای API جریان OverlayInfo ( I7264F )
-
WindowSdkExtensionsRule
برای غلبه برextensionsVersion
برای آزمایش معرفی کنید. ( IFB928 ) - - مهاجرت
#setLaunchingActivityStack
به هم وصل کنید تا با استفاده ازActivityOptionsCompat
استفاده کنید.- کاربران باید به جای خود
ActvityOptions
activityOptions.toBundle
انجام دهند. - حذف
#setLaunchingActivityStack(Activity)
. کاربران باید برای استفاده ازActivityEmbeddingController#getActivityStac(Activity)
مهاجرت کنند تا یکActivityStack
بدست آورند وActivityStack
به#setLaunchingActivityStack
منتقل کنند. ( IE0CCC )
- کاربران باید به جای خود
- -
ActivityStack.Token
وSpltInfo.Token
به عنوان شناسه برای برقراری ارتباط بین WM Jetpack و پسوندها معرفی کنید.- API ها را کاهش دهید/جایگزین کنید تا به جای IBinder نشانه را برگردانید. ( I12B24 )
- - معرفی
ActivityEmbeddingController#invalidateVisibleActivityStacks
- حذف
SplitController#invalidateTopVisibleSplitAttributes
زیرا این ویژگی برای#invalidateVisibleActivityStacks
( I02EF5 ) ادغام شده است
- حذف
- - اضافه کردن API برای تنظیم پیکربندی تعبیه. ( i59a4a )
- - اضافه کردن PIN/UNPIN TOP TOP
ActivityStack
androidx.Window
API- به روزرسانی برنامه نسخه ی نمایشی برای اجازه
ActivityStack
PIN/UNPIN TOP TOP ( I24DD3 )
- به روزرسانی برنامه نسخه ی نمایشی برای اجازه
- دوباره
#finishActivityStacks
وActivityEmbeddingOptions
( IC1AB3 ) - API های ناپایدار را حذف کنید. ( 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 1.3 پشتیبانی Multiplatform Kotlin را برای ویژگی های 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 شامل این تعهدات است.
تغییرات API
- پشتیبانی از ایجاد و استفاده از
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 شامل این تعهدات است.
تغییرات API
-
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 شامل این تعهدات است.
ویژگی های جدید
- به روزرسانی های ساخته شده در سطح API API کلاس اندازه پنجره برای بهبود انعطاف پذیری برای توسعه دهندگان که می خواهند از کلاس های اندازه خود استفاده کنند.
تغییرات 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 شامل این تعهدات است.
ویژگی های جدید
- برای دسترسی به صفحه عقب ، API های پنجره آزمایشی را در معرض دید قرار دهید.
- API های تست برای ایجاد یک
FoldingFeature
در حال حاضر پایدار است. - API های تست برای تنظیم مقادیر
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
- برای دسترسی به صفحه عقب ، API های پنجره آزمایشی را در معرض دید قرار دهید.
- API های تست برای ایجاد یک
FoldingFeature
در حال حاضر پایدار است. - API های تست برای تنظیم مقادیر
ActivityEmbedding
جعلی در حال حاضر پایدار هستند. -
WindowLayoutInfoPublisherRule
اکنون هنگام بدست آوردن یک مقدار ازUiContext
، نادیده گرفتن را گزارش می کند. -
WindowInfoTracker
داده های ویژگی تاشو را به پارامترهایUiContext
گزارش می دهد. - نسخه پسوند را در دستگاه قرار دهید.
نسخه 1.2.0-RC01
1 نوامبر 2023
androidx.window:window-*:1.2.0-rc01
منتشر می شود. نسخه 1.2.0-RC01 شامل این تعهدات است.
ویژگی های جدید
- برای دسترسی به صفحه عقب ، API های پنجره آزمایشی را در معرض دید قرار دهید.
- API های تست برای ایجاد یک
FoldingFeature
در حال حاضر پایدار است. - API های تست برای تنظیم مقادیر
ActivityEmbedding
جعلی در حال حاضر پایدار هستند. -
WindowLayoutInfoPublisherRule
اکنون هنگام بدست آوردن یک مقدار ازUiContext
، نادیده گرفتن را گزارش می کند. -
WindowInfoTracker
داده های ویژگی تاشو را به پارامترهایUiContext
گزارش می دهد. - نسخه پسوند را در دستگاه قرار دهید.
نسخه 1.2.0-beta04
18 اکتبر 2023
androidx.window:window-*:1.2.0-beta04
منتشر می شود. نسخه 1.2.0-beta04 شامل این تعهدات است.
تغییرات API
- API های ناپایدار را حذف کنید. ( IBC534 ، b/302380585 )
نسخه 1.2.0-beta03
20 سپتامبر 2023
androidx.window:window-*:1.2.0-beta03
منتشر می شود. نسخه 1.2.0-beta03 شامل این تعهدات است.
ویژگی های جدید
- اضافه کردن بررسی های
RequiresApi
برای API که به یک نسخه خاص از پسوندها نیاز دارند تا به درستی عملکرد داشته باشند. - یک API اضافه کنید تا نسخه پسوند را در دستگاه در معرض دید خود قرار دهید.
تغییرات API
- حاشیه نویسی مورد نیاز نسخه پسوند SDK در API های عمومی.
-
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 شامل این تعهدات است.
ویژگی های جدید
- برای دسترسی به صفحه عقب ، API های پنجره آزمایشی را در معرض دید قرار دهید.
- API های تست برای ایجاد یک
FoldingFeature
در حال حاضر پایدار است. - API های تست برای تنظیم مقادیر
ActivityEmbedding
جعلی در حال حاضر پایدار هستند. -
WindowLayoutInfoPublisherRule
اکنون هنگام بدست آوردن یک مقدار ازUiContext
، نادیده گرفتن را گزارش می کند. -
WindowInfoTracker
داده های ویژگی تاشو را به پارامترهایUiContext
گزارش می دهد.
تغییرات API
- Marks
WindowArea
API به عنوان آزمایشی اجازه می دهد تغییرات API برای انتشار پایدار در 1.3 ادامه یابد ( I857F5 ) - پرونده های API به روز شده برای حاشیه نویسی سرکوب سازگاری ( I8E87A ، B/287516207 )
نسخه 1.2.0-alpha03
21 ژوئن 2023
androidx.window:window-*:1.2.0-alpha03
منتشر می شود. نسخه 1.2.0-alpha03 شامل این تعهدات است.
ویژگی های جدید
- از بین بردن API های مستهلک شده از سطح API.
- API ها را برای پشتیبانی از نمایشگرهای همزمان اضافه کنید.
- یک ملک اضافه کنید تا از تغییر اندازه اجباری خودداری کنید.
- برای امتناع از نسبت ابعاد حداقل از نظر ، املاک را اضافه کنید.
- برای پشتیبانی از آزمایش واحد در مورد تعبیه فعالیت ،
ActivityEmbeddingRule
به فعالیت را تثبیت کنید.
تغییرات API
رفع اشکال
- اضافه کردن املاک سازگار برای انصراف برای تغییر اندازه نیرو ( 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 ) - API های
RearDisplayPresentationMode
( I0401C ) را اضافه کنید - API رنگ پس زمینه را برای پایدار حذف کنید. ( i34c3e )
- مخفی کردن API های منطقه پنجره. ( 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
جایگزین کنید. - عملکرد را برای تنظیم نوع Fallback از نوع تقسیم لولا حذف کنید. اگر نوع تقسیم لولا به دلیل دستگاه فعلی یا وضعیت پنجره قابل استفاده نباشد ، برای تقسیم ظرف کار والدین به طور یکسان ، به عقب می رود. برای سفارشی کردن نوع تقسیم Fallback ، از
SplitController#setSplitAttributesCalculator
استفاده کنید. ( IFCC59 )
-
-
add
/removeSplitCallback
- حرکت
add
/removeSplitCallback
بهSplitControllerCallbackAdapter
- برای دریافت لیست
SplitInfo
( I7F1B6 ) پشتیبانیFlow
را اضافه کنید
- حرکت
- یک قانون آزمایشی برای
ActivityEmbeddingController
( I42E9B ) اضافه کنید - تغییر نام
ActivityOptionsCompat
بهActivityEmbeddingOptions
( I89301 ) - اضافه کردن
splitSupportStatus
برای نشان دادن اینکه آیا تعبیه فعالیت در دسترس است یا خیر. ( I10024 ) - برای نشان دادن بهتر مقدار
DEFAULT
،SplitAttributes.BackgroundColor
معرفی کنید. روشن کنید که رنگ پس زمینه انیمیشن غیر اوپیک پشتیبانی نمی شود ، بنابراین هر رنگ غیر اوپیک به عنوان پیش فرض رفتار می شود ، این به معنای استفاده از رنگ پس زمینه پنجره تم فعلی است. ( IC6B95 ) -
alwaysAllow()
وalwaysDisallow()
باALWAYS_ALLOW
وALWAYS_DISALLOW
جایگزین کنید. ( i3057b ) - API ها را برای
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 شامل این تعهدات است.
ویژگی های جدید
- API تست را به روز کنید تا ثابت برای ویژگی های تاشو نامشخص باشد.
- Overriding with
WindowLayoutInfoPublishRule
will override all values ofwindowLayoutInfo
, including the Context based API.
تغییرات API
- Add constant for unspecified center folding feature. ( I7530c )
رفع اشکال
- Update
WindowLayoutInfoPublishRule
to support overrides onContext
basedWindowLayoutInfo
. ( I2037a )
Version 1.2.0-alpha01
24 مه 2023
androidx.window:window-*:1.2.0-alpha01
is released. Version 1.2.0-alpha01 contains these commits.
ویژگی های جدید
Stabilize testing APIs around Activity Embedding and WindowLayoutInfoTracker
. ActivityEmbeddingRule
has been promoted to stable. WindowMetricsCalculatorRule
has been promoted to stable. Utility functions to create a FoldingFeature
for test have been promoted to stable.
تغییرات API
- Stabilize
ActivityEmbeddingRule
to support unit testing around Activity embedding. ( I8d6b6 ) -
WindowMetrisCalculatorTestRule
is stable allowing stub metrics for JVM tests. We recommend using an emulator for accurate results. - Stabilize test APIs for
WindowLayoutInfo
to support JVM testing. ( Ie036e ) - Add
IntRange
for test folding feature values. ( I69f7d )
نسخه 1.1
نسخه 1.1.0
7 ژوئن 2023
androidx.window:window-*:1.1.0
is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
Activity Embedding
- Added
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
as a boolean property of the<application>
tag in the app manifest. - Deprecated
isSplitSupported
and replaced withsplitSupportStatus
to provide more detailed information about why the split feature is not available. - Added the
SplitController.SplitSupportStatus
nested class to provide state constants for thesplitSupportStatus
property. - Refactored
SplitController
to several modules:-
ActivityEmbeddingController
module forActivity
orActivityStack
related APIs. - Moved
isActivityEmbedded
fromSplitController
toActivityEmbeddingController
. -
RuleController
module forEmbeddingRule
related operations: - Removed
SplitController
APIs: -
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
- Added
RuleController
APIs: -
addRule()
— Adds a rule or updates the rule that has the same tag. -
removeRule()
— Removes a rule from the collection of registered rules. -
setRules()
— Establishes a collection of rules. -
clearRules()
— Removes all registered rules. -
parseRules()
— Parses rules from XML rule definitions.
-
- All modules require a context to be initialized by
#getInstance()
method, including:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Added the
EmbeddingAspectRatio
class to define enum-like behavior constants related to display aspect ratio. - Added the
SplitAttributes
class to define the split layout. - Added
SplitAttributes
calculator functions toSplitController
to customize split layouts:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
to check if theSplitAttributesCalculator
APIs are supported on the device
-
- Added
EmbeddingRule#tag
field. - API updates in
SplitRule
:- Added
defaultSplitAttributes
— Defines the default split layout of a split; replacessplitRatio
andlayoutDirection
. - Added translation of the XML properties
splitRatio
andsplitLayoutDirection
todefaultSplitAttributes
. - Changed minimum dimension definitions to use density-independent pixels (dp) instead of pixels.
- Added
minHeightDp
with default value 600dp. - Changed
minWidth
tominWidthDp
with default value 600dp. - Changed
minSmallestWidth
tominSmallestWidthDp
with default value 600dp. - Added
maxAspectRatioInHorizontal
with default valueALWAYS_ALLOW
. - Added
maxAspectRatioInPortrait
with default value 1.4. - Defined
FinishBehavior
nested class to replace finish behavior constants. - Applied the property changes to the Builder nested class of
SplitPairRule
andSplitPlaceholderRule
.
- Added
- Replaced
SplitInfo#getSplitRatio()
withSplitInfo#getSplitAttributes()
to provide additional split-related information.
WindowLayout
- Added experimental non-activity UI context support to
WindowInfoTracker
. - Added experimental non-activity UI context to
WindowMetricsCalculator
.
Migration Steps
- To enable activity embedding to display activities in splits, apps must add the
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
property to the manifest<application>
tag:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
This allows the system to optimize the split behaviors for an application ahead of time. -
SplitInfo
ratio- Check if the current split is stacked:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Check the current ratio:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Check if the current split is stacked:
- SplitController migrations:
-
SplitController.getInstance()
changes toSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
changes toRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
changes toActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
changes toRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
changes toRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
changes toRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
changes toRuleController.getInstance(Context).getRules()
.
-
-
SplitRule
property migrations:-
minWidth
andminSmallestWidth
now use dp units instead of pixels. Apps can use the following call:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
or simply divideminWith
in pixels bydisplayMetrics#density
.
-
- Finish behavior constants must be migrated to
FinishBehavior
enum-like class constants:-
FINISH_NEVER
changes toFinishBehavior.NEVER
. -
FINISH_ALWAYS
changes toFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
changes toFinishBehavior.ADJACENT
.
-
- Layout direction must be migrated to
SplitAttributes.LayoutDirection
:-
ltr
changes toSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
changes toSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
changes toSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
must be migrated toSplitAttributes.SplitType.ratio(splitRatio)
.
-
-
SplitPairRule.Builder
migrations:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
changes tokotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
changes tokotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
andsetFinishSecondaryWithPrimary
take theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. - Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
-
-
SplitPlaceholder.Builder
migrations:- Has only
filters
andplaceholderIntent
parameters. Other properties move to setters. See “SplitPairRule.Builder migrations” for details. -
setFinishPrimaryWithPlaceholder
takes theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. -
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
change to:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
- Has only
Version 1.1.0-rc01
10 مه 2023
androidx.window:window-*:1.1.0-rc01
is released. Version 1.1.0-rc01 contains these commits.
ویژگی های جدید
- Release
ActivityEmbedding
as a stable API. - رفع اشکال مختلف
Version 1.1.0-beta02
5 آوریل 2023
androidx.window:window-*:1.1.0-beta02
is released. Version 1.1.0-beta02 contains these commits.
ویژگی های جدید
- Internal fixes and clean up.
Version 1.1.0-beta01
22 مارس 2023
androidx.window:window-*:1.1.0-beta01
is released. Version 1.1.0-beta01 contains these commits.
Activity Embedding
- Added
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
as a boolean property of the<application>
tag in the app manifest. - Deprecated
isSplitSupported
and replaced withsplitSupportStatus
to provide more detailed information about why the split feature is not available. - Added the
SplitController.SplitSupportStatus
nested class to provide state constants for thesplitSupportStatus
property. - Refactored
SplitController
to several modules:-
ActivityEmbeddingController
module forActivity
orActivityStack
related APIs. - Moved
isActivityEmbedded
fromSplitController
toActivityEmbeddingController
. -
RuleController
module forEmbeddingRule
related operations: - Removed
SplitController
APIs:-
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
-
- Added
RuleController
APIs:-
addRule()
— Adds a rule or updates the rule that has the same tag. -
removeRule()
— Removes a rule from the collection of registered rules. -
setRules()
— Establishes a collection of rules. -
clearRules()
— Removes all registered rules. - `parseRules() — Parses rules from XML rule definitions.
-
-
- All modules require a context to be initialized by
#getInstance()
method, including:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Added the
EmbeddingAspectRatio
class to define enum-like behavior constants related to display aspect ratio. - Added the
SplitAttributes
class to define the split layout. - Added
SplitAttributes
calculator functions toSplitController
to customize split layouts:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
to check if the SplitAttributesCalculator APIs are supported on the device
-
- Added
EmbeddingRule#tag
field. - API updates in
SplitRule
:- Added
defaultSplitAttributes
— Defines the default split layout of a split; replacessplitRatio
andlayoutDirection
. - Added translation of the XML properties
splitRatio
andsplitLayoutDirection
todefaultSplitAttributes
. - Changed minimum dimension definitions to use density-independent pixels (dp) instead of pixels.
- Added
minHeightDp
with default value 600dp. - Changed
minWidth
tominWidthDp
with default value 600dp. - Changed
minSmallestWidth
tominSmallestWidthDp
with default value 600dp. - Added
maxAspectRatioInHorizontal
with default valueALWAYS_ALLOW
. - Added
maxAspectRatioInPortrait
with default value1.4
. - Defined
FinishBehavior
nested class to replace finish behavior constants. - Applied the property changes to the
Builder
nested class ofSplitPairRule
andSplitPlaceholderRule
.
- Added
- Replaced
SplitInfo#getSplitRatio()
withSplitInfo#getSplitAttributes()
to provide additional split-related information.
WindowLayout
- Added non-activity UI context support to
WindowInfoTracker
. - Added non-activity UI context to
WindowMetricsCalculator
.
Migration Steps
- To enable activity embedding to display activities in splits, apps must add the
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
property to the manifest<application>
tag:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
This allows the system to optimize the split behaviors for an application ahead of time. -
SplitInfo
ratio- Check if the current split is stacked:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Check the current ratio:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Check if the current split is stacked:
-
SplitController
migrations:-
SplitController.getInstance()
changes toSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
changes toRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
changes toActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
changes toRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
changes toRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
changes toRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
changes toRuleController.getInstance(Context).getRules()
.
-
-
SplitRule
property migrations:-
minWidth
andminSmallestWidth
now use dp units instead of pixels. Apps can use the following call:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
or simply divideminWith
in pixels bydisplayMetrics#density
.
-
- Finish behavior constants must be migrated to
FinishBehavior
enum-like class constants:-
FINISH_NEVER
changes toFinishBehavior.NEVER
. -
FINISH_ALWAYS
changes toFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
changes toFinishBehavior.ADJACENT
.
-
- Layout direction must be migrated to
SplitAttributes.LayoutDirection
:-
ltr
changes toSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
changes toSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
changes toSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
must be migrated toSplitAttributes.SplitType.ratio(splitRatio)
.
-
-
SplitPairRule.Builder
migrations:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
changes tokotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
change tokotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
andsetFinishSecondaryWithPrimary
take theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. - Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
-
-
SplitPlaceholder.Builder
migrations:- Has only
filters
andplaceholderIntent
parameters. Other properties move to setters. See “SplitPairRule.Builder migrations” for details. -
setFinishPrimaryWithPlaceholder
takes theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. -
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
change to:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
- Has only
Version 1.1.0-alpha06
22 فوریه 2023
androidx.window:window-*:1.1.0-alpha06
is released. Version 1.1.0-alpha06 contains these commits.
ویژگی های جدید
- Expose experimental version of getting the
WindowLayoutInfo
from a UI context.
تغییرات API
- Add
splitSupportStatus
to indicate if Activity embedding is available. ( I10024 ) - Make UI Context
WindowLayoutInfo
API as experimental. ( I58ee0 ) - Introduces the
WindowAreaController
and API's to enableRearDisplay
Mode to move the current window to the display that is aligned with the rear camera. ( Iffcbf ) - Update default background color. ( I1ac1b )
- Add
SplitAttributes
params. ( I18bdd ) - Add APIs for
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Improve the APIs around
maxAspectRatio
:- Replace
alwaysAllow()
andalwaysDisallow()
withALWAYS_ALLOW
andALWAYS_DISALLOW
. - Update API documentation of @see with standalone documentation. ( I3057b )
- Replace
- The following constructors are removed from public APIs because they are not supposed to be called by apps.
-
SplitInfo
constructor -
ActivityStack
constructor ( Ide534 )
-
-
SplitRule
now takesmaxAspectRatioInPortrait/Landscape
. It only allows activities split when the aspect ratio of the parent bounds is smaller or equal to the requestedmaxAspectRatio
. ( Ia5990 ) - Change
RuleController#parseRules
to be static ( I785df ) - Improve the APIs around ActivityEmbedding
- Align the API naming - Use add/remove for multiple instances:
-
registerRule
changes toaddRule
-
unregisterRule
changes toremoveRule
- Replace
getSplitRules
withgetRules
sinceActivityRule
is not a split rule - Add
RuleController#setRules
to set a bunch of rules - Extract rule related APIs from
SplitController
to singletonRuleController
. آنها عبارتند از: -
addRule
-
removeRule
-
getRules
-
setRules
-
clearRules
-
parseRules
- Extract
#isActivityEmbedded
fromSplitController
to singletonActivityEmbeddingController
. آنها عبارتند از: -
isActivityEmbedded
- Remove
SplitController#initialize
. To set rules from XML file, please useRuleController#parseRules
and#setRules
. Before this change:SplitController.initialize(context, R.xml.static_rules)
After this change:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- We don't distinguish static rules with runtime rules anymore. That said, calling
#clearRules
results to clear all rules no matter they are registered with static XML rule definitions or at runtime. To hav the legacy behavior ofSplitController#clearRegisteredRules
, please callRuleController#parseRules
with the XML resources id and callRuleController#setRules
to set back the rules again. Before this change:SplitController.getInstance(context).clearRegisteredRules()
After this change:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
( Ib3967 )
- Improve the SplitRule APIs:
- Take min dimensions in DP instead of pixels for
SplitRule
. - Refactor for
SplitRule
Builder to take min dimensions as optional. ( I95f17 )
- Take min dimensions in DP instead of pixels for
- Pass a Context to initialize
SplitController
( I42549 ) - Renamed
SplitRule#layoutDir
to#layoutDirection
andSplitRule Builder#setLayoutDir
toBuilder#setLayoutDirection
. ( I3f6d1 )
Version 1.1.0-alpha04
9 نوامبر 2022
androidx.window:window-*:1.1.0-alpha04
is released. Version 1.1.0-alpha04 contains these commits.
ویژگی های جدید
- Expose a method to determine if an
ActivityStack
is empty forActivityEmbedding
. - Removed experimental API tags from
ActivityEmbedding
APIs. - Hide
ActivityRule
constructor as theBuilder
is the preferred way to construct. - Add an experimental method to get the
WindowInsets
onWindowMetrics
. - Update
SplitPlaceholderFinishBehavior
to prevent finishing the placeholder. Finishing the placeholder caused some confusing behavior.
تغییرات API
- Make val
isEmpty
public to replace funisEmpty
. - Rename
ActivityStack
parameter activities toactivitiesInProcess
. ( Ia5055 ) - Remove
ActivityFilter#matchesClassName
andActivityFilter#matchesClassNameOrWildCard
because they are confusing. - Add
ActivityFilter#componentName
abdActivityFilter#intentAction
to allow the caller to distinguish different filters ( I41f22 ) - Remove the
@Deprecated
APIs from the experimental API ( I216b3 ) - Remove
@ExperimentalWindowApi
for Activity Embedding APIs ( I69ebe ) - Hide
ActivityRule
constructor, use Builder instead. ( If4eb6 ) - Add APIs to check if an Activity is part of the
ActivityFilter
. ( Ia43cf ) - Update API files to reflect changes in
WindowMetrics
andWindowMetricsCalculatorCompat
classes ( I667fe ) - Update
ActivityEmbedding
Property Javadoc and class name ( Ia1386 ) - Adding
ActivityEmbedding
property tag names to be used in AndroidManifest.xml ( Id1ad4 ) - Added new API
SplitPlaceholderFinishBehavior
andSplitPlaceholderRule.finishPrimaryWithPlaceholder
, this replaces existingSplitPlaceholderRule.finishPrimaryWithSecondary
which defines when placeholder activites are finished, how associated activites in Activity Embedding should behave. ( I64647 )
رفع اشکال
- Introduces the
WindowAreaController
and API's to enableRearDisplay
Mode to move the current window to the display that is aligned with the rear camera. ( I388ab )
Version 1.1.0-alpha03
27 جولای 2022
androidx.window:window-*:1.1.0-alpha03
is released. Version 1.1.0-alpha03 contains these commits.
ویژگی های جدید
- Update the default values for embedding rules.
تغییرات API
- Update default values for embedding rule properties. ( Ic4d35 )
Version 1.1.0-alpha02
11 مه 2022
androidx.window:window-*:1.1.0-alpha02
is released. Version 1.1.0-alpha02 contains these commits.
ویژگی های جدید
- Release the adapter libraries to support Java and RxJava.
Version 1.1.0-alpha01
11 مه 2022
androidx.window:window-*:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
ویژگی های جدید
- Release adapters to support java and RxJava
Version 1.1.0-alpha01
20 آوریل 2022
androidx.window:window:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
ویژگی های جدید
- Fixes a bug where backgrounding an app stops emitting fold features.
- Expand on the experimental ActivityEmbedding API.
تغییرات API
- A public API to check if an activity is being embedded. ( I39eb7 )
رفع اشکال
- Add APIs that customize finishing behavior for containers in activity splits ( I1a1e4 )
- Added a new configuration option for activity split rules. ( Iec6af )
نسخه 1.0
نسخه 1.0.0
26 ژانویه 2022
androidx.window:window-*:1.0.0
is released. Version 1.0.0 contains these commits.
Major features of 1.0.0
- Support for folding phones through
WindowInfoTracker
andFoldingFeature
.WindowMetricsCalculator
to help calculate the current WindowMetrics.
Version 1.0.0-rc01
15 دسامبر 2021
androidx.window:window-*:1.0.0-rc01
is released. Version 1.0.0-rc01 contains these commits.
ویژگی های جدید
- Add support for folding phones through
WindowInfoTracker
. - Add methods to calculate the current and maximum
WindowMetrics
. - Add supporting test APIs.
Version 1.0.0-beta04
17 نوامبر 2021
androidx.window:window-*:1.0.0-beta04
is released. Version 1.0.0-beta04 contains these commits.
ویژگی های جدید
- Rename WindowInfoRepository to WindowInfoTracker.
- Make Activity an explicit method dependency for WindowInfoTracker.
- Add a simple TestRule for WindowMetricsCalculator to support developers using Robolectric.
تغییرات API
- Extract extensions ( I25a5f )
- add isEmpty in ActivityStack ( I5a4e6 )
- Rename WindowInfoRepository to WindowInfoTracker.
- Update java/rxjava/testing dependencies to match. ( I0da63 )
- Add a test rule for a simple WindowMetricsCalculator. ( Ibacdb )
Version 1.0.0-beta03
27 اکتبر 2021
androidx.window:window-*:1.0.0-beta03
is released. Version 1.0.0-beta03 contains these commits.
ویژگی های جدید
- Add experimental Activity Embedding APIs. This initial layout version allows showing two Activities side by side.
تغییرات API
- Removed the currentWindowMetrics API since we can not provide it accurately. Please use WindowMetricsCalculator instead ( Icda5f )
- Updated the extensions api. ( Ica92b )
- Added an interface for a new feature that allows embedding activities and showing them side-by-side within the parent task window. ( I5711d )
- Hid the constructors for WindowMetrics and WindowLayoutInfo, please use the test APIs instead. ( I5a1b5 )
- Add an API to create fake WindowLayoutInfo objects. ( I4a2fd )
رفع اشکال
- Fixed memory leak. ( I3fc79 , b/202989046 )
Version 1.0.0-beta02
1 سپتامبر 2021
androidx.window:window-*:1.0.0-beta02
is released. Version 1.0.0-beta02 contains these commits.
ویژگی های جدید
- Add an experimental annotation to annotate experimental APIs. ( I9f1b6 )
- Add a test method to create a test FoldingFeature that accepts a Rect. This will make it easie to test when using Robolectric as opposed to an actual Activity. ( Id1cca )
Version 1.0.0-beta01
18 آگوست 2021
androidx.window:window-*:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
ویژگی های جدید
- Removed old constants and made
FoldingFeature
into an interface.
تغییرات API
- Remove old constants and make FoldFeature an interface. ( I9a2d5 )
رفع اشکال
- Libraries that depend on the
Test Core
library have been upgraded to version1.4.0
and will now work with Android platform version S. ( I88b72 , b/189353863 )
Version 1.0.0-alpha10
4 آگوست 2021
androidx.window:window-*:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits.
ویژگی های جدید
- Rename WindowInfoRepo to WindowInfoRepository and adjust corresponding classes / files.
- Convert current window metrics to a Flow in WindowInfoRepository since the value changes over time.
- Rename WindowInfoRepoJavaAdapter to WindowInfoRepoCallbackAdapter
- Add helper method to create test FoldingFeature objects
- Update packages to group classes based on the feature they are supporting.
تغییرات API
- Rename ActivityExt to ActivityExtensions Change from Repo to Repository. ( I61a16 )
- Update packages for classes. ( I23ae2 )
- Remove WindowMetrics from WindowInfoRepo ( I24663 )
- Remove WindowManager and use WindowInfoRepo
- Make WindowBackend internal. ( I06d9a )
- Convert window metrics to Flow.
- Rename java adapter to WindowInfoRepoCallbackAdapter
- Remove callbackFlow so no more experimental APIs are in use. ( Ia4d15 )
- Add helper method to create test display features.
- Change from occlusionMode to occlusionType ( If4cff )
رفع اشکال
- Fix proguard error where core library was being removed.
- Fix error where WindowLayoutInfo was not being delivered to additional subscribers.
- Fix error where config changes would not trigger folding feature updates.
Version 1.0.0-alpha09
30 ژوئن 2021
androidx.window:window-*:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits.
ویژگی های جدید
- Change from integer constants to unbounded enums.
- Add a test util to create test folding features.
تغییرات API
- Add helper method to create test display features. ( I3cf54 )
- Change from
occlusionMode
toocclusionType
.
- Change from
رفع اشکال
- Emit initial value when adding multiple consumers of the data streams.
Version 1.0.0-alpha08
16 ژوئن 2021
androidx.window:window-*:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
ویژگی های جدید
- Released a testing artifact to make it easier to test when using WindowInfoRepository. Use WindowInfoRepository to get information about DisplayFeatures and the WindowMetrics. ( I57f66 , Ida620 )
Version 1.0.0-alpha07
2 ژوئن 2021
androidx.window:window-*:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits.
ویژگی های جدید
- Migrate core window library to Kotlin. Will use coroutines and suspend functions to expose asynchronous data going forward.
- Add WindowInfoRepo as the main interaction point for getting the WindowMetrics and the stream of WindowLayoutInfo.
- New
window-java
artifact to expose Java-friendly APIs to register and unregister callbacks. - New
window-rxjava2
andwindow-rxjava3
artifacts to expose RxJava adapted APIs.
تغییرات API
- Add
WindowServices
to provide dependencies uniformly.- Add coroutine based api to consume window layout info. ( Iab70f )
- Migrate core window manager library to Kotlin. ( Icca34 )
رفع اشکال
- Add new data class to represent feature bounds. ( I6dcd1 )
Version 1.0.0-alpha06
5 مه 2021
androidx.window:window:1.0.0-alpha06
is released. Version 1.0.0-alpha06 contains these commits.
ویژگی های جدید
- We have started our migration to Kotlin and will finish in the next release.
- DeviceState has been removed from the public API, please use FoldingFeature instead.
- We have removed
STATE_FLIPPED
from the FoldingFeature states since it is not supported by any use-case at the moment. - We have also removed other deprecated APIs.
تغییرات API
- Adding Kotlin as a dependency.
- Migrate core library to Kotlin. ( Idd995 )
- Removed
DisplayFeature
builder. ( I61fa4 ) - Removed
DeviceState
from public api, useFoldingFeature
instead. ( Id6079 ) - Remove device state callback from extensions. ( I5ea83 )
- Remove
STATE_FLIPPED
from FoldingFeature. ( I9c4e1 ) - Remove deprecated registration methods. ( Ib381b )
Version 1.0.0-alpha05
24 مارس 2021
androidx.window:window:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits.
ویژگی های جدید
We have added convenience methods to FoldingFeature so that apps can tell if the feature is separating, occluding, and determine the orientation of the hinge. We are also hiding the hinge type so that
We are removing the synchronous read methods from WindowManager. Synchronous read methods are error prone since there is an implicit race condition. Register listeners and callbacks to receive updates on the WindowLayoutInfo.
تغییرات API
- Add convenience methods for working with FoldingFeatures ( Ie733f )
- Removes synchronous read methods from WindowManager ( I96fd4 )
Version 1.0.0-alpha04
10 مارس 2021
androidx.window:window:1.0.0-alpha04
is released. Version 1.0.0-alpha04 contains these commits.
ویژگی های جدید
- Fixes a bug where no WindowLayoutInfo is emitted if there isn't an OEM implementation. Now we emit an empty WIndowLayoutInfo.
- Fix a bug where state would not update properly if the hinge state changed while the app was backgrounded. Now the state should be consistent.
- Update our proguard files to ignore warnings from runtime dependencies.
رفع اشکال
- Emit an empty value when the OEM library is missing. ( Ide935 )
Version 1.0.0-alpha03
18 فوریه 2021
androidx.window:window:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits.
ویژگی های جدید
- Emit an empty value for WindowLayoutInfo when the OEM implementation is empty. This should make it easier to use the library on more devices. Since the APIs are asynchronous it is still recommended that apps write some defensive code and emit a default value after a timeout. We do not have any guarantees on OEM implementations and the initial value may be delayed.
رفع اشکال
- Emit an empty value when the OEM library is missing. ( Ide935 )
Version 1.0.0-alpha02
27 ژانویه 2021
androidx.window:window:1.0.0-alpha02
is released. Version 1.0.0-alpha02 contains these commits.
ویژگی های جدید
We have deprecated some APIs to help streamline the api and reduce mistakes. Some notable examples are removing the synchronous read operations from WindowManager and deprecating DeviceState. Synchronous read operations can lead to race conditions and have incorrect UI.
We have converted DisplayFeature to an interface that other features will implement going forward. Our first feature is FoldingFeature which is now the representation of a screen fold or a hinge. This also contains the state of the hinge replacing DeviceState.
WindowMetrics was introduced in Android 11 to provide developers with a simple way to query for metrics about a window, for example its position and size on screen and any system insets. We've backported the API in this release so that developers can leverage WindowMetrics and continue to support older Android versions. WindowMetrics can be obtained through the
WindowManager#getCurrentWindowMetrics()
and WindowManager#getMaximumWindowMetrics() APIs.
تغییرات API
- Deprecate APIs that will be removed in the next alpha ( Ib7cc4 )
- Updates
ExtensionInterface
to accept explicit Activity references. ( I07ded ) - Introduces the WindowMetrics API. ( I3ccee )
- Remove synchronous read methods from WindowManager ( I69983 )
- Make ExtensionWindowBackend package protected. ( Ied208 )
رفع اشکال
- Update
ExtensionInterface
APIs to accept visual contexts. ( I8e827 )
External Contribution
- Merge DeviceState and WindowLayoutInfo so it is easier to access data. ( Id34f4 )
Version 1.0.0-alpha01
27 فوریه 2020
androidx.window:window:1.0.0-alpha01
and androidx.window:window-extensions:1.0.0-alpha01
are released. Version 1.0.0-alpha01 contains these commits. This is the first release of the Window Manager library.
ویژگی های جدید
-
DisplayFeature
: This new API identifies disruptions in the continuous flat screen surfaces such as hinges or folds -
DeviceState
: This new API provides the current posture of the phone from a list of defined postures (For example,CLOSED
,OPENED
,HALF_OPENED
, etc.)