مدیر پنجره
| آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
|---|---|---|---|---|
| ۱۹ نوامبر ۲۰۲۵ | ۱.۵.۱ | - | - | ۱.۶.۰-آلفا۰۱ |
اعلام وابستگیها
برای افزودن یک وابستگی به WindowManager، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.
وابستگیهای مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { implementation "androidx.window:window:1.5.1" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.1" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.1" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.1" // For testing implementation "androidx.window:window-testing:1.5.1" }
کاتلین
dependencies { implementation("androidx.window:window:1.5.1") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.1") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.1") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.1") // For testing implementation("androidx.window:window-testing:1.5.1") }
بازخورد
بازخورد شما به بهبود Jetpack کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه ۱.۶
نسخه ۱.۶.۰-آلفا۰۱
۱۹ نوامبر ۲۰۲۵
androidx.window:window-*:1.6.0-alpha01 منتشر شد. نسخه 1.6.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- متدهای کمکی را برای ساخت
WindowSizeClassSetsدر قالب شبکهای اضافه کنید.
تغییرات API
- متدهای کمکی برای ساخت
WindowSizeClassSetsبه صورت شبکهای اضافه کنید. ( I4d623 ، b/444174274 )
نسخه ۱.۵
نسخه ۱.۵.۱
۱۹ نوامبر ۲۰۲۵
androidx.window:window-*:1.5.1 منتشر شد. نسخه ۱.۵.۱ شامل این کامیتها است.
رفع اشکالات
- رفع خطای
ClassCastExceptionکه در دستگاههای خاصی رخ میدهد ( 4d58979 )
نسخه ۱.۵.۰
۲۴ سپتامبر ۲۰۲۵
androidx.window:window-*:1.5.0 منتشر شد. نسخه ۱.۵.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۴.۰:
- نقاط توقف
WindowSizeClassرا برای Large و XLarge اضافه کنید. ( I40d85 ) - محاسبهی
WindowMetricsرا به Application Context گسترش دهید. ( I8eeeb , b/360934048 ) - یک Getter برای فعال کردن دسترسی مستقیم به
WindowLayoutInfoارائه دهید ( Ie9513 ) - معرفی API برای ذخیره خودکار وضعیت جاسازی و بازیابی خودکار وضعیت جاسازی پس از شروع مجدد فرآیند برنامه ( Ie0295 )
- حذف API آزمایشی
WindowInsets. ( I68a71 )
رفع اشکالات
- رفع مشکل
EmbeddingRuleکه در برخی مواردhashCodeمتفاوتی برمیگرداند. ( I748cc ) - رفع مشکلی که ممکن است به دلیل خطاهای پیادهسازی دستگاه، یک
NullPointerExceptionرخ دهد. - مشکلی که بررسیهای ایمنی
ActivityEmbeddingما به دلیل حذف کلاسهای بلااستفاده توسط proguard با شکست مواجه میشد، برطرف شد.
مشارکت خارجی
- اضافه کردن تمام پلتفرمهای KMP به
window-core( If3d7c )
نسخه ۱.۵.۰-rc01
۲۷ آگوست ۲۰۲۵
androidx.window:window-*:1.5.0-rc01 منتشر شد. نسخه 1.5.0-rc01 شامل این کامیتها است.
رفع اشکالات
- رفع مشکلی که ممکن است به دلیل خطاهای پیادهسازی دستگاه، یک
NullPointerExceptionرخ دهد. - مشکلی که بررسیهای ایمنی
ActivityEmbeddingما به دلیل حذف کلاسهای بلااستفاده توسط proguard با شکست مواجه میشد، برطرف شد.
نسخه ۱.۵.۰-بتا۰۲
۱۳ آگوست ۲۰۲۵
androidx.window:window-*:1.5.0-beta02 منتشر شد. نسخه 1.5.0-beta02 شامل این کامیتها است.
ویژگیهای جدید
- رفع اشکالات جزئی.
مشارکت خارجی
- اضافه کردن تمام پلتفرمهای KMP به
window-core( If3d7c )
نسخه ۱.۵.۰-بتا۰۱
۲ ژوئیه ۲۰۲۵
androidx.window:window-*:1.5.0-beta01 منتشر شد. نسخه 1.5.0-beta01 شامل این کامیتها است.
نسخه ۱.۵.۰-آلفا۰۲
۷ مه ۲۰۲۵
androidx.window:window-*:1.5.0-alpha02 منتشر شد. نسخه 1.5.0-alpha02 شامل این کامیتها است.
تغییرات API
- نقاط توقف
WindowSizeClassرا برای Large و XLarge اضافه کنید. ( I40d85 ) - محاسبهی
WindowMetricsرا به Application Context گسترش دهید. ( I8eeeb , b/360934048 ) - یک Getter برای فعال کردن دسترسی مستقیم به
WindowLayoutInfoارائه دهید ( Ie9513 ) - معرفی API برای ذخیره خودکار وضعیت جاسازی و بازیابی خودکار وضعیت جاسازی پس از شروع مجدد فرآیند برنامه ( Ie0295 )
- حذف API آزمایشی
WindowInsets. ( I68a71 ) - چند سازنده را مخفی کنید ( I87b8d )
رفع اشکالات
- رفع مشکل
EmbeddingRuleکه در برخی مواردhashCodeمتفاوتی برمیگرداند. ( I748cc )
نسخه ۱.۵.۰-آلفا۰۱
۱۲ مارس ۲۰۲۵
androidx.window:window-*:1.5.0-alpha01 منتشر شد. نسخه 1.5.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- انتشار اولیه نسخه بعدی ۱.۵.۰.
نسخه ۱.۴
نسخه ۱.۴.۰
۲۰ مه ۲۰۲۵
androidx.window:window-*:1.4.0 منتشر شد. نسخه ۱.۴.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۳.۰
- جاسازی فعالیت
- API برای سفارشیسازی انیمیشنهای راهاندازی
- جداکننده تعاملی
- پین کردن
ActivityStack - گفتگوی تمام صفحه
- فراخوانی اطلاعات پنجره فعالیت جاسازیشده
- مدیریت بهبود یافته
ActivityStack - اجرای اکتیویتی در یک
ActivityStackمشخص شده
-
WindowMetricsCalculator- بهبود پشتیبانی از قابلیت تست
-
WindowMetrics- روشهای راحت برای محاسبه
withDpوheightDp - بررسی مرزها را به
isAtLeastبهروزرسانی کنید و از مرزهای پایین برای پشتیبانی از افزودن مقادیر جدید استفاده کنید.
- روشهای راحت برای محاسبه
-
WindowSizeClass- اضافه کردن روشی برای محاسبه از
WindowMetrics
- اضافه کردن روشی برای محاسبه از
-
WindowInfoTracker- اضافه کردن API برای تشخیص حالتهای پشتیبانیشده در دستگاه
نسخه ۱.۴.۰-rc02
۲۳ آوریل ۲۰۲۵
androidx.window:window-*:1.4.0-rc02 منتشر شد. نسخه 1.4.0-rc02 شامل این کامیتها است.
رفع اشکالات
- رفع مشکل از کار افتادن proguard برای
ActivityEmbedding.
نسخه ۱.۴.۰-rc01
۱۲ مارس ۲۰۲۵
androidx.window:window-*:1.4.0-rc01 منتشر شد. نسخه 1.4.0-rc01 شامل این کامیتها است.
ویژگیهای جدید
- بهروزرسانیهایی برای API مربوط به
WindowSizeClass. - بهروزرسانیهای APIهای تعبیه فعالیت.
نسخه ۱.۴.۰-بتا۰۲
۱۲ فوریه ۲۰۲۵
androidx.window:window-*:1.4.0-beta02 منتشر شد. نسخه 1.4.0-beta02 شامل این کامیتها است.
ویژگیهای جدید
- حاشیهنویسیای که فقط روی ویژگی بود اما روی دریافتکننده نبود را اصلاح کنید.
نسخه ۱.۴.۰-بتا۰۱
۱۵ ژانویه ۲۰۲۵
androidx.window:window-*:1.4.0-beta01 منتشر شد. نسخه 1.4.0-beta01 شامل این کامیتها است.
ویژگیهای جدید
- API را اضافه کنید تا امکان سفارشیسازی انیمیشنهای
ActivityEmbeddingفراهم شود. - APIهای تست
WindowMetricsCalculatorرا گسترش دهید تا امکان جعل معیارهای پنجره فراهم شود.
تغییرات API
- چند سازنده را مخفی کنید ( I87b8d )
- به برنامهها اجازه دهید انیمیشنهای
ActivityEmbeddingسفارشی کنند ( If31a8 ) - پشتیبانی از
watchosDeviceArm64KMP target و target kotlin 1.9 ( Icf15d ، b/364652024 ) را اضافه میکند. - افشای APIهای
WindowMetricsCalculator. ( I1cebf )
رفع اشکالات
- این کتابخانه اکنون از حاشیهنویسیهای nullness از نوع JSpecify استفاده میکند که از نوع استفاده میکنند. توسعهدهندگان کاتلین باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند:
-Xjspecify-annotations=strict(این پیشفرض است که از نسخه ۲.۱.۰ کامپایلر کاتلین شروع میشود). ( Ie69ac ، b/326456246 )
نسخه ۱.۴.۰-آلفا۰۵
۱۶ اکتبر ۲۰۲۴
androidx.window:window-*:1.4.0-alpha05 منتشر شد. نسخه 1.4.0-alpha05 شامل این کامیتها است.
ویژگیهای جدید
- توابع کمکی برای دریافت
widthDpوheightDpازWindowMetricsاضافه کنید.
تغییرات API
-
widthDpوheightDpرا بهWindowMetricsاضافه کنید. ( Ide026 ) - حذف API آزمایشی
WindowInsets. ( I68a71 ) - نام متدهای بررسی محدودهها را به
isAtLeast( Ib0ab7 ) بهروزرسانی کنید.
نسخه ۱.۴.۰-آلفا۰۴
۲ اکتبر ۲۰۲۴
androidx.window:window-*:1.4.0-alpha04 منتشر شد. نسخه 1.4.0-alpha04 شامل این کامیتها است.
تغییرات API
- یک متد برای محاسبهی
WindowSizeClassازWindowMetricsاضافه شد. ( 874dba ) - برای وضوح بیشتر، متدهای
WindowSizeClassرا بهcontainsWidthDp،containsHeightDpوcontainsWindowSizeDpتغییر دهید. ( fa760d ) - تبدیل
WindowAreaControllerبه کلاس پایه انتزاعی ( I90893 )
رفع اشکالات
- هنگام ایجاد یک
FoldingFeatureآزمایشی، پشتیبانی از مرزهای نسبی را اضافه کنید. ( 2e6b3e ) - رفع اشکالات عمومی هنگام انتخاب
WindowSizeClass.
نسخه ۱.۴.۰-آلفا۰۳
۱۸ سپتامبر ۲۰۲۴
androidx.window:window-*:1.4.0-alpha03 منتشر شد. نسخه 1.4.0-alpha03 شامل این کامیتها است.
ویژگیهای جدید
- یک متد کاربردی برای دریافت
WindowSizeClassازWindowMetricsاضافه کنید. ( I83f1f ) - تغییر نام
isAtLeastبهcontainsBreakpoint( I85b47 ) - با استفاده از اعداد اعشاری، overload را به
computeWindowSizeClassاضافه کنید. ( I3dcb2 ، b/364677934 ، b/364677802 ، b/364680886 )
رفع اشکالات
- نقاط شکست گمشده را به مجموعه نقاط شکست پیشفرض
WindowSizeClassاضافه کنید. - اشکالی که باعث میشد ابعاد فشرده در برخی موارد به درستی انتخاب نشوند، برطرف شد.
نسخه ۱.۴.۰-آلفا۰۲
۴ سپتامبر ۲۰۲۴
androidx.window:window-*:1.4.0-alpha02 منتشر شد. نسخه 1.4.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
پشتیبانی از WindowSizeClass سفارشی اضافه شد.
- سازندهی
WindowSizeClassرا باز کنید تا توسعهدهندگان بتوانند از سازندهی خودشان استفاده کنند. - متدهای کاربردی
isAtLeastاضافه کنید تا توسعهدهندگان بتوانند طیف وسیعی از مقادیرWindowSizeClassرا پردازش کنند. - یک تابع افزونه روی
Set<WindowSizeClass>اضافه کنید تا بهترین تطابق را از مجموعه محاسبه کند. - ثابتهایی را برای نقاط توقف پیشنهادی اندروید اضافه کنید.
- مجموعه نقاط شکست مربوط به نقاط شکست پیشنهادی اندروید را اضافه کنید.
تغییرات API
- نام متدهای bounds را برای
WindowSizeClassبهروزرسانی کنید. ( If89a6 ) - API
WindowSizeClassبهروزرسانی کنید تا در آینده از افزودن مقادیر جدید برای نقاط شکست پشتیبانی کند. به جای داشتن مرزهای مطلق، از مرزهای پایینتر استفاده میکنیم و به توسعهدهندگان توصیه میکنیم هنگام پردازشWindowSizeClassاز بررسیهای مرزهای پایینتر استفاده کنند.WindowWidthSizeClassوWindowHeightSizeClassموجود منسوخ خواهند شد زیرا دیگر توسعه نخواهند یافت. ( I014ce )
نسخه ۱.۴.۰-آلفا۰۱
۷ آگوست ۲۰۲۴
androidx.window:window-*:1.4.0-alpha01 منتشر شد. نسخه 1.4.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- قابلیت پین کردن ActivityStack به برنامهها اجازه میدهد تا محتوا را در یک کانتینر پین کنند و ناوبری آن را از کانتینر دیگر جدا کنند.
- جداکننده تعاملی به برنامهها اجازه میدهد تا یک جداکننده ثابت یا قابل جابجایی بین دو فعالیت را در یک ارائه تقسیمشده نمایش دهند.
- کمنور کردن تمامصفحهی دیالوگ به برنامهها اجازه میدهد تا ناحیهی کمنور شدن دیالوگ را مشخص کنند، یا کل پنجرهی وظیفه را کمنور کنند یا فقط محفظهای را که دیالوگ را نشان میدهد، کمنور کنند.
- قابلیت فراخوانی اطلاعات پنجره فعالیت تعبیهشده (Embedded Activity Window Info Callback) به برنامهها اجازه میدهد تا بهطور مداوم بهروزرسانیهای پنجره فعالیت تعبیهشده را دریافت کنند.
- جاسازی پسزمینه انیمیشن به برنامهها اجازه میدهد تا پسزمینه انیمیشن را مشخص کنند و کیفیت انیمیشن انتقال را هنگام استفاده از
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ها برای نسخه ۱.۴. ( I56774 )
رفع اشکالات
- رفع اشکال در دستگاههای خاص که در آن هنگام فعال بودن یک جلسه، به جای ACTIVE، عبارت UNAVAILABLE برگردانده میشد.
- به دلیل پشتیبانی ناپایدار از API، پشتیبانی از
transferActivityToWindowAreaرا در دستگاههایی باvendorApiLevelبرابر با ۲ حذف میکند. - معرفی API برای فعال کردن قابلیت کشیدن به حالت تمام صفحه برای جداکنندهی قابل کشیدنِ تعبیهی فعالیت (Activity Embedding). ( I645c9 )
- به برنامهها اجازه دهید انیمیشنهای
ActivityEmbeddingرا از طریق پارامترهای انیمیشن برایSplitAttributesغیرفعال کنند. ( Idc01a ) - حذف دستورالعمل دسترسی به APIهای پلتفرم جدید، زیرا این امر به طور خودکار از طریق مدلسازی API هنگام استفاده از R8 با AGP 7.3 یا بالاتر (مثلاً R8 نسخه 3.3) و برای همه نسخهها هنگام استفاده از AGP 8.1 یا بالاتر (مثلاً D8 نسخه 8.1) اتفاق میافتد. به مشتریانی که از AGP استفاده نمیکنند، توصیه میشود به D8 نسخه 8.1 یا بالاتر بهروزرسانی کنند. برای جزئیات بیشتر به این مقاله مراجعه کنید. ( Ia60e0 ، b/345472586 )
- به افزونهها اجازه دهید پارامترهای انیمیشن را برای
SplitAttributesدریافت کنند تا دستگاه بتواند از آن برای انتقال انیمیشن استفاده کند. ( Iede00 ) - پنهان کردن APIهای پوششی ( Ic4251 )
- معرفی APIها برای پیکربندی جداکننده ثابت یا قابل جابجایی برای تقسیمبندی ( Ia7a78 )
- چگالی به
WindowMetricsاضافه شد ( Id6723 ) - برای دریافت
SupportedPosturesAPI اضافه کنید. ( If557a ) - حذف
setLaunchingActivityStackاز API آزمایشی ( I191cf ) - معرفی
ActivityEmbeddingController#embeddedActivityWindowInfo( I24312 ) -
#getTokenرا منسوخ کنید و#getActivityStackToken( Ie0471 ) را اضافه کنید. - معرفی آداپتور فراخوانی برای API جریان
embeddedActivityWindowInfo( Ida77f ) - اضافه کردن آداپتور فراخوانی برای API جریان overlayInfo ( I7264f )
- معرفی
WindowSdkExtensionsRuleبرای لغوextensionsVersionبرای آزمایش. ( Ifb928 ) - - برای سازگاری با کاربردهای
ActivityOptionsCompat#setLaunchingActivityStackرا به Bundle منتقل کنید.- کاربران باید به جای خود
ActvityOptionsactivityOptions.toBundleرا ارسال کنند. -
#setLaunchingActivityStack(Activity)حذف کنید. کاربران باید برای دریافتActivityStackActivityEmbeddingController#getActivityStac(Activity)استفاده کنند وActivityStackبه#setLaunchingActivityStackارسال کنند. ( Ie0ccc )
- کاربران باید به جای خود
- -
ActivityStack.TokenوSpltInfo.Tokenرا به عنوان شناسهای برای ارتباط بین WM Jetpack و افزونهها معرفی کنید.- منسوخ/جایگزین کردن APIها برای دریافت/بازگرداندن توکن به جای IBinder. ( I12b24 )
- - معرفی
ActivityEmbeddingController#invalidateVisibleActivityStacks-
SplitController#invalidateTopVisibleSplitAttributesرا حذف کنید زیرا این ویژگی در#invalidateVisibleActivityStacks( I02ef5 ) ادغام شده است.
-
- - اضافه کردن API برای تنظیم پیکربندی جاسازی. ( I59a4a )
- - افزودن پین/باز کردن APIهای بالای
ActivityStackandroidx.Window- بهروزرسانی برنامه آزمایشی برای پین کردن/باز کردن
ActivityStackبالایی ( I24dd3 )
- بهروزرسانی برنامه آزمایشی برای پین کردن/باز کردن
- دوباره
#finishActivityStacksوActivityEmbeddingOptions( Ic1ab3 ) را اضافه کنید - API های ناپایدار را حذف کنید. ( Ibc534 , b/302380585 )
نسخه ۱.۳
نسخه ۱.۳.۰
۲۹ مه ۲۰۲۴
androidx.window:window-*:1.3.0 منتشر شد. نسخه ۱.۳.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۲.۰
- پشتیبانی چند پلتفرمی کاتلین برای کلاسهای اندازه پنجره.
نسخه ۱.۳.۰-rc01
۱۴ مه ۲۰۲۴
جتپک ۱.۳ WindowManager از کاتلین برای پشتیبانی از قابلیتهای WindowSizeClass در پلتفرمهای مختلف پشتیبانی میکند و همچنین چندین اشکال را برطرف کرده است.
androidx.window:window-*:1.3.0-rc01 منتشر شد. نسخه 1.3.0-rc01 شامل این کامیتها است.
نسخه ۱.۳.۰-بتا۰۲
۱ مه ۲۰۲۴
androidx.window:window-*:1.3.0-beta02 منتشر شد. نسخه 1.3.0-beta02 شامل این کامیتها است.
تغییرات API
- پشتیبانی از ایجاد و استفاده از
WindowSizeClassسفارشی را حذف کنید. ( Id1143 )
رفع اشکالات
- رفع خطای
KotlinReflectionInternalErrorناشی از حذف برخی فایلها توسط proguard در پیادهسازیهای خاص دستگاه ( I01b02 )
نسخه ۱.۳.۰-بتا۰۱
۳ آوریل ۲۰۲۴
androidx.window:window-*:1.3.0-beta01 منتشر شد. نسخه 1.3.0-beta01 شامل این کامیتها است.
نسخه ۱.۳.۰-آلفا۰۳
۶ مارس ۲۰۲۴
androidx.window:window-*:1.3.0-alpha03 منتشر شد. نسخه 1.3.0-alpha03 شامل این کامیتها است.
تغییرات API
- تقسیم
WindowSizeClassUtilبه متدهای متمرکزتر. ( Ie9292 ) - بازیابی
WindowSizeClass#compute( I21355 , b/324293374 )
رفع اشکالات
- رفع مشکل کرش در جایی که context ارائه شده به درستی unwrapped نمیشد. ( 94d10ce , b/318787482 )
نسخه ۱.۳.۰-آلفا۰۲
۷ فوریه ۲۰۲۴
androidx.window:window-*:1.3.0-alpha02 منتشر شد. نسخه 1.3.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
- بهروزرسانیهایی در سطح API مربوط به کلاس اندازه پنجره (Window Size Class) انجام شده است تا انعطافپذیری را برای توسعهدهندگانی که میخواهند از کلاسهای اندازه خودشان استفاده کنند، بهبود بخشد.
تغییرات API
- محدودیتهای ارتفاع را به انتخابگر عرض اضافه کنید. ( I23393 )
- توابع کاربردی برای انتخاب یک
WindowSizeClassاز یک مجموعه اضافه کنید. توابع امتیازدهی آزمایشی اضافه کنید تا توسعهدهندگان بتوانند انتخابگرهای خودشان را بنویسند. یک تابع افزونه انتخابگر اضافه کنید تا عریضترینWindowSizeClassدر یک محدوده مشخص انتخاب کند. ( I0c944 ) - سازندهی
WindowSizeClassرا باز کنید تا نقاط توقف سفارشی اضافه شوند. ( Ic1ff3 ) - تابع راحتی برای ایجاد کلاس اندازه از عرض، ارتفاع و چگالی اضافه کنید. ( If67f4 )
رفع اشکالات
- رفع خطا هنگام کوتاه شدن مقدار اعشاری به 0. ( 272ffac )
نسخه ۱.۳.۰-آلفا۰۱
۱۵ نوامبر ۲۰۲۳
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— به سیستم اطلاع میدهد که برنامه از گزینه تمام صفحه تنظیمات لغو سازگاری نسبت ابعاد کاربر انصراف داده است.
-
نسخه ۱.۲
نسخه ۱.۲.۰
۱۵ نوامبر ۲۰۲۳
androidx.window:window-*:1.2.0 منتشر شد. نسخه ۱.۲.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۱.۰
- APIهای پنجره آزمایشی را برای دسترسی به صفحه نمایش پشتی ارائه دهید.
- APIهای آزمایشی برای ایجاد
FoldingFeatureاکنون پایدار شدهاند. - APIهای آزمایشی برای تنظیم مقادیر جعلی
ActivityEmbeddingاکنون پایدار هستند. -
WindowLayoutInfoPublisherRuleاکنون هنگام دریافت مقداری ازUiContextمقدار لغو شده را گزارش میدهد. -
WindowInfoTrackerدادههای ویژگیهای تاخوردگی را به پارامترهایUiContextگزارش میدهد. - نسخه افزونهها را روی دستگاه نمایش دهید.
نسخه ۱.۲.۰-rc01
۱ نوامبر ۲۰۲۳
androidx.window:window-*:1.2.0-rc01 منتشر شد. نسخه 1.2.0-rc01 شامل این کامیتها است.
ویژگیهای جدید
- APIهای پنجره آزمایشی را برای دسترسی به صفحه نمایش پشتی ارائه دهید.
- APIهای آزمایشی برای ایجاد
FoldingFeatureاکنون پایدار شدهاند. - APIهای آزمایشی برای تنظیم مقادیر جعلی
ActivityEmbeddingاکنون پایدار هستند. -
WindowLayoutInfoPublisherRuleاکنون هنگام دریافت مقداری ازUiContextمقدار لغو شده را گزارش میدهد. -
WindowInfoTrackerدادههای ویژگیهای تاخوردگی را به پارامترهایUiContextگزارش میدهد. - نسخه افزونهها را روی دستگاه نمایش دهید.
نسخه ۱.۲.۰-بتا۰۴
۱۸ اکتبر ۲۰۲۳
androidx.window:window-*:1.2.0-beta04 منتشر شد. نسخه 1.2.0-beta04 شامل این کامیتها است.
تغییرات API
- API های ناپایدار را حذف کنید. ( Ibc534 , b/302380585 )
نسخه ۱.۲.۰-بتا۰۳
۲۰ سپتامبر ۲۰۲۳
androidx.window:window-*:1.2.0-beta03 منتشر شد. نسخه 1.2.0-beta03 شامل این کامیتها است.
ویژگیهای جدید
- بررسیهای
RequiresApiرا برای APIهایی که برای عملکرد صحیح به نسخه خاصی از افزونهها نیاز دارند، اضافه کنید. - یک API اضافه کنید تا نسخه افزونهها روی دستگاه نمایش داده شود.
تغییرات API
- نسخه افزونه SDK پنجره مورد نیاز را روی APIهای عمومی حاشیهنویسی کنید.
-
isXXXSupportedدر کامپوننت Activity Embedding حذف کنید. ( Ie3dae )
-
- برای گزارش نسخه افزونه روی دستگاه
WindowSdkExtensionsرا معرفی کنید.- برای حاشیهنویسی حداقل نسخه افزونه مورد نیاز،
RequiresWindowSdkExtensionرا معرفی کنید. ( I05fd4 )
- برای حاشیهنویسی حداقل نسخه افزونه مورد نیاز،
- ( I17048 ) باعث میشود
WindowAreaInfo#getCapabilityغیرقابل تهیسازی شود.
نسخه ۱.۲.۰-بتا۰۱
۲۶ ژوئیه ۲۰۲۳
androidx.window:window-*:1.2.0-beta01 منتشر شد. نسخه 1.2.0-beta01 شامل این کامیتها است.
ویژگیهای جدید
- APIهای پنجره آزمایشی را برای دسترسی به صفحه نمایش پشتی ارائه دهید.
- APIهای آزمایشی برای ایجاد
FoldingFeatureاکنون پایدار شدهاند. - APIهای آزمایشی برای تنظیم مقادیر جعلی
ActivityEmbeddingاکنون پایدار هستند. -
WindowLayoutInfoPublisherRuleاکنون هنگام دریافت مقداری ازUiContextمقدار لغو شده را گزارش میدهد. -
WindowInfoTrackerدادههای ویژگیهای تاخوردگی را به پارامترهایUiContextگزارش میدهد.
تغییرات API
- APIهای
WindowAreaرا به عنوان آزمایشی علامتگذاری میکند تا تغییرات API برای انتشار پایدار در نسخه ۱.۳ ( I857f5 ) ادامه یابد. - فایلهای API بهروزرسانی شدند تا حاشیهنویسی مربوط به سرکوب سازگاری ( I8e87a ، b/287516207 ) انجام شود.
نسخه ۱.۲.۰-آلفا۰۳
۲۱ ژوئن ۲۰۲۳
androidx.window:window-*:1.2.0-alpha03 منتشر شد. نسخه 1.2.0-alpha03 شامل این کامیتها است.
ویژگیهای جدید
- حذف API های منسوخ شده از سطح API.
- اضافه کردن APIها برای پشتیبانی از نمایشهای همزمان.
- یک ویژگی اضافه کنید تا از لغو تغییر اندازه اجباری جلوگیری شود.
- برای لغو حداقل نسبت ابعاد، ویژگی اضافه کنید.
- برای پشتیبانی از تست واحد پیرامون تعبیه فعالیت،
ActivityEmbeddingRuleپایدار کنید.
تغییرات API
رفع اشکالات
- افزودن ویژگی compat با قابلیت عدم پذیرش برای لغو تغییر اندازه اجباری ( Ie7ab1 )
-
SESSION_STATE_CONTENT_INVISIBLEرا از رابط افزونهها حذف میکند. ( I6ed19 ) - برای پشتیبانی از تست واحد پیرامون تعبیه Activity،
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منتقل کنید. - اضافه کردن پشتیبانی
Flowبرای دریافت لیستSplitInfo( I7f1b6 )
- تابع
- یک قانون آزمایشی برای
ActivityEmbeddingController( I42e9b ) اضافه کنید - تغییر نام
ActivityOptionsCompatبهActivityEmbeddingOptions( I89301 ) - برای نشان دادن اینکه آیا تعبیه فعالیت (Activity embedding) در دسترس است یا خیر،
splitSupportStatusرا اضافه کنید ( I10024 ) - برای نمایش بهتر مقدار
DEFAULTSplitAttributes.BackgroundColorمعرفی کنید. توضیح دهید که رنگ پسزمینه انیمیشن غیرمات پشتیبانی نمیشود، بنابراین هر رنگ غیرماتی به عنوان پیشفرض در نظر گرفته میشود، به این معنی که از رنگ پسزمینه پنجره تم فعلی استفاده شود. ( Ic6b95 ) -
alwaysAllow() وalwaysDisallow() را باALWAYS_ALLOW وALWAYS_DISALLOW جایگزین کنید. ( I3057b ) - APIهایی برای
SplitRule،SplitAttributes،SplitAttributesCalculatorاضافه کنید. ( I92d23 ) - اضافه کردن
TestActivityStackبرای ایجادActivityStackجهت تست- برای ایجاد
SplitInfoجهت آزمایش،TestSplitInfoاضافه کنید. ( I8e779 )
- برای ایجاد
- راهی برای ایجاد
SplitAttributesCalculatorParamsجعلی اضافه کنید تا توسعهدهندگان بتوانندSplitAttributesCalculatorسفارشیشده خود را تأیید کنند ( Id4a6e ) -
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)وWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)را اضافه کنید ( I66c7f )
نسخه ۱.۲.۰-آلفا۰۲
۷ ژوئن ۲۰۲۳
androidx.window:window-*:1.2.0-alpha02 منتشر شد. نسخه 1.2.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
- API تست را بهروزرسانی کنید تا برای ویژگیهای تاخوردگی نامشخص، ثابتی داشته باشد.
- بازنویسی با
WindowLayoutInfoPublishRuleتمام مقادیرwindowLayoutInfo، از جمله API مبتنی بر Context را بازنویسی میکند.
تغییرات API
- برای ویژگی تا شدن از مرکز که مشخص نشده، ثابت اضافه کنید. ( I7530c )
رفع اشکالات
-
WindowLayoutInfoPublishRuleبرای پشتیبانی از لغوWindowLayoutInfoمبتنی برContextبهروزرسانی کنید. ( I2037a )
نسخه ۱.۲.۰-آلفا۰۱
۲۴ مه ۲۰۲۳
androidx.window:window-*:1.2.0-alpha01 منتشر شد. نسخه 1.2.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
APIهای تست پیرامون Activity Embedding و WindowLayoutInfoTracker را پایدار کنید. ActivityEmbeddingRule به پایدار ارتقا یافته است. WindowMetricsCalculatorRule به پایدار ارتقا یافته است. توابع کمکی برای ایجاد FoldingFeature برای تست به پایدار ارتقا یافتهاند.
تغییرات API
- برای پشتیبانی از تست واحد پیرامون تعبیه Activity،
ActivityEmbeddingRuleرا پایدار کنید. ( I8d6b6 ) -
WindowMetrisCalculatorTestRuleپایدار است و معیارهای خرد را برای تستهای JVM مجاز میداند. برای نتایج دقیق، استفاده از یک شبیهساز را توصیه میکنیم. - APIهای تست برای
WindowLayoutInfoرا برای پشتیبانی از تست JVM تثبیت کنید. ( Ie036e ) - برای مقادیر ویژگی تاشو تست،
IntRangeاضافه کنید. ( I69f7d )
نسخه ۱.۱
نسخه ۱.۱.۰
۷ ژوئن ۲۰۲۳
androidx.window:window-*:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۰.۰
جاسازی فعالیت
-
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDبه عنوان یک ویژگی بولی از تگ<application>در مانیفست برنامه اضافه شد. -
isSplitSupportedمنسوخ شده و باsplitSupportStatusجایگزین شده است تا اطلاعات دقیقتری در مورد دلیل عدم دسترسی به ویژگی تقسیم ارائه دهد. - کلاس تودرتوی
SplitController.SplitSupportStatusبرای ارائه ثابتهای حالت برای ویژگیsplitSupportStatusاضافه شد. -
SplitControllerبه چندین ماژول بازسازی شد:- ماژول
ActivityEmbeddingControllerبرای API های مرتبط باActivityیاActivityStack. -
isActivityEmbeddedازSplitControllerبهActivityEmbeddingControllerمنتقل شد. - ماژول
RuleControllerبرای عملیات مرتبط باEmbeddingRule: - API های
SplitControllerحذف شدند: -
clearRegisteredRules() -
getSplitRules() -
initialize() -
registerRule() -
unregisterRule() - APIهای
RuleControllerاضافه شده: -
addRule()- یک قانون اضافه میکند یا قانونی را که برچسب یکسانی دارد، بهروزرسانی میکند. -
removeRule()— یک قانون را از مجموعه قوانین ثبتشده حذف میکند. -
setRules()— مجموعهای از قوانین را ایجاد میکند. -
clearRules()— تمام قوانین ثبتشده را حذف میکند. -
parseRules()— قواعد را از تعاریف قواعد XML تجزیه میکند.
- ماژول
- همه ماژولها نیاز به یک context دارند که باید توسط متد
#getInstance()مقداردهی اولیه شود، از جمله:-
ActivityEmbeddingController#getInstance(Context) -
SplitController#getInstance(Context) -
RuleController#getInstance(Context)
-
- کلاس
EmbeddingAspectRatioبرای تعریف ثابتهای رفتاری شمارشی مربوط به نسبت ابعاد نمایشگر اضافه شد. - کلاس
SplitAttributesبرای تعریف طرحبندی تقسیمبندیشده اضافه شد. - توابع محاسبهگر
SplitAttributesبهSplitControllerاضافه شد تا طرحبندیهای تقسیمبندیشده را سفارشیسازی کند:-
setSplitAttributesCalculator(Function) -
clearSplitAttributesCalculator() -
isSplitAttributesCalculatorSupported()بررسی میکند که آیا APIهایSplitAttributesCalculatorدر دستگاه پشتیبانی میشوند یا خیر.
-
- فیلد
EmbeddingRule#tagاضافه شد. - بهروزرسانیهای API در
SplitRule:-
defaultSplitAttributesاضافه شد — طرحبندی تقسیمبندی پیشفرض یک تقسیمبندی را تعریف میکند؛ جایگزینsplitRatioوlayoutDirectionمیشود. - ترجمه ویژگیهای XML به نامهای
splitRatioوsplitLayoutDirectionبهdefaultSplitAttributesاضافه شد. - تعاریف حداقل ابعاد تغییر کرد تا به جای پیکسلها از پیکسلهای مستقل از چگالی (dp) استفاده شود.
-
minHeightDpبا مقدار پیشفرض ۶۰۰dp اضافه شد. -
minWidthبهminWidthDpبا مقدار پیشفرض ۶۰۰dp تغییر یافت. -
minSmallestWidthبهminSmallestWidthDpبا مقدار پیشفرض ۶۰۰dp تغییر یافت. -
maxAspectRatioInHorizontalبا مقدار پیشفرضALWAYS_ALLOWاضافه شد. -
maxAspectRatioInPortraitبا مقدار پیشفرض ۱.۴ اضافه شد. - کلاس تودرتوی
FinishBehaviorبرای جایگزینی ثابتهای رفتار پایان تعریف شده است. - تغییرات ویژگی را در کلاس تودرتوی Builder از
SplitPairRuleوSplitPlaceholderRuleاعمال کرد.
-
- برای ارائه اطلاعات بیشتر مربوط به تقسیمبندی،
SplitInfo#getSplitRatio()باSplitInfo#getSplitAttributes()جایگزین شد.
طرحبندی پنجره
- پشتیبانی آزمایشی از زمینه رابط کاربری غیرفعال به
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-like
FinishBehaviorمنتقل شوند:-
FINISH_NEVERبهFinishBehavior.NEVERتغییر میکند. -
FINISH_ALWAYSبهFinishBehavior.ALWAYSتغییر میکند. -
FINISH_ADJACENTبهFinishBehavior.ADJACENTتغییر میکند.
-
- جهت طرحبندی باید به
SplitAttributes.LayoutDirectionمنتقل شود:-
ltrبهSplitAttributes.LayoutDirection.LEFT_TO_RIGHTتغییر میکند. -
rtlبهSplitAttributes.LayoutDirection.RIGHT_TO_LEFTتغییر میکند. - تغییر
localeبهSplitAttributes.LayoutDirection.LOCALE. -
splitRatioباید بهSplitAttributes.SplitType.ratio(splitRatio)منتقل شود.
-
- مهاجرتهای
SplitPairRule.Builder:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)بهkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. - تغییرات
setLayoutDirection(layoutDirection)وsetSplitRatio(ratio)درkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) -
setFinishPrimaryWithSecondaryوsetFinishSecondaryWithPrimaryثابتهای شمارشیFinishBehaviorرا میگیرند. برای جزئیات بیشتر به «انتقالهای SplitRule» مراجعه کنید. - برای نمایش تقسیمبندیها در دستگاههای عمودی، از
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)استفاده کنید.
-
- مهاجرتهای
SplitPlaceholder.Builder:- فقط پارامترهای
filtersوplaceholderIntentدارد. سایر ویژگیها به setterها منتقل میشوند. برای جزئیات بیشتر به «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)استفاده کنید.
- فقط پارامترهای
نسخه ۱.۱.۰-rc01
۱۰ مه ۲۰۲۳
androidx.window:window-*:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 شامل این کامیتها است.
ویژگیهای جدید
-
ActivityEmbeddingبه عنوان یک API پایدار منتشر کنید. - رفع اشکالات مختلف.
نسخه ۱.۱.۰-بتا۰۲
۵ آوریل ۲۰۲۳
androidx.window:window-*:1.1.0-beta02 منتشر شد. نسخه 1.1.0-beta02 شامل این کامیتها است.
ویژگیهای جدید
- اصلاحات داخلی و پاکسازی.
نسخه ۱.۱.۰-بتا۰۱
۲۲ مارس ۲۰۲۳
androidx.window:window-*:1.1.0-beta01 منتشر شد. نسخه 1.1.0-beta01 شامل این کامیتها است.
جاسازی فعالیت
-
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDبه عنوان یک ویژگی بولی از تگ<application>در مانیفست برنامه اضافه شد. -
isSplitSupportedمنسوخ شده و باsplitSupportStatusجایگزین شده است تا اطلاعات دقیقتری در مورد دلیل عدم دسترسی به ویژگی تقسیم ارائه دهد. - کلاس تودرتوی
SplitController.SplitSupportStatusبرای ارائه ثابتهای حالت برای ویژگیsplitSupportStatusاضافه شد. -
SplitControllerبه چندین ماژول بازسازی شد:- ماژول
ActivityEmbeddingControllerبرای API های مرتبط باActivityیاActivityStack. -
isActivityEmbeddedازSplitControllerبهActivityEmbeddingControllerمنتقل شد. - ماژول
RuleControllerبرای عملیات مرتبط باEmbeddingRule: - API های
SplitControllerحذف شدند:-
clearRegisteredRules() -
getSplitRules() -
initialize() -
registerRule() -
unregisterRule()
-
- APIهای
RuleControllerاضافه شده:-
addRule()- یک قانون اضافه میکند یا قانونی را که برچسب یکسانی دارد، بهروزرسانی میکند. -
removeRule()— یک قانون را از مجموعه قوانین ثبتشده حذف میکند. -
setRules()— مجموعهای از قوانین را ایجاد میکند. -
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
EmbeddingAspectRatioclass to define enum-like behavior constants related to display aspect ratio. - Added the
SplitAttributesclass to define the split layout. - Added
SplitAttributescalculator functions toSplitControllerto customize split layouts:-
setSplitAttributesCalculator(Function) -
clearSplitAttributesCalculator() -
isSplitAttributesCalculatorSupported()to check if the SplitAttributesCalculator APIs are supported on the device
-
- Added
EmbeddingRule#tagfield. - API updates in
SplitRule:- Added
defaultSplitAttributes— Defines the default split layout of a split; replacessplitRatioandlayoutDirection. - Added translation of the XML properties
splitRatioandsplitLayoutDirectiontodefaultSplitAttributes. - Changed minimum dimension definitions to use density-independent pixels (dp) instead of pixels.
- Added
minHeightDpwith default value 600dp. - Changed
minWidthtominWidthDpwith default value 600dp. - Changed
minSmallestWidthtominSmallestWidthDpwith default value 600dp. - Added
maxAspectRatioInHorizontalwith default valueALWAYS_ALLOW. - Added
maxAspectRatioInPortraitwith default value1.4. - Defined
FinishBehaviornested class to replace finish behavior constants. - Applied the property changes to the
Buildernested class ofSplitPairRuleandSplitPlaceholderRule.
- 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_ENABLEDproperty 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. -
SplitInforatio- 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:
-
SplitControllermigrations:-
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().
-
-
SplitRuleproperty migrations:-
minWidthandminSmallestWidthnow use dp units instead of pixels. Apps can use the following call:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )or simply divideminWithin pixels bydisplayMetrics#density.
-
- Finish behavior constants must be migrated to
FinishBehaviorenum-like class constants:-
FINISH_NEVERchanges toFinishBehavior.NEVER. -
FINISH_ALWAYSchanges toFinishBehavior.ALWAYS. -
FINISH_ADJACENTchanges toFinishBehavior.ADJACENT.
-
- Layout direction must be migrated to
SplitAttributes.LayoutDirection:-
ltrchanges toSplitAttributes.LayoutDirection.LEFT_TO_RIGHT. -
rtlchanges toSplitAttributes.LayoutDirection.RIGHT_TO_LEFT. -
localechanges toSplitAttributes.LayoutDirection.LOCALE. -
splitRatiomust be migrated toSplitAttributes.SplitType.ratio(splitRatio).
-
-
SplitPairRule.Buildermigrations:-
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() ) -
setFinishPrimaryWithSecondaryandsetFinishSecondaryWithPrimarytake theFinishBehaviorenum-like constants. See “SplitRule migrations” for details. - Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)to show splits on portrait devices.
-
-
SplitPlaceholder.Buildermigrations:- Has only
filtersandplaceholderIntentparameters. Other properties move to setters. See “SplitPairRule.Builder migrations” for details. -
setFinishPrimaryWithPlaceholdertakes theFinishBehaviorenum-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
February 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
WindowLayoutInfofrom a UI context.
API Changes
- Add
splitSupportStatusto indicate if Activity embedding is available. ( I10024 ) - Make UI Context
WindowLayoutInfoAPI as experimental. ( I58ee0 ) - Introduces the
WindowAreaControllerand API's to enableRearDisplayMode to move the current window to the display that is aligned with the rear camera. ( Iffcbf ) - Update default background color. ( I1ac1b )
- Add
SplitAttributesparams. ( I18bdd ) - Add APIs for
SplitRule,SplitAttributes,SplitAttributesCalculator. ( I92d23 ) - Improve the APIs around
maxAspectRatio:- Replace
alwaysAllow()andalwaysDisallow()withALWAYS_ALLOWandALWAYS_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.
-
SplitInfoconstructor -
ActivityStackconstructor ( Ide534 )
-
-
SplitRulenow 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#parseRulesto be static ( I785df ) - Improve the APIs around ActivityEmbedding
- Align the API naming - Use add/remove for multiple instances:
-
registerRulechanges toaddRule -
unregisterRulechanges toremoveRule - Replace
getSplitRuleswithgetRulessinceActivityRuleis not a split rule - Add
RuleController#setRulesto set a bunch of rules - Extract rule related APIs from
SplitControllerto singletonRuleController. They are: -
addRule -
removeRule -
getRules -
setRules -
clearRules -
parseRules - Extract
#isActivityEmbeddedfromSplitControllerto singletonActivityEmbeddingController. They are: -
isActivityEmbedded - Remove
SplitController#initialize. To set rules from XML file, please useRuleController#parseRulesand#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
#clearRulesresults 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#parseRuleswith the XML resources id and callRuleController#setRulesto 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
SplitRuleBuilder 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#layoutDirto#layoutDirectionandSplitRule Builder#setLayoutDirtoBuilder#setLayoutDirection. ( I3f6d1 )
Version 1.1.0-alpha04
۹ نوامبر ۲۰۲۲
androidx.window:window-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits.
ویژگیهای جدید
- Expose a method to determine if an
ActivityStackis empty forActivityEmbedding. - Removed experimental API tags from
ActivityEmbeddingAPIs. - Hide
ActivityRuleconstructor as theBuilderis the preferred way to construct. - Add an experimental method to get the
WindowInsetsonWindowMetrics. - Update
SplitPlaceholderFinishBehaviorto prevent finishing the placeholder. Finishing the placeholder caused some confusing behavior.
API Changes
- Make val
isEmptypublic to replace funisEmpty. - Rename
ActivityStackparameter activities toactivitiesInProcess. ( Ia5055 ) - Remove
ActivityFilter#matchesClassNameandActivityFilter#matchesClassNameOrWildCardbecause they are confusing. - Add
ActivityFilter#componentNameabdActivityFilter#intentActionto allow the caller to distinguish different filters ( I41f22 ) - Remove the
@DeprecatedAPIs from the experimental API ( I216b3 ) - Remove
@ExperimentalWindowApifor Activity Embedding APIs ( I69ebe ) - Hide
ActivityRuleconstructor, use Builder instead. ( If4eb6 ) - Add APIs to check if an Activity is part of the
ActivityFilter. ( Ia43cf ) - Update API files to reflect changes in
WindowMetricsandWindowMetricsCalculatorCompatclasses ( I667fe ) - Update
ActivityEmbeddingProperty Javadoc and class name ( Ia1386 ) - Adding
ActivityEmbeddingproperty tag names to be used in AndroidManifest.xml ( Id1ad4 ) - Added new API
SplitPlaceholderFinishBehaviorandSplitPlaceholderRule.finishPrimaryWithPlaceholder, this replaces existingSplitPlaceholderRule.finishPrimaryWithSecondarywhich defines when placeholder activites are finished, how associated activites in Activity Embedding should behave. ( I64647 )
رفع اشکالات
- Introduces the
WindowAreaControllerand API's to enableRearDisplayMode to move the current window to the display that is aligned with the rear camera. ( I388ab )
Version 1.1.0-alpha03
July 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 Changes
- Update default values for embedding rule properties. ( Ic4d35 )
Version 1.1.0-alpha02
۱۱ مه ۲۰۲۲
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
۱۱ مه ۲۰۲۲
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
April 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 Changes
- 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 )
نسخه ۱.۰
نسخه ۱.۰.۰
January 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
WindowInfoTrackerandFoldingFeature.WindowMetricsCalculatorto help calculate the current WindowMetrics.
Version 1.0.0-rc01
۱۵ دسامبر ۲۰۲۱
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
November 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 Changes
- 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
۲۷ اکتبر ۲۰۲۱
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 Changes
- 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
September 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
۱۸ آگوست ۲۰۲۱
androidx.window:window-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
ویژگیهای جدید
- Removed old constants and made
FoldingFeatureinto an interface.
API Changes
- Remove old constants and make FoldFeature an interface. ( I9a2d5 )
رفع اشکالات
- Libraries that depend on the
Test Corelibrary have been upgraded to version1.4.0and will now work with Android platform version S. ( I88b72 , b/189353863 )
Version 1.0.0-alpha10
August 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 Changes
- 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
۳۰ ژوئن ۲۰۲۱
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 Changes
- Add helper method to create test display features. ( I3cf54 )
- Change from
occlusionModetoocclusionType.
- Change from
رفع اشکالات
- Emit initial value when adding multiple consumers of the data streams.
Version 1.0.0-alpha08
۱۶ ژوئن ۲۰۲۱
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
June 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-javaartifact to expose Java-friendly APIs to register and unregister callbacks. - New
window-rxjava2andwindow-rxjava3artifacts to expose RxJava adapted APIs.
API Changes
- Add
WindowServicesto 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
May 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_FLIPPEDfrom the FoldingFeature states since it is not supported by any use-case at the moment. - We have also removed other deprecated APIs.
API Changes
- Adding Kotlin as a dependency.
- Migrate core library to Kotlin. ( Idd995 )
- Removed
DisplayFeaturebuilder. ( I61fa4 ) - Removed
DeviceStatefrom public api, useFoldingFeatureinstead. ( Id6079 ) - Remove device state callback from extensions. ( I5ea83 )
- Remove
STATE_FLIPPEDfrom FoldingFeature. ( I9c4e1 ) - Remove deprecated registration methods. ( Ib381b )
Version 1.0.0-alpha05
March 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 Changes
- Add convenience methods for working with FoldingFeatures ( Ie733f )
- Removes synchronous read methods from WindowManager ( I96fd4 )
Version 1.0.0-alpha04
۱۰ مارس ۲۰۲۱
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
February 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
January 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 Changes
- Deprecate APIs that will be removed in the next alpha ( Ib7cc4 )
- Updates
ExtensionInterfaceto accept explicit Activity references. ( I07ded ) - Introduces the WindowMetrics API. ( I3ccee )
- Remove synchronous read methods from WindowManager ( I69983 )
- Make ExtensionWindowBackend package protected. ( Ied208 )
رفع اشکالات
- Update
ExtensionInterfaceAPIs to accept visual contexts. ( I8e827 )
External Contribution
- Merge DeviceState and WindowLayoutInfo so it is easier to access data. ( Id34f4 )
Version 1.0.0-alpha01
۲۷ فوریه ۲۰۲۰
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.)