WindowManager
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 19 नवंबर, 2025 | 1.5.1 | - | - | 1.6.0-alpha01 |
डिपेंडेंसी का एलान करना
WindowManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की 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" }
Kotlin
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 को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.6
वर्शन 1.6.0-alpha01
19 नवंबर, 2025
androidx.window:window-*:1.6.0-alpha01 रिलीज़ हो गया है. वर्शन 1.6.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- ग्रिड फ़ॉर्म में
WindowSizeClassSetsबनाने के लिए, हेल्पर तरीके जोड़े गए.
एपीआई में हुए बदलाव
- ग्रिड फ़ॉर्म में
WindowSizeClassSetsबनाने के लिए, हेल्पर तरीके जोड़े गए. (I4d623, b/444174274)
संस्करण 1.5
संस्करण 1.5.1
19 नवंबर, 2025
androidx.window:window-*:1.5.1 रिलीज़ हो गया है. वर्शन 1.5.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- कुछ डिवाइसों पर होने वाली
ClassCastExceptionसमस्या को ठीक करता है (4d58979)
वर्शन 1.5.0
24 सितंबर, 2025
androidx.window:window-*:1.5.0 रिलीज़ हो गया है. वर्शन 1.5.0 में ये बदलाव शामिल हैं.
1.4.0 के बाद हुए मुख्य बदलाव:
- बड़े और बहुत बड़े साइज़ के लिए
WindowSizeClassब्रेकपॉइंट जोड़ें. (I40d85) - ऐप्लिकेशन के कॉन्टेक्स्ट के हिसाब से
WindowMetricsको कैलकुलेट करने की सुविधा को बड़ा करें. (I8eeeb, b/360934048) WindowLayoutInfo(Ie9513) को सीधे तौर पर ऐक्सेस करने के लिए, Getter उपलब्ध कराएं- एपीआई को इस तरह से लागू करें कि एम्बेड करने की स्थिति अपने-आप सेव हो जाए. साथ ही, जब ऐप्लिकेशन की प्रोसेस फिर से शुरू हो, तब एम्बेड करने की स्थिति अपने-आप वापस आ जाए. (Ie0295)
- एक्सपेरिमेंट के तौर पर उपलब्ध
WindowInsetsAPI को हटाएं. (I68a71)
गड़बड़ियां ठीक की गईं
- इस अपडेट में, कुछ मामलों में
EmbeddingRuleके अलग-अलगhashCodeदिखाने की समस्या को ठीक किया गया है. (I748cc) - डिवाइस को लागू करने के दौरान हुई गड़बड़ियों की वजह से,
NullPointerExceptionकी समस्या को ठीक किया गया. - इस अपडेट में, उस समस्या को ठीक किया गया है जिसकी वजह से,
ActivityEmbeddingके सुरक्षा जांच वाले फ़ीचर काम नहीं करते थे. ऐसा इसलिए होता था, क्योंकि ProGuard इस्तेमाल नहीं की जा रही क्लास को हटा देता था.
बाहरी योगदान
- सभी केएमपी प्लैटफ़ॉर्म को
window-core(If3d7c) में जोड़ा गया
वर्शन 1.5.0-rc01
27 अगस्त, 2025
androidx.window:window-*:1.5.0-rc01 रिलीज़ हो गया है. वर्शन 1.5.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डिवाइस को लागू करने के दौरान हुई गड़बड़ियों की वजह से,
NullPointerExceptionकी समस्या को ठीक किया गया. - इस अपडेट में, उस समस्या को ठीक किया गया है जिसकी वजह से,
ActivityEmbeddingके सुरक्षा जांच वाले फ़ीचर काम नहीं करते थे. ऐसा इसलिए होता था, क्योंकि ProGuard इस्तेमाल नहीं की जा रही क्लास को हटा देता था.
वर्शन 1.5.0-beta02
13 अगस्त, 2025
androidx.window:window-*:1.5.0-beta02 रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- छोटी-मोटी गड़बड़ियां ठीक की गईं.
बाहरी योगदान
- सभी केएमपी प्लैटफ़ॉर्म को
window-core(If3d7c) में जोड़ा गया
वर्शन 1.5.0-beta01
2 जुलाई, 2025
androidx.window:window-*:1.5.0-beta01 रिलीज़ हो गया है. वर्शन 1.5.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 1.5.0-alpha02
7 मई, 2025
androidx.window:window-*:1.5.0-alpha02 रिलीज़ हो गया है. वर्शन 1.5.0-alpha02 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- बड़े और बहुत बड़े साइज़ के लिए
WindowSizeClassब्रेकपॉइंट जोड़ें. (I40d85) - ऐप्लिकेशन के कॉन्टेक्स्ट के हिसाब से
WindowMetricsको कैलकुलेट करने की सुविधा को बड़ा करें. (I8eeeb, b/360934048) WindowLayoutInfo(Ie9513) को सीधे तौर पर ऐक्सेस करने के लिए, Getter उपलब्ध कराएं- एपीआई को इस तरह से लागू करें कि एम्बेड करने की स्थिति अपने-आप सेव हो जाए. साथ ही, जब ऐप्लिकेशन की प्रोसेस फिर से शुरू हो, तब एम्बेड करने की स्थिति अपने-आप वापस आ जाए. (Ie0295)
- एक्सपेरिमेंट के तौर पर उपलब्ध
WindowInsetsAPI को हटाएं. (I68a71) - कुछ कंस्ट्रक्टर छिपाएं (I87b8d)
गड़बड़ियां ठीक की गईं
- इस अपडेट में, कुछ मामलों में
EmbeddingRuleके अलग-अलगhashCodeदिखाने की समस्या को ठीक किया गया है. (I748cc)
वर्शन 1.5.0-alpha01
12 मार्च, 2025
androidx.window:window-*:1.5.0-alpha01 रिलीज़ हो गया है. वर्शन 1.5.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- अगले वर्शन 1.5.0 की शुरुआती रिलीज़.
वर्शन 1.4
वर्शन 1.4.0
20 मई, 2025
androidx.window:window-*:1.4.0 रिलीज़ हो गया है. वर्शन 1.4.0 में ये बदलाव शामिल हैं.
1.3.0 के बाद हुए अहम बदलाव
- गतिविधि एम्बेड करना
- लॉन्च ऐनिमेशन को पसंद के मुताबिक बनाने के लिए एपीआई
- इंटरैक्टिव डिवाइडर
ActivityStackपिन करना- फ़ुल स्क्रीन डायलॉग डिमिंग
- एम्बेड की गई ऐक्टिविटी विंडो की जानकारी देने वाला कॉलबैक
ActivityStackको मैनेज करने की बेहतर सुविधा- किसी खास
ActivityStackमें गतिविधि लॉन्च करना
WindowMetricsCalculator- टेस्टिंग की सुविधा को बेहतर बनाना
WindowMetricswithDpऔरheightDpका हिसाब लगाने के आसान तरीके- बाउंड्री की जांच को
isAtLeastपर अपडेट करें और नई वैल्यू जोड़ने के लिए, लोअर बाउंड का इस्तेमाल करें
WindowSizeClassWindowMetricsसे कैलकुलेट करने का तरीका जोड़ें
WindowInfoTracker- डिवाइस पर काम करने वाली मुद्राओं का पता लगाने के लिए एपीआई जोड़ें
वर्शन 1.4.0-rc02
23 अप्रैल, 2025
androidx.window:window-*:1.4.0-rc02 रिलीज़ हो गया है. वर्शन 1.4.0-rc02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
ActivityEmbeddingके लिए ProGuard क्रैश की समस्या ठीक करें.
वर्शन 1.4.0-rc01
12 मार्च, 2025
androidx.window:window-*:1.4.0-rc01 रिलीज़ हो गया है. वर्शन 1.4.0-rc01 में ये बदलाव शामिल हैं.
नई सुविधाएं
WindowSizeClassAPI से जुड़े अपडेट.- गतिविधि एम्बेड करने वाले एपीआई से जुड़े अपडेट.
वर्शन 1.4.0-beta02
12 फ़रवरी, 2025
androidx.window:window-*:1.4.0-beta02 रिलीज़ हो गया है. वर्शन 1.4.0-beta02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- ऐसी एनोटेशन को ठीक किया गया है जो सिर्फ़ प्रॉपर्टी पर था, लेकिन गेटर पर नहीं था.
वर्शन 1.4.0-beta01
15 जनवरी, 2025
androidx.window:window-*:1.4.0-beta01 रिलीज़ हो गया है. वर्शन 1.4.0-beta01 में ये बदलाव शामिल हैं.
नई सुविधाएं
ActivityEmbeddingऐनिमेशन को पसंद के मुताबिक बनाने की अनुमति देने के लिए एपीआई जोड़ा गया.- विंडो मेट्रिक को फ़र्ज़ी बनाने की अनुमति देने के लिए,
WindowMetricsCalculatorटेस्ट एपीआई को बड़ा करें.
एपीआई में हुए बदलाव
- कुछ कंस्ट्रक्टर छिपाएं (I87b8d)
- ऐप्लिकेशन को
ActivityEmbeddingऐनिमेशन (If31a8) को पसंद के मुताबिक बनाने की अनुमति दें watchosDeviceArm64KMP टारगेट और टारगेट kotlin 1.9 के लिए सहायता जोड़ी गई (Icf15d, b/364652024)WindowMetricsCalculatorएपीआई उपलब्ध कराएं. (I1cebf)
गड़बड़ियां ठीक की गईं
- यह लाइब्रेरी अब JSpecify nullness annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही इस्तेमाल के लिए, कंपाइलर के इस तर्क का इस्तेमाल करना चाहिए:
-Xjspecify-annotations=strict(यह Kotlin कंपाइलर के 2.1.0 वर्शन से डिफ़ॉल्ट रूप से शुरू होता है). (Ie69ac, b/326456246)
वर्शन 1.4.0-alpha05
16 अक्टूबर, 2024
androidx.window:window-*:1.4.0-alpha05 रिलीज़ हो गया है. वर्शन 1.4.0-alpha05 में ये बदलाव शामिल हैं.
नई सुविधाएं
WindowMetricsसेwidthDpऔरheightDpपाने के लिए, सुविधा फ़ंक्शन जोड़े गए.
एपीआई में हुए बदलाव
WindowMetricsमेंwidthDpऔरheightDpजोड़ें. (Ide026)- एक्सपेरिमेंट के तौर पर उपलब्ध
WindowInsetsAPI को हटाएं. (I68a71) - बाउंड्री की जांच करने के तरीके के नामों को
isAtLeast(Ib0ab7) पर अपडेट करें
वर्शन 1.4.0-alpha04
2 अक्टूबर, 2024
androidx.window:window-*:1.4.0-alpha04 रिलीज़ हो गया है. वर्शन 1.4.0-alpha04 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
WindowMetricsसेWindowSizeClassका हिसाब लगाने का तरीका जोड़ा गया. (874dba)- ज़्यादा जानकारी के लिए,
WindowSizeClassतरीकों कोcontainsWidthDp,containsHeightDp, औरcontainsWindowSizeDpमें बदलें. (fa760d) WindowAreaControllerको ऐब्स्ट्रैक्ट बेस क्लास में बदलें. (I90893)
गड़बड़ियां ठीक की गईं
- टेस्ट
FoldingFeatureबनाते समय, रिलेटिव बाउंड्री के इस्तेमाल की सुविधा जोड़ी गई है. (2e6b3e) WindowSizeClassचुनते समय होने वाली सामान्य गड़बड़ियां ठीक की गई हैं.
वर्शन 1.4.0-alpha03
18 सितंबर, 2024
androidx.window:window-*:1.4.0-alpha03 रिलीज़ हो गया है. वर्शन 1.4.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
WindowMetricsसेWindowSizeClassपाने के लिए, यूटिलिटी का तरीका जोड़ें. (I83f1f)isAtLeastका नाम बदलकरcontainsBreakpointकरें. (I85b47)- फ़्लोट का इस्तेमाल करके,
computeWindowSizeClassमें ओवरलोड जोड़ें. (I3dcb2, b/364677934, b/364677802, b/364680886)
गड़बड़ियां ठीक की गईं
- डिफ़ॉल्ट
WindowSizeClassब्रेकपॉइंट सेट में, छूटे हुए ब्रेकपॉइंट जोड़ें. - हमने एक गड़बड़ी को ठीक किया है. इस गड़बड़ी की वजह से, कुछ मामलों में कॉम्पैक्ट डाइमेंशन को सही तरीके से नहीं चुना जा रहा था.
वर्शन 1.4.0-alpha02
4 सितंबर, 2024
androidx.window:window-*:1.4.0-alpha02 रिलीज़ हो गया है. वर्शन 1.4.0-alpha02 में ये बदलाव शामिल हैं.
नई सुविधाएं
कस्टम WindowSizeClass के साथ काम करने की सुविधा जोड़ी गई.
- डेवलपर के लिए
WindowSizeClassका कंस्ट्रक्टर खोलें, ताकि वे इसका इस्तेमाल कर सकें. isAtLeastयूटिलिटी के तरीके जोड़े गए, ताकि डेवलपरWindowSizeClassवैल्यू की रेंज को प्रोसेस कर सकें.- सेट से सबसे सही मैच का पता लगाने के लिए,
Set<WindowSizeClass>पर एक्सटेंशन फ़ंक्शन जोड़ा गया. - Android के लिए सुझाए गए ब्रेकपॉइंट के लिए कॉन्स्टेंट जोड़ें.
- Android के लिए सुझाए गए ब्रेकपॉइंट के हिसाब से, सेट किया गया ब्रेकपॉइंट जोड़ें.
एपीआई में हुए बदलाव
WindowSizeClassके लिए, बाउंड्री के तरीके के नाम अपडेट करें. (If89a6)WindowSizeClassAPI को अपडेट करें, ताकि आने वाले समय में नई ब्रेकपॉइंट वैल्यू जोड़ी जा सकें. हम सटीक सीमाओं के बजाय, निचली सीमाओं का इस्तेमाल करते हैं. हमारा सुझाव है कि डेवलपर,WindowSizeClassको प्रोसेस करते समय निचली सीमा की जांच करें. मौजूदाWindowWidthSizeClassऔरWindowHeightSizeClassका इस्तेमाल बंद कर दिया जाएगा, क्योंकि इन्हें आगे डेवलप नहीं किया जाएगा. (I014ce)
वर्शन 1.4.0-alpha01
7 अगस्त, 2024
androidx.window:window-*:1.4.0-alpha01 रिलीज़ हो गया है. वर्शन 1.4.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- ActivityStack Pinning की सुविधा की मदद से, ऐप्लिकेशन किसी कॉन्टेंट को एक कंटेनर में पिन कर सकते हैं. साथ ही, उसके नेविगेशन को दूसरे कंटेनर से अलग कर सकते हैं.
- इंटरैक्टिव डिवाइडर की मदद से, ऐप्लिकेशन स्प्लिट प्रज़ेंटेशन में दो ऐक्टिविटी के बीच एक फ़िक्स्ड या ड्रैग करने लायक डिवाइडर दिखा सकते हैं.
- फ़ुलस्क्रीन डायलॉग डिम करने की सुविधा की मदद से, ऐप्लिकेशन यह तय कर सकते हैं कि डायलॉग को डिम करने के लिए कौनसी जगह इस्तेमाल की जाए. इसके लिए, वे पूरी टास्क विंडो को डिम कर सकते हैं या सिर्फ़ उस कंटेनर को डिम कर सकते हैं जिसमें डायलॉग दिखता है.
- एम्बेड की गई गतिविधि की विंडो की जानकारी देने वाला कॉलबैक, ऐप्लिकेशन को एम्बेड की गई गतिविधि की विंडो के अपडेट लगातार पाने की अनुमति देता है.
- ऐनिमेशन बैकग्राउंड एम्बेड करने की सुविधा की मदद से, ऐप्लिकेशन ऐनिमेशन बैकग्राउंड तय कर सकते हैं. इससे
ActivityEmbeddingका इस्तेमाल करते समय, ट्रांज़िशन ऐनिमेशन की क्वालिटी बेहतर होती है. - ActivityStack को बेहतर तरीके से मैनेज करने की सुविधा की मदद से, ऐप्लिकेशन को
ActivityEmbeddingका इस्तेमाल करते समयActivityStacksपर ज़्यादा कंट्रोल मिलता है. जैसे: - किसी गतिविधि को किसी खास
ActivityStackमें लॉन्च करना ActivityStackको पूरा करना
एपीआई में हुए बदलाव
नया एपीआई
WindowInfoTracker#supportedPostures:- यह एक एपीआई है. इससे यह पता चलता है कि फ़ोल्ड किए जा सकने वाले डिवाइसों पर टेबलटॉप मोड काम करता है या नहीं. WindowAreaSessionPresenter#getWindow जोड़ता है
ActivityStackपिन करने की सुविधा के लिए, एपीआई जोड़े गए:SplitPinRuleक्लासSplitController#pinTopActivityStackSplitController#unpinTopActivityStack
इंटरैक्टिव डिवाइडर को चालू और कॉन्फ़िगर करने के लिए एपीआई जोड़ना
DividerAttributesक्लासSplitAttributes.Builder#setDividerAttributes
डायलॉग के लिए
EmbeddingConfigurationऔरDimAreaBehaviorसेट करने के लिए, एपीआई जोड़ेंEmbeddingConfigurationक्लासDimAreaBehaviorक्लासActivityEmbeddingController#setEmbeddingConfiguration
एम्बेड की गई गतिविधि की विंडो की जानकारी के अपडेट पाने के लिए, एपीआई जोड़ना
EmbeddedActivityWindowInfoक्लासActivityEmbeddingController#embeddedActivityWindowInfo
ऐनिमेशन को एम्बेड करने के बैकग्राउंड को सेट करने के लिए एपीआई जोड़ें
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
ActivityStacksको पूरा करने के लिए एपीआई जोड़ेंActivityEmbeddingController#finishActivityStacks
लॉन्चिंग
ActivityStackसेट करने के लिए एपीआई जोड़नाActivityEmbeddingOptions#setLaunchingActivityStack
यहां दिए गए एपीआई अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. ये स्टेबल हैं:
ActivityEmbeddingController#invalidateVisibleActivityStacks(moved from SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
1.4 के लिए एपीआई जोड़ें. (I56774)
गड़बड़ियां ठीक की गईं
- कुछ डिवाइसों पर मौजूद उस गड़बड़ी को ठीक किया गया है जिसमें सेशन चालू होने पर, ACTIVE के बजाय UNAVAILABLE दिखता था.
- एपीआई के ठीक से काम न करने की वजह से,
vendorApiLevel2 वाले डिवाइसों परtransferActivityToWindowAreaके लिए सहायता हटा दी गई है. - ड्रैग किए जा सकने वाले डिवाइडर को फ़ुलस्क्रीन पर ले जाने की सुविधा चालू करने के लिए, एपीआई लॉन्च किया गया. (I645c9)
- ऐप्लिकेशन को
SplitAttributesके लिए ऐनिमेशन पैरामीटर के ज़रिए,ActivityEmbeddingऐनिमेशन बंद करने की अनुमति दें. (Idc01a) - नए प्लैटफ़ॉर्म एपीआई को ऐक्सेस करने के लिए, मैन्युअल तरीके से आउटलाइन बनाने की सुविधा हटा दी गई है. ऐसा इसलिए, क्योंकि AGP 7.3 या इसके बाद के वर्शन (जैसे, R8 का वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर, एपीआई मॉडलिंग के ज़रिए यह काम अपने-आप हो जाता है. साथ ही, AGP 8.1 या इसके बाद के वर्शन (जैसे, D8 का वर्शन 8.1) का इस्तेमाल करने पर, सभी बिल्ड के लिए यह काम अपने-आप हो जाता है. AGP का इस्तेमाल न करने वाले क्लाइंट को D8 के 8.1 या उसके बाद के वर्शन पर अपडेट करने का सुझाव दिया जाता है. ज़्यादा जानकारी के लिए यह लेख देखें. (Ia60e0, b/345472586)
- एक्सटेंशन को
SplitAttributesके लिए ऐनिमेशन पैरामीटर लेने की अनुमति दें, ताकि डिवाइस इसका इस्तेमाल ऐनिमेशन ट्रांज़िशन के लिए कर सके. (Iede00) - ओवरले एपीआई (Ic4251) छिपाएं
- स्प्लिट के लिए, फ़िक्स्ड या ड्रैग किए जा सकने वाले डिवाइडर को कॉन्फ़िगर करने के लिए एपीआई पेश किए गए (Ia7a78)
WindowMetrics(Id6723) में डेंसिटी जोड़ी गईSupportedPosturesपाने के लिए, एपीआई जोड़ें. (If557a)- एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई (I191cf) से
setLaunchingActivityStackहटाया गया ActivityEmbeddingController#embeddedActivityWindowInfoके बारे में जानकारी (I24312)#getTokenको बंद करें और#getActivityStackToken(Ie0471) को जोड़ेंembeddedActivityWindowInfoफ़्लो एपीआई (Ida77f) के लिए कॉलबैक अडैप्टर लॉन्च किया गया- overlayInfo फ़्लो एपीआई (I7264f) के लिए कॉलबैक अडैप्टर जोड़ें
- टेस्टिंग के लिए,
extensionsVersionको बदलने के लिएWindowSdkExtensionsRuleका इस्तेमाल करें. (Ifb928) - -
ActivityOptionsCompatके इस्तेमाल के साथ काम करने के लिए,#setLaunchingActivityStackको बंडल में माइग्रेट करें.- उपयोगकर्ताओं को
ActvityOptionsके बजायactivityOptions.toBundleपास करना चाहिए. #setLaunchingActivityStack(Activity)हटाएं. उपयोगकर्ताओं कोActivityEmbeddingController#getActivityStac(Activity)का इस्तेमाल करने के लिए माइग्रेट करना चाहिए, ताकि उन्हेंActivityStackमिल सके. साथ ही, उन्हेंActivityStackको#setLaunchingActivityStackपर पास करना चाहिए. (Ie0ccc)
- उपयोगकर्ताओं को
- - WM Jetpack और एक्सटेंशन के बीच कम्यूनिकेट करने के लिए,
ActivityStack.TokenऔरSpltInfo.Tokenको आइडेंटिफ़ायर के तौर पर पेश किया गया है.- IBinder के बजाय टोकन लेने/वापस करने के लिए, एपीआई को बंद करें/बदलें. (I12b24)
- - Introduce
ActivityEmbeddingController#invalidateVisibleActivityStacksSplitController#invalidateTopVisibleSplitAttributesको हटाया गया, क्योंकि इस सुविधा को#invalidateVisibleActivityStacks(I02ef5) में शामिल कर दिया गया है
- - एम्बेड करने का कॉन्फ़िगरेशन सेट करने के लिए, एपीआई जोड़ा गया. (I59a4a)
- - सबसे ऊपर पिन करने/पिन हटाने की सुविधा वाले
ActivityStackandroidx.Windowएपीआई जोड़े गए- डेमो ऐप्लिकेशन को अपडेट किया जा रहा है, ताकि टॉप
ActivityStackको पिन/अनपिन किया जा सके (I24dd3)
- डेमो ऐप्लिकेशन को अपडेट किया जा रहा है, ताकि टॉप
#finishActivityStacksऔरActivityEmbeddingOptionsको फिर से जोड़ें (Ic1ab3)- ऐसे एपीआई हटाएं जो स्टेबल नहीं हैं. (Ibc534, b/302380585)
वर्शन 1.3
वर्शन 1.3.0
29 मई, 2024
androidx.window:window-*:1.3.0 रिलीज़ हो गया है. वर्शन 1.3.0 में ये बदलाव शामिल हैं.
1.2.0 के बाद हुए ज़रूरी बदलाव
- विंडो के साइज़ क्लास के लिए Kotlin Multiplatform का इस्तेमाल किया जा सकता है.
वर्शन 1.3.0-rc01
14 मई, 2024
WindowManager Jetpack 1.3 में, WindowSizeClass सुविधाओं के लिए Kotlin Multiplatform का इस्तेमाल किया जा सकता है. साथ ही, इसमें कई गड़बड़ियों को ठीक किया गया है.
androidx.window:window-*:1.3.0-rc01 रिलीज़ हो गया है. वर्शन 1.3.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.3.0-beta02
1 मई, 2024
androidx.window:window-*:1.3.0-beta02 रिलीज़ हो गया है. वर्शन 1.3.0-beta02 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- कस्टम
WindowSizeClassबनाने और उनका इस्तेमाल करने की सुविधा हटा दी गई है. (Id1143)
गड़बड़ियां ठीक की गईं
- इस अपडेट में, कुछ डिवाइसों पर ProGuard की वजह से कुछ फ़ाइलों के हट जाने की वजह से हुई
KotlinReflectionInternalErrorको ठीक किया गया है. (I01b02)
वर्शन 1.3.0-beta01
3 अप्रैल, 2024
androidx.window:window-*:1.3.0-beta01 रिलीज़ हो गया है. वर्शन 1.3.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 1.3.0-alpha03
6 मार्च, 2024
androidx.window:window-*:1.3.0-alpha03 रिलीज़ हो गया है. वर्शन 1.3.0-alpha03 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
WindowSizeClassUtilको ज़्यादा फ़ोकस किए गए तरीकों में बांटें. (Ie9292)WindowSizeClass#computeवापस लाएं (I21355, b/324293374)
गड़बड़ियां ठीक की गईं
- उस क्रैश को ठीक किया गया है जिसमें दिए गए कॉन्टेक्स्ट को सही तरीके से अनरैप नहीं किया जा रहा था. (94d10ce , b/318787482)
वर्शन 1.3.0-alpha02
7 फ़रवरी, 2024
androidx.window:window-*:1.3.0-alpha02 रिलीज़ हो गया है. वर्शन 1.3.0-alpha02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Window Size Class API के एपीआई सर्फ़ेस में किए गए अपडेट. इससे उन डेवलपर को ज़्यादा सुविधा मिलेगी जो अपनी साइज़ क्लास का इस्तेमाल करना चाहते हैं.
एपीआई में हुए बदलाव
- चौड़ाई चुनने वाले टूल में ऊंचाई से जुड़ी शर्तें जोड़ें. (I23393)
- सेट से
WindowSizeClassचुनने के लिए, यूटिलिटी फ़ंक्शन जोड़े गए. एक्सपेरिमेंट के लिए स्कोरिंग फ़ंक्शन जोड़े गए हैं, ताकि डेवलपर अपने सिलेक्टर लिख सकें. किसी तय सीमा में सबसे चौड़ाWindowSizeClassचुनने के लिए, सिलेक्टर एक्सटेंशन फ़ंक्शन जोड़ें. (I0c944) - कस्टम ब्रेकपॉइंट जोड़ने के लिए,
WindowSizeClassकंस्ट्रक्टर खोलें. (Ic1ff3) - चौड़ाई, ऊंचाई, और डेनसिटी से साइज़ क्लास बनाने के लिए, सुविधा फ़ंक्शन जोड़ा गया. (If67f4)
गड़बड़ियां ठीक की गईं
- फ़्लोट वैल्यू को 0 पर छोटा करने पर होने वाली गड़बड़ी को ठीक किया गया. (272ffac)
वर्शन 1.3.0-alpha01
15 नवंबर, 2023
androidx.window:window-*:1.3.0-alpha01 रिलीज़ हो गया है. वर्शन 1.3.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- पीछे वाली स्क्रीन को ऐक्सेस करने के लिए, एक्सपेरिमेंटल विंडो एपीआई उपलब्ध कराता है.
FoldingFeatureबनाने के लिए, टेस्ट एपीआई का स्टेबल वर्शन अब उपलब्ध है.- नकली
ActivityEmbeddingवैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब स्थिर हो गए हैं. WindowLayoutInfoPublisherRuleअबUiContextसे वैल्यू पाने पर, ओवरराइड की गई वैल्यू की जानकारी देता है.WindowInfoTracker,UiContextपैरामीटर में रिपोर्ट फ़ोल्ड करने की सुविधा का डेटा दिखाता है.- डिवाइस पर एक्सटेंशन का वर्शन दिखाएं.
- उपयोगकर्ता के हर ऐप्लिकेशन के हिसाब से तय किए गए ओवरराइड के लिए
WindowPropertiesकॉन्स्टेंट:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE— इससे सिस्टम को पता चलता है कि ऐप्लिकेशन ने, उपयोगकर्ता को दिखने वाले आसपेक्ट रेशियो की कंपैटिबिलिटी को बदलने की सुविधा से ऑप्ट आउट कर लिया है.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE— इससे सिस्टम को पता चलता है कि ऐप्लिकेशन ने, उपयोगकर्ता के लिए उपलब्ध फ़ुल-स्क्रीन विकल्प से ऑप्ट आउट कर लिया है. यह विकल्प, आसपेक्ट रेशियो के साथ काम न करने की समस्या को ठीक करने वाली सेटिंग में उपलब्ध होता है
वर्शन 1.2
वर्शन 1.2.0
15 नवंबर, 2023
androidx.window:window-*:1.2.0 रिलीज़ हो गया है. वर्शन 1.2.0 में ये बदलाव शामिल हैं.
1.1.0 के बाद हुए अहम बदलाव
- पीछे वाली स्क्रीन को ऐक्सेस करने के लिए, एक्सपेरिमेंटल विंडो एपीआई उपलब्ध कराता है.
FoldingFeatureबनाने के लिए, टेस्ट एपीआई का स्टेबल वर्शन अब उपलब्ध है.- नकली
ActivityEmbeddingवैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब स्थिर हो गए हैं. WindowLayoutInfoPublisherRuleअबUiContextसे वैल्यू पाने पर, ओवरराइड की गई वैल्यू की जानकारी देता है.WindowInfoTracker,UiContextपैरामीटर में रिपोर्ट फ़ोल्ड करने की सुविधा का डेटा दिखाता है.- डिवाइस पर एक्सटेंशन का वर्शन दिखाएं.
वर्शन 1.2.0-rc01
1 नवंबर, 2023
androidx.window:window-*:1.2.0-rc01 रिलीज़ हो गया है. वर्शन 1.2.0-rc01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- पीछे वाली स्क्रीन को ऐक्सेस करने के लिए, एक्सपेरिमेंटल विंडो एपीआई उपलब्ध कराता है.
FoldingFeatureबनाने के लिए, टेस्ट एपीआई का स्टेबल वर्शन अब उपलब्ध है.- नकली
ActivityEmbeddingवैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब स्थिर हो गए हैं. WindowLayoutInfoPublisherRuleअबUiContextसे वैल्यू पाने पर, ओवरराइड की गई वैल्यू की जानकारी देता है.WindowInfoTracker,UiContextपैरामीटर में रिपोर्ट फ़ोल्ड करने की सुविधा का डेटा दिखाता है.- डिवाइस पर एक्सटेंशन का वर्शन दिखाएं.
वर्शन 1.2.0-beta04
18 अक्टूबर, 2023
androidx.window:window-*:1.2.0-beta04 रिलीज़ हो गया है. वर्शन 1.2.0-beta04 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- ऐसे एपीआई हटाएं जो स्टेबल नहीं हैं. (Ibc534, b/302380585)
वर्शन 1.2.0-beta03
20 सितंबर, 2023
androidx.window:window-*:1.2.0-beta03 रिलीज़ हो गया है. वर्शन 1.2.0-beta03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- उन एपीआई के लिए
RequiresApiजांचें जोड़ें जिनके लिए एक्सटेंशन के किसी खास वर्शन की ज़रूरत होती है, ताकि वे सही तरीके से काम कर सकें. - डिवाइस पर एक्सटेंशन का वर्शन दिखाने के लिए, कोई एपीआई जोड़ें.
एपीआई में हुए बदलाव
- सार्वजनिक एपीआई पर, ज़रूरी विंडो एसडीके एक्सटेंशन वर्शन के बारे में एनोटेशन जोड़ें.
- गतिविधि एम्बेड करने वाले कॉम्पोनेंट में मौजूद
isXXXSupportedको हटाएं. (Ie3dae)
- गतिविधि एम्बेड करने वाले कॉम्पोनेंट में मौजूद
- डिवाइस पर एक्सटेंशन के वर्शन की जानकारी देने के लिए,
WindowSdkExtensionsको शामिल किया गया है.- एक्सटेंशन के ज़रूरी वर्शन को एनोटेट करने के लिए,
RequiresWindowSdkExtensionको पेश किया गया है. (I05fd4)
- एक्सटेंशन के ज़रूरी वर्शन को एनोटेट करने के लिए,
WindowAreaInfo#getCapabilityको नॉन-नलेबल बनाता है. (I17048)
वर्शन 1.2.0-beta01
26 जुलाई, 2023
androidx.window:window-*:1.2.0-beta01 रिलीज़ हो गया है. वर्शन 1.2.0-beta01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- पीछे वाली स्क्रीन को ऐक्सेस करने के लिए, एक्सपेरिमेंटल विंडो एपीआई उपलब्ध कराता है.
FoldingFeatureबनाने के लिए, टेस्ट एपीआई का स्टेबल वर्शन अब उपलब्ध है.- नकली
ActivityEmbeddingवैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब स्थिर हो गए हैं. WindowLayoutInfoPublisherRuleअबUiContextसे वैल्यू पाने पर, ओवरराइड की गई वैल्यू की जानकारी देता है.WindowInfoTracker,UiContextपैरामीटर में रिपोर्ट फ़ोल्ड करने की सुविधा का डेटा दिखाता है.
एपीआई में हुए बदलाव
WindowAreaएपीआई को एक्सपेरिमेंटल के तौर पर मार्क करता है, ताकि एपीआई में बदलाव किए जा सकें. इससे 1.3 (I857f5) में स्टेबल रिलीज़ के लिए एपीआई में बदलाव किए जा सकेंगे- एपीआई फ़ाइलों को अपडेट किया गया है, ताकि कंपैटिबिलिटी सप्रेशन को एनोटेट किया जा सके (I8e87a, b/287516207)
वर्शन 1.2.0-alpha03
21 जून, 2023
androidx.window:window-*:1.2.0-alpha03 रिलीज़ हो गया है. वर्शन 1.2.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- एपीआई की सतह से, इस्तेमाल में नहीं रहे एपीआई को हटाया गया.
- एक साथ कई डिसप्ले को सपोर्ट करने के लिए, एपीआई जोड़े गए हैं.
- ज़बरदस्ती रीसाइज़ करने की सुविधा को बंद करने के लिए, कोई प्रॉपर्टी जोड़ें.
- कम से कम आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बदलने की सुविधा से ऑप्ट आउट करने के लिए प्रॉपर्टी जोड़ें.
- Activity Embedding के आस-पास यूनिट टेस्टिंग को बेहतर बनाने के लिए,
ActivityEmbeddingRuleको स्थिर करें.
एपीआई में हुए बदलाव
गड़बड़ियां ठीक की गईं
- फ़ोर्स रीसाइज़ ओवरराइड के लिए, ऑप्ट-आउट करने की सुविधा वाली कंपैट प्रॉपर्टी जोड़ी जा रही है (Ie7ab1)
- इस कुकी का इस्तेमाल, एक्सटेंशन इंटरफ़ेस से
SESSION_STATE_CONTENT_INVISIBLEको हटाने के लिए किया जाता है. (I6ed19) - Activity एम्बेड करने की सुविधा के लिए यूनिट टेस्टिंग की सुविधा को बेहतर बनाने के लिए,
ActivityEmbeddingRuleको स्थिर करें. (I8d6b6) - कम से कम आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बदलने के लिए, ऑप्ट-आउट करने की सुविधा वाली प्रॉपर्टी जोड़ी जा रही है. (I66390)
- यह WindowArea API (Ieb67c) को हटाता है, जो अब काम नहीं करता
- ओरिएंटेशन के अनुरोध वाली लूप प्रॉपर्टी का नाम बदलकर
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTEDकर दिया गया है. (Ie2fbd) - यह कुकी, विंडो एरिया सेशन के कॉन्स्टेंट के नाम (I83675) अपडेट करती है
- ऑप्ट-आउट करने की ऐसी प्रॉपर्टी जोड़ी गई है जो ओरिएंटेशन के अनुरोध लूप का पता चलने पर उसे अनदेखा करती है (I0a7a2)
WindowAreaComponent#STATUS_ACTIVEजोड़ें, ताकि यह पता चल सके कि सुविधा पहले से चालू है. (I62bc3)RearDisplayPresentationModeएपीआई जोड़ें (I0401c)- स्थिर वर्शन के लिए, बैकग्राउंड का रंग हटाने वाले एपीआई को हटा दिया गया है. (I34c3e)
- विंडो एरिया एपीआई छिपाएं. (I39de0)
SplitControllerमेंSplitInfoको बदलने के लिए, तरीके जोड़े गए.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की सूची पाने के लिए,Flowका इस्तेमाल करने की सुविधा जोड़ी गई (I7f1b6)SplitInfo
ActivityEmbeddingController(I42e9b) के लिए टेस्ट का नियम जोड़ेंActivityOptionsCompatका नाम बदलकरActivityEmbeddingOptionsकिया गया (I89301)- गतिविधि एम्बेड करने की सुविधा उपलब्ध है या नहीं, यह बताने के लिए
splitSupportStatusजोड़ें. (I10024) DEFAULTकी वैल्यू को बेहतर तरीके से दिखाने के लिए,SplitAttributes.BackgroundColorको शामिल करें. यह साफ़ तौर पर बताया गया है कि नॉन-ओपेक ऐनिमेशन बैकग्राउंड के रंग का इस्तेमाल नहीं किया जा सकता. इसलिए, किसी भी नॉन-ओपेक रंग को डिफ़ॉल्ट रंग माना जाएगा. इसका मतलब है कि मौजूदा थीम के विंडो बैकग्राउंड के रंग का इस्तेमाल किया जाएगा. (Ic6b95)alwaysAllow()औरalwaysDisallow()कोALWAYS_ALLOWऔरALWAYS_DISALLOWसे बदलें. (I3057b)SplitRule,SplitAttributes,SplitAttributesCalculatorके लिए एपीआई जोड़ें. (I92d23)- टेस्टिंग के लिए
ActivityStackबनाने के लिए,TestActivityStackजोड़ें- टेस्टिंग के लिए
SplitInfoबनाने के लिए,TestSplitInfoजोड़ें. (I8e779)
- टेस्टिंग के लिए
- फ़र्ज़ी
SplitAttributesCalculatorParamsबनाने का तरीका जोड़ें, ताकि डेवलपर अपने हिसाब से बनाए गएSplitAttributesCalculator(Id4a6e) की पुष्टि कर सकें WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)औरWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)जोड़े गए (I66c7f)
वर्शन 1.2.0-alpha02
7 जून, 2023
androidx.window:window-*:1.2.0-alpha02 रिलीज़ हो गया है. वर्शन 1.2.0-alpha02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- टेस्ट एपीआई को अपडेट किया गया है, ताकि फ़ोल्डिंग की सुविधाओं के बारे में जानकारी न देने वाले कॉन्स्टेंट को शामिल किया जा सके.
WindowLayoutInfoPublishRuleका इस्तेमाल करके,windowLayoutInfoकी सभी वैल्यू बदली जा सकती हैं. इनमें कॉन्टेक्स्ट के हिसाब से काम करने वाला एपीआई भी शामिल है.
एपीआई में हुए बदलाव
- सेंटर फ़ोल्डिंग की सुविधा के बारे में नहीं बताया गया है, इसलिए इसके लिए कॉन्स्टेंट जोड़ें. (I7530c)
गड़बड़ियां ठीक की गईं
ContextपरWindowLayoutInfoके आधार पर ओवरराइड करने की सुविधा के लिए,WindowLayoutInfoPublishRuleको अपडेट करें. (I2037a)
वर्शन 1.2.0-alpha01
24 मई, 2023
androidx.window:window-*:1.2.0-alpha01 रिलीज़ हो गया है. वर्शन 1.2.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
Activity Embedding और WindowLayoutInfoTracker के लिए, टेस्टिंग एपीआई को बेहतर बनाएं. ActivityEmbeddingRule को स्टेबल वर्शन में अपग्रेड कर दिया गया है.
WindowMetricsCalculatorRule को स्टेबल वर्शन में अपग्रेड कर दिया गया है.
टेस्ट के लिए FoldingFeature बनाने वाले यूटिलिटी फ़ंक्शन को स्टेबल वर्शन में प्रमोट कर दिया गया है.
एपीआई में हुए बदलाव
- Activity एम्बेड करने की सुविधा के लिए यूनिट टेस्टिंग की सुविधा को बेहतर बनाने के लिए,
ActivityEmbeddingRuleको स्थिर करें. (I8d6b6) WindowMetrisCalculatorTestRuleस्टेबल है. इससे जेवीएम टेस्ट के लिए स्टब मेट्रिक का इस्तेमाल किया जा सकता है. हमारा सुझाव है कि सटीक नतीजों के लिए, एम्युलेटर का इस्तेमाल करें.- जेवीएम टेस्टिंग के लिए,
WindowLayoutInfoके टेस्ट एपीआई को स्थिर करें. (Ie036e) - टेस्ट फ़ोल्डिंग सुविधा की वैल्यू के लिए
IntRangeजोड़ें. (I69f7d)
वर्शन 1.1
वर्शन 1.1.0
7 जून, 2023
androidx.window:window-*:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.
1.0.0 के बाद हुए अहम बदलाव
गतिविधि को एम्बेड करना
- ऐप्लिकेशन मेनिफ़ेस्ट में
<application>टैग की बूलियन प्रॉपर्टी के तौर परPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDजोड़ा गया. - स्प्लिट करने की सुविधा उपलब्ध न होने के बारे में ज़्यादा जानकारी देने के लिए,
isSplitSupportedको बंद कर दिया गया है और उसकी जगहsplitSupportStatusको चालू कर दिया गया है. splitSupportStatusप्रॉपर्टी के लिए राज्य के कॉन्स्टेंट उपलब्ध कराने के लिए,SplitController.SplitSupportStatusनेस्टेड क्लास जोड़ी गई.SplitControllerको कई मॉड्यूल में फिर से व्यवस्थित किया गया:ActivityयाActivityStackसे जुड़े एपीआई के लिएActivityEmbeddingControllerमॉड्यूल.isActivityEmbeddedकोSplitControllerसेActivityEmbeddingControllerमें ले जाया गया.EmbeddingRuleसे जुड़ी कार्रवाइयों के लिएRuleControllerमॉड्यूल:SplitControllerएपीआई हटाए गए:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()RuleControllerएपीआई जोड़े गए:addRule()— इससे कोई नियम जोड़ा जाता है या उसी टैग वाले नियम को अपडेट किया जाता है.removeRule()— यह रजिस्टर किए गए नियमों के कलेक्शन से किसी नियम को हटाता है.setRules()— नियमों का एक कलेक्शन बनाता है.clearRules()— रजिस्टर किए गए सभी नियमों को हटाता है.parseRules()— एक्सएमएल फ़ाइल में मौजूद नियमों की परिभाषाओं से नियमों को पार्स करता है.
- सभी मॉड्यूल को
#getInstance()तरीके से शुरू करने के लिए, कॉन्टेक्स्ट की ज़रूरत होती है. इनमें ये शामिल हैं:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- डिस्प्ले के आसपेक्ट रेशियो से जुड़ी enum जैसी व्यवहार की स्थितियों को तय करने के लिए,
EmbeddingAspectRatioक्लास जोड़ी गई. - स्प्लिट लेआउट तय करने के लिए,
SplitAttributesक्लास जोड़ी गई. - स्प्लिट लेआउट को पसंद के मुताबिक बनाने के लिए,
SplitControllerमेंSplitAttributesकैलकुलेटर फ़ंक्शन जोड़े गए:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()यह देखने के लिए कि डिवाइस परSplitAttributesCalculatorएपीआई काम करते हैं या नहीं
EmbeddingRule#tagफ़ील्ड जोड़ा गया.SplitRuleमें एपीआई से जुड़े अपडेट:defaultSplitAttributesको जोड़ा गया — यह स्प्लिट के डिफ़ॉल्ट स्प्लिट लेआउट को तय करता है. यहsplitRatioऔरlayoutDirectionकी जगह लेता है.- एक्सएमएल प्रॉपर्टी
splitRatioऔरsplitLayoutDirectionके अनुवाद कोdefaultSplitAttributesमें जोड़ा गया. - कम से कम डाइमेंशन की परिभाषाओं में बदलाव किया गया है, ताकि पिक्सल के बजाय डेंसिटी-इंडिपेंडेंट पिक्सल (डीपी) का इस्तेमाल किया जा सके.
- डिफ़ॉल्ट वैल्यू 600dp के साथ
minHeightDpजोड़ा गया. minWidthकोminWidthDpमें बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.minSmallestWidthकोminSmallestWidthDpमें बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.- डिफ़ॉल्ट वैल्यू
ALWAYS_ALLOWके साथmaxAspectRatioInHorizontalजोड़ा गया. - डिफ़ॉल्ट वैल्यू 1.4 के साथ
maxAspectRatioInPortraitजोड़ा गया. - फ़िनिश बिहेवियर कॉन्स्टेंट को बदलने के लिए,
FinishBehaviorनेस्ट की गई क्लास तय की गई है. SplitPairRuleऔरSplitPlaceholderRuleकी Builder नेस्ट की गई क्लास में प्रॉपर्टी के बदलाव लागू किए गए.
- स्प्लिट से जुड़ी ज़्यादा जानकारी देने के लिए,
SplitInfo#getSplitRatio()की जगहSplitInfo#getSplitAttributes()का इस्तेमाल किया गया है.
WindowLayout
WindowInfoTrackerमें, एक्सपेरिमेंट के तौर पर नॉन-ऐक्टिविटी यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट सपोर्ट जोड़ा गया.WindowMetricsCalculatorमें, एक्सपेरिमेंट के तौर पर उपलब्ध गैर-गतिविधि वाले यूज़र इंटरफ़ेस (यूआई) का कॉन्टेक्स्ट जोड़ा गया.
माइग्रेशन के चरण
- स्प्लिट में गतिविधियां दिखाने के लिए, ऐप्लिकेशन को मेनिफ़ेस्ट
<application>टैग मेंPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDप्रॉपर्टी जोड़नी होगी:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />इससे सिस्टम को, ऐप्लिकेशन के लिए स्प्लिट बिहेवियर को पहले से ही ऑप्टिमाइज़ करने की अनुमति मिलती है. SplitInforatio- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
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()कर दिया गया है.
SplitRuleproperty migrations:minWidthऔरminSmallestWidthअब पिक्सल के बजाय डीपी यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन, इस कॉल का इस्तेमाल कर सकते हैं:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )याminWithको पिक्सल मेंdisplayMetrics#densityसे भाग दें.
- फ़िनिश बिहेवियर कॉन्स्टेंट को
FinishBehaviorenum-like क्लास कॉन्स्टेंट में माइग्रेट किया जाना चाहिए: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,FinishBehaviorenum जैसे कॉन्सटेंट लेते हैं. ज़्यादा जानकारी के लिए, “SplitRule migrations” देखें.- पोर्ट्रेट डिवाइसों पर स्प्लिट दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)का इस्तेमाल करें.
SplitPlaceholder.Builderमाइग्रेशन:- इसमें सिर्फ़
filtersऔरplaceholderIntentपैरामीटर होते हैं. अन्य प्रॉपर्टी, सेटर पर चली जाती हैं. ज़्यादा जानकारी के लिए, “SplitPairRule.Builder माइग्रेशन” देखें. setFinishPrimaryWithPlaceholder,FinishBehaviorenum-like कॉन्सटेंट लेता है. ज़्यादा जानकारी के लिए, “SplitRule migrations” देखें.setLayoutDirection(layoutDirection)औरsetSplitRatio(ratio)बदलकर यह हो जाएगा:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- पोर्ट्रेट डिवाइसों पर स्प्लिट दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)का इस्तेमाल करें.
- इसमें सिर्फ़
वर्शन 1.1.0-rc01
10 मई, 2023
androidx.window:window-*:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.
नई सुविधाएं
ActivityEmbeddingको स्टेबल एपीआई के तौर पर रिलीज़ किया गया है.- कई गड़बड़ियां ठीक की गईं.
वर्शन 1.1.0-beta02
5 अप्रैल, 2023
androidx.window:window-*:1.1.0-beta02 रिलीज़ हो गया है. वर्शन 1.1.0-beta02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- इंटरनल फ़िक्स और क्लीन अप.
वर्शन 1.1.0-beta01
22 मार्च, 2023
androidx.window:window-*:1.1.0-beta01 रिलीज़ हो गया है. वर्शन 1.1.0-beta01 में ये बदलाव शामिल हैं.
गतिविधि को एम्बेड करना
- ऐप्लिकेशन मेनिफ़ेस्ट में
<application>टैग की बूलियन प्रॉपर्टी के तौर परPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDजोड़ा गया. - स्प्लिट करने की सुविधा उपलब्ध न होने के बारे में ज़्यादा जानकारी देने के लिए,
isSplitSupportedको बंद कर दिया गया है और उसकी जगहsplitSupportStatusको चालू कर दिया गया है. splitSupportStatusप्रॉपर्टी के लिए राज्य के कॉन्स्टेंट उपलब्ध कराने के लिए,SplitController.SplitSupportStatusनेस्टेड क्लास जोड़ी गई.SplitControllerको कई मॉड्यूल में फिर से व्यवस्थित किया गया:ActivityयाActivityStackसे जुड़े एपीआई के लिएActivityEmbeddingControllerमॉड्यूल.isActivityEmbeddedकोSplitControllerसेActivityEmbeddingControllerमें ले जाया गया.EmbeddingRuleसे जुड़ी कार्रवाइयों के लिएRuleControllerमॉड्यूल:SplitControllerएपीआई हटाए गए:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
RuleControllerएपीआई जोड़े गए:addRule()— इससे कोई नियम जोड़ा जाता है या उसी टैग वाले नियम को अपडेट किया जाता है.removeRule()— यह रजिस्टर किए गए नियमों के कलेक्शन से किसी नियम को हटाता है.setRules()— नियमों का एक कलेक्शन बनाता है.clearRules()— रजिस्टर किए गए सभी नियमों को हटाता है.- `parseRules() — Parses rules from XML rule definitions.
- सभी मॉड्यूल को
#getInstance()तरीके से शुरू करने के लिए, कॉन्टेक्स्ट की ज़रूरत होती है. इनमें ये शामिल हैं:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- डिस्प्ले के आसपेक्ट रेशियो से जुड़ी enum जैसी व्यवहार की स्थितियों को तय करने के लिए,
EmbeddingAspectRatioक्लास जोड़ी गई. - स्प्लिट लेआउट तय करने के लिए,
SplitAttributesक्लास जोड़ी गई. - स्प्लिट लेआउट को पसंद के मुताबिक बनाने के लिए,
SplitControllerमेंSplitAttributesकैलकुलेटर फ़ंक्शन जोड़े गए:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()यह देखने के लिए कि डिवाइस पर SplitAttributesCalculator API काम करते हैं या नहीं
EmbeddingRule#tagफ़ील्ड जोड़ा गया.SplitRuleमें एपीआई से जुड़े अपडेट:defaultSplitAttributesको जोड़ा गया — यह स्प्लिट के डिफ़ॉल्ट स्प्लिट लेआउट को तय करता है. यहsplitRatioऔरlayoutDirectionकी जगह लेता है.- एक्सएमएल प्रॉपर्टी
splitRatioऔरsplitLayoutDirectionके अनुवाद कोdefaultSplitAttributesमें जोड़ा गया. - कम से कम डाइमेंशन की परिभाषाओं में बदलाव किया गया है, ताकि पिक्सल के बजाय डेंसिटी-इंडिपेंडेंट पिक्सल (डीपी) का इस्तेमाल किया जा सके.
- डिफ़ॉल्ट वैल्यू 600dp के साथ
minHeightDpजोड़ा गया. minWidthकोminWidthDpमें बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.minSmallestWidthकोminSmallestWidthDpमें बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.- डिफ़ॉल्ट वैल्यू
ALWAYS_ALLOWके साथmaxAspectRatioInHorizontalजोड़ा गया. - डिफ़ॉल्ट वैल्यू
1.4के साथmaxAspectRatioInPortraitजोड़ा गया. - फ़िनिश बिहेवियर कॉन्स्टेंट को बदलने के लिए,
FinishBehaviorनेस्ट की गई क्लास तय की गई है. SplitPairRuleऔरSplitPlaceholderRuleकीBuilderनेस्ट की गई क्लास में, प्रॉपर्टी में किए गए बदलाव लागू किए गए.
- स्प्लिट से जुड़ी ज़्यादा जानकारी देने के लिए,
SplitInfo#getSplitRatio()की जगहSplitInfo#getSplitAttributes()का इस्तेमाल किया गया है.
WindowLayout
WindowInfoTrackerमें, गतिविधि के अलावा अन्य यूज़र इंटरफ़ेस (यूआई) के कॉन्टेक्स्ट के लिए सहायता जोड़ी गई.WindowMetricsCalculatorमें, गतिविधि से जुड़ा यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट जोड़ा गया.
माइग्रेशन के चरण
- स्प्लिट में गतिविधियां दिखाने के लिए, ऐप्लिकेशन को मेनिफ़ेस्ट
<application>टैग मेंPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDप्रॉपर्टी जोड़नी होगी:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />इससे सिस्टम को, ऐप्लिकेशन के लिए स्प्लिट बिहेवियर को पहले से ही ऑप्टिमाइज़ करने की अनुमति मिलती है. SplitInforatio- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
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()कर दिया गया है.
SplitRuleproperty migrations:minWidthऔरminSmallestWidthअब पिक्सल के बजाय dp यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन, इस कॉल का इस्तेमाल कर सकते हैं:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )याminWithको पिक्सल मेंdisplayMetrics#densityसे भाग दें.
- फ़िनिश बिहेवियर कॉन्स्टेंट को
FinishBehaviorenum-like क्लास कॉन्स्टेंट में माइग्रेट किया जाना चाहिए: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,FinishBehaviorenum जैसे कॉन्स्टेंट लेते हैं. ज़्यादा जानकारी के लिए, “SplitRule migrations” देखें.- पोर्ट्रेट डिवाइसों पर स्प्लिट दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)का इस्तेमाल करें.
SplitPlaceholder.Builderमाइग्रेशन:- इसमें सिर्फ़
filtersऔरplaceholderIntentपैरामीटर होते हैं. अन्य प्रॉपर्टी, सेटर पर चली जाती हैं. ज़्यादा जानकारी के लिए, “SplitPairRule.Builder माइग्रेशन” देखें. setFinishPrimaryWithPlaceholder,FinishBehaviorenum-like कॉन्सटेंट लेता है. ज़्यादा जानकारी के लिए, “SplitRule migrations” देखें.setLayoutDirection(layoutDirection)औरsetSplitRatio(ratio)बदलकर यह हो जाएगा:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- पोर्ट्रेट डिवाइसों पर स्प्लिट दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)का इस्तेमाल करें.
- इसमें सिर्फ़
वर्शन 1.1.0-alpha06
22 फ़रवरी, 2023
androidx.window:window-*:1.1.0-alpha06 रिलीज़ हो गया है. वर्शन 1.1.0-alpha06 में ये बदलाव शामिल हैं.
नई सुविधाएं
- यूज़र इंटरफ़ेस (यूआई) के कॉन्टेक्स्ट से
WindowLayoutInfoपाने के एक्सपेरिमेंटल वर्शन को उपलब्ध कराएं.
एपीआई में हुए बदलाव
- गतिविधि एम्बेड करने की सुविधा उपलब्ध है या नहीं, यह बताने के लिए
splitSupportStatusजोड़ें. (I10024) - यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट
WindowLayoutInfoएपीआई को एक्सपेरिमेंटल के तौर पर सेट करें. (I58ee0) WindowAreaControllerऔर एपीआई की मदद से,RearDisplayमोड चालू किया जा सकता है. इससे मौजूदा विंडो को उस डिसप्ले पर ले जाया जा सकता है जो रियर कैमरे के साथ अलाइन है. (Iffcbf)- डिफ़ॉल्ट बैकग्राउंड कलर अपडेट किया गया. (I1ac1b)
SplitAttributesपैरामीटर जोड़ें. (I18bdd)SplitRule,SplitAttributes,SplitAttributesCalculatorके लिए एपीआई जोड़ें. (I92d23)maxAspectRatioसे जुड़े एपीआई को बेहतर बनाएं:alwaysAllow()औरalwaysDisallow()कोALWAYS_ALLOWऔरALWAYS_DISALLOWसे बदलें.- @see के एपीआई दस्तावेज़ को स्टैंडअलोन दस्तावेज़ के साथ अपडेट करें. (I3057b)
- नीचे दिए गए कंस्ट्रक्टर को सार्वजनिक एपीआई से हटा दिया गया है, क्योंकि इन्हें ऐप्लिकेशन से कॉल नहीं किया जाना चाहिए.
SplitInfoकंस्ट्रक्टरActivityStackकंस्ट्रक्टर (Ide534)
SplitRuleअबmaxAspectRatioInPortrait/Landscapeलेता है. यह सिर्फ़ उन गतिविधियों को अलग-अलग करने की अनुमति देता है जब पैरंट बाउंड का आसपेक्ट रेशियो, अनुरोध किए गएmaxAspectRatioसे छोटा या उसके बराबर हो. (Ia5990)RuleController#parseRulesको स्टैटिक (I785df) के तौर पर बदलें- ActivityEmbedding से जुड़े एपीआई को बेहतर बनाएं
- एपीआई के नाम एक जैसे रखें - एक से ज़्यादा इंस्टेंस के लिए, जोड़ें/हटाएं का इस्तेमाल करें:
registerRuleको बदलकरaddRuleकिया गयाunregisterRuleको बदलकरremoveRuleकिया गयाgetSplitRulesकोgetRulesसे बदलें, क्योंकिActivityRuleस्प्लिट करने का नियम नहीं है- कई नियम सेट करने के लिए,
RuleController#setRulesजोड़ें - नियम निकालने से जुड़े एपीआई को
SplitControllerसे सिंगलटनRuleControllerमें बदलें. ये वजह हैं: addRuleremoveRulegetRulessetRulesclearRulesparseRules- सिंगलटन
ActivityEmbeddingControllerसेSplitControllerतक#isActivityEmbeddedएक्सट्रैक्ट करें. ये वजह हैं: isActivityEmbeddedSplitController#initializeहटाएं. एक्सएमएल फ़ाइल से नियम सेट करने के लिए, कृपया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को कॉल करने से सभी नियम मिट जाते हैं. भले ही, वे स्टैटिक एक्सएमएल नियम की परिभाषाओं के साथ रजिस्टर किए गए हों या रनटाइम पर.SplitController#clearRegisteredRulesके लेगसी वर्शन का इस्तेमाल करने के लिए, कृपया एक्सएमएल रिसॉर्स आईडी के साथ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)
- SplitRule API को बेहतर बनाया गया है:
SplitRuleके लिए, पिक्सल के बजाय डीपी में कम से कम डाइमेंशन लें.SplitRuleबिल्डर के लिए, कम से कम डाइमेंशन को वैकल्पिक के तौर पर लेने के लिए रिफ़ैक्टर किया गया. (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 में ये बदलाव शामिल हैं.
नई सुविधाएं
ActivityEmbeddingके लिए, यह तय करने का तरीका दिखाएं कि क्या कोईActivityStackखाली है.ActivityEmbeddingएपीआई से एक्सपेरिमेंटल एपीआई टैग हटा दिए गए हैं.ActivityRuleकंस्ट्रक्टर को छिपाएं, क्योंकिBuilderकंस्ट्रक्ट करने का पसंदीदा तरीका है.WindowMetricsपरWindowInsetsपाने के लिए, एक्सपेरिमेंट वाला तरीका जोड़ें.- प्लेसहोल्डर को पूरा होने से रोकने के लिए,
SplitPlaceholderFinishBehaviorको अपडेट करें. प्लेसहोल्डर को पूरा करने से, कुछ गड़बड़ियां हुईं.
एपीआई में हुए बदलाव
- fun
isEmptyको बदलने के लिए, valisEmptyको सार्वजनिक करें. ActivityStackपैरामीटर गतिविधियों का नाम बदलकरactivitiesInProcessकरें. (Ia5055)ActivityFilter#matchesClassNameऔरActivityFilter#matchesClassNameOrWildCardको हटाओ, क्योंकि इनसे उलझन होती है.- कॉल करने वाले को अलग-अलग फ़िल्टर (I41f22) के बारे में बताने के लिए,
ActivityFilter#componentNameऔरActivityFilter#intentActionजोड़ें - I216b3 एक्सपेरिमेंटल एपीआई से
@Deprecatedएपीआई हटाएं - गतिविधि एम्बेड करने वाले एपीआई (I69ebe) के लिए,
@ExperimentalWindowApiहटाएं ActivityRuleकंस्ट्रक्टर को छिपाएं. इसके बजाय, बिल्डर का इस्तेमाल करें. (If4eb6)- यह देखने के लिए कि कोई गतिविधि
ActivityFilterका हिस्सा है या नहीं, एपीआई जोड़ें. (Ia43cf) WindowMetricsऔरWindowMetricsCalculatorCompatक्लास में हुए बदलावों को दिखाने के लिए, एपीआई फ़ाइलों को अपडेट करें (I667fe)ActivityEmbeddingप्रॉपर्टी के Javadoc और क्लास के नाम (Ia1386) को अपडेट किया गया- AndroidManifest.xml में इस्तेमाल किए जाने वाले
ActivityEmbeddingप्रॉपर्टी टैग के नाम जोड़ना (Id1ad4) - नए एपीआई
SplitPlaceholderFinishBehaviorऔरSplitPlaceholderRule.finishPrimaryWithPlaceholderजोड़े गए हैं. ये मौजूदाSplitPlaceholderRule.finishPrimaryWithSecondaryकी जगह लेंगे.SplitPlaceholderRule.finishPrimaryWithSecondaryयह तय करता है कि प्लेसहोल्डर गतिविधियां कब पूरी होंगी और गतिविधि एम्बेड करने की सुविधा से जुड़ी गतिविधियां कैसे काम करेंगी. (I64647)
गड़बड़ियां ठीक की गईं
RearDisplayमोड को चालू करने के लिए,WindowAreaControllerऔर एपीआई पेश करता है. इससे मौजूदा विंडो को उस डिसप्ले पर ले जाया जा सकता है जो रीयर कैमरे के साथ अलाइन है. (I388ab)
वर्शन 1.1.0-alpha03
27 जुलाई, 2022
androidx.window:window-*:1.1.0-alpha03 रिलीज़ हो गया है. वर्शन 1.1.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- एम्बेड करने के नियमों के लिए डिफ़ॉल्ट वैल्यू अपडेट करें.
एपीआई में हुए बदलाव
- एम्बेड करने के नियम की प्रॉपर्टी के लिए डिफ़ॉल्ट वैल्यू अपडेट करें. (Ic4d35)
वर्शन 1.1.0-alpha02
11 मई, 2022
androidx.window:window-*:1.1.0-alpha02 रिलीज़ हो गया है. वर्शन 1.1.0-alpha02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Java और RxJava के साथ काम करने के लिए, अडैप्टर लाइब्रेरी रिलीज़ करें.
वर्शन 1.1.0-alpha01
11 मई, 2022
androidx.window:window-*:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Java और RxJava के साथ काम करने वाले अडैप्टर रिलीज़ किए गए
वर्शन 1.1.0-alpha01
20 अप्रैल, 2022
androidx.window:window:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- इस अपडेट में, उस गड़बड़ी को ठीक किया गया है जिसकी वजह से ऐप्लिकेशन को बैकग्राउंड में ले जाने पर, फ़ोल्ड करने की सुविधा काम नहीं करती थी.
- ActivityEmbedding API के एक्सपेरिमेंट को बड़ा करें.
एपीआई में हुए बदलाव
- यह सार्वजनिक एपीआई, यह देखने के लिए है कि कोई गतिविधि एम्बेड की जा रही है या नहीं. (I39eb7)
गड़बड़ियां ठीक की गईं
- ऐसे एपीआई जोड़े गए हैं जो गतिविधि स्प्लिट में कंटेनर के फ़िनिशिंग बिहेवियर को पसंद के मुताबिक बनाते हैं (I1a1e4)
- गतिविधि को बांटने के नियमों के लिए, एक नया कॉन्फ़िगरेशन विकल्प जोड़ा गया है. (Iec6af)
वर्शन 1.0
वर्शन 1.0.0
26 जनवरी, 2022
androidx.window:window-*:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये बदलाव शामिल हैं.
1.0.0 वर्शन की मुख्य सुविधाएं
WindowInfoTrackerऔरFoldingFeatureके ज़रिए, फ़ोल्ड किए जा सकने वाले फ़ोन के लिए सहायता.WindowMetricsCalculatorका इस्तेमाल करके, मौजूदा WindowMetrics का हिसाब लगाया जाता है.
वर्शन 1.0.0-rc01
15 दिसंबर, 2021
androidx.window:window-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.
नई सुविधाएं
WindowInfoTrackerके ज़रिए फ़ोल्ड किए जा सकने वाले फ़ोन के लिए सहायता जोड़ी गई.- मौजूदा और ज़्यादा से ज़्यादा
WindowMetricsका हिसाब लगाने के तरीके जोड़ें. - टेस्टिंग के लिए ज़रूरी एपीआई जोड़ें.
वर्शन 1.0.0-beta04
17 नवंबर, 2021
androidx.window:window-*:1.0.0-beta04 रिलीज़ हो गया है. वर्शन 1.0.0-beta04 में ये बदलाव शामिल हैं.
नई सुविधाएं
- WindowInfoRepository का नाम बदलकर WindowInfoTracker करें.
- WindowInfoTracker के लिए, गतिविधि को साफ़ तौर पर तरीके पर निर्भरता बनाएं.
- Robolectric का इस्तेमाल करने वाले डेवलपर की मदद करने के लिए, WindowMetricsCalculator के लिए एक सामान्य TestRule जोड़ें.
एपीआई में हुए बदलाव
- एक्सटेंशन निकालें (I25a5f)
- ActivityStack में isEmpty जोड़ें (I5a4e6)
- WindowInfoRepository का नाम बदलकर WindowInfoTracker करें.
- java/rxjava/testing डिपेंडेंसी को अपडेट करें. (I0da63)
- WindowMetricsCalculator के लिए, टेस्ट का एक सामान्य नियम जोड़ें. (Ibacdb)
वर्शन 1.0.0-beta03
27 अक्टूबर, 2021
androidx.window:window-*:1.0.0-beta03 रिलीज़ हो गया है. वर्शन 1.0.0-beta03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- एक्सपेरिमेंट के तौर पर उपलब्ध गतिविधि एम्बेड करने वाले एपीआई जोड़े गए. लेआउट के इस शुरुआती वर्शन में, दो गतिविधियों को साथ-साथ दिखाया जा सकता है.
एपीआई में हुए बदलाव
- currentWindowMetrics API को हटा दिया गया है, क्योंकि हम इसे सटीक तरीके से उपलब्ध नहीं करा सकते. इसके बजाय, कृपया WindowMetricsCalculator का इस्तेमाल करें (Icda5f)
- एक्सटेंशन एपीआई को अपडेट किया गया. (Ica92b)
- एक नई सुविधा के लिए इंटरफ़ेस जोड़ा गया है. इसकी मदद से, गतिविधियों को एम्बेड किया जा सकता है और उन्हें पैरंट टास्क विंडो में एक साथ दिखाया जा सकता है. (I5711d)
- WindowMetrics और WindowLayoutInfo के कंस्ट्रक्टर छिपा दिए गए हैं. कृपया इसके बजाय, टेस्ट एपीआई का इस्तेमाल करें. (I5a1b5)
- नकली WindowLayoutInfo ऑब्जेक्ट बनाने के लिए, एक एपीआई जोड़ें. (I4a2fd)
गड़बड़ियां ठीक की गईं
- मेमोरी लीक की समस्या ठीक की गई. (I3fc79, b/202989046)
वर्शन 1.0.0-beta02
1 सितंबर, 2021
androidx.window:window-*:1.0.0-beta02 रिलीज़ हो गया है. वर्शन 1.0.0-beta02 में ये बदलाव शामिल हैं.
नई सुविधाएं
- एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई को एनोटेट करने के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध एनोटेशन जोड़ें. (I9f1b6)
- Rect स्वीकार करने वाला FoldingFeature टेस्ट बनाने के लिए, एक टेस्ट मेथड जोड़ें. इससे, Robolectric का इस्तेमाल करते समय टेस्ट करना आसान हो जाएगा. ऐसा तब होगा, जब किसी ऐक्टिविटी का इस्तेमाल किया जा रहा हो. (Id1cca)
वर्शन 1.0.0-beta01
18 अगस्त, 2021
androidx.window:window-*:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- पुराने कॉन्स्टेंट हटा दिए गए हैं और
FoldingFeatureको इंटरफ़ेस बना दिया गया है.
एपीआई में हुए बदलाव
- पुराने कॉन्स्टेंट हटाएं और FoldFeature को इंटरफ़ेस बनाएं. (I9a2d5)
गड़बड़ियां ठीक की गईं
Test Coreलाइब्रेरी पर निर्भर रहने वाली लाइब्रेरी को1.4.0वर्शन में अपग्रेड कर दिया गया है. अब ये Android प्लैटफ़ॉर्म के 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 कर दिया गया है
- टेस्ट FoldingFeature ऑब्जेक्ट बनाने के लिए हेल्पर मेथड जोड़ें
- क्लास को ग्रुप करने के लिए पैकेज अपडेट करें. ऐसा उन सुविधाओं के आधार पर करें जो पैकेज में शामिल हैं.
एपीआई में हुए बदलाव
- ActivityExt का नाम बदलकर ActivityExtensions करें Repo का नाम बदलकर Repository करें. (I61a16)
- क्लासों के लिए पैकेज अपडेट करना. (I23ae2)
- WindowInfoRepo से WindowMetrics हटाएं (I24663)
- WindowManager को हटाएं और WindowInfoRepo का इस्तेमाल करें
- WindowBackend को इंटरनल बनाएं. (I06d9a)
- विंडो मेट्रिक को फ़्लो में बदलें.
- java अडैप्टर का नाम बदलकर WindowInfoRepoCallbackAdapter करें
- callbackFlow को हटाएं, ताकि एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई का इस्तेमाल न किया जा सके. (Ia4d15)
- टेस्ट डिसप्ले सुविधाएं बनाने के लिए, हेल्पर मेथड जोड़ें.
- occlusionMode से occlusionType में बदलाव (If4cff)
गड़बड़ियां ठीक की गईं
- proguard से जुड़ी उस गड़बड़ी को ठीक किया गया है जिसमें कोर लाइब्रेरी को हटाया जा रहा था.
- उस गड़बड़ी को ठीक किया गया है जिसमें WindowLayoutInfo को अन्य सदस्यों को नहीं भेजा जा रहा था.
- उस गड़बड़ी को ठीक किया गया है जिसमें कॉन्फ़िगरेशन में बदलाव करने पर, फ़ोल्डिंग की सुविधा से जुड़े अपडेट ट्रिगर नहीं होते थे.
वर्शन 1.0.0-alpha09
30 जून, 2021
androidx.window:window-*:1.0.0-alpha09 रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये बदलाव शामिल हैं.
नई सुविधाएं
- पूर्णांक कॉन्सटेंट से बदलकर, अनबाउंडेड एनम का इस्तेमाल किया गया है.
- टेस्ट फ़ोल्डिंग की सुविधाएं बनाने के लिए, टेस्ट यूटिलिटी जोड़ें.
एपीआई में हुए बदलाव
- टेस्ट डिसप्ले सुविधाएं बनाने के लिए, हेल्पर मेथड जोड़ें. (I3cf54)
occlusionModeसे बदलकरocclusionTypeकरें.
गड़बड़ियां ठीक की गईं
- डेटा स्ट्रीम के कई उपभोक्ताओं को जोड़ते समय, शुरुआती वैल्यू भेजना.
वर्शन 1.0.0-alpha08
16 जून, 2021
androidx.window:window-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.
नई सुविधाएं
- WindowInfoRepository का इस्तेमाल करते समय, जांच को आसान बनाने के लिए एक टेस्टिंग आर्टफ़ैक्ट जारी किया गया. DisplayFeatures और WindowMetrics के बारे में जानकारी पाने के लिए, WindowInfoRepository का इस्तेमाल करें. (I57f66, Ida620)
वर्शन 1.0.0-alpha07
2 जून, 2021
androidx.window:window-*:1.0.0-alpha07 रिलीज़ हो गया है. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.
नई सुविधाएं
- कोर विंडो लाइब्रेरी को Kotlin में माइग्रेट करें. आगे चलकर, एसिंक्रोनस डेटा को दिखाने के लिए कोरूटीन और सस्पेंड फ़ंक्शन का इस्तेमाल करेगा.
- WindowInfoRepo को WindowMetrics और WindowLayoutInfo की स्ट्रीम पाने के लिए, मुख्य इंटरैक्शन पॉइंट के तौर पर जोड़ें.
- कॉलबैक रजिस्टर और अनरजिस्टर करने के लिए, Java के साथ काम करने वाले एपीआई को दिखाने वाला नया
window-javaआर्टफ़ैक्ट. - RxJava के साथ काम करने वाले एपीआई को दिखाने के लिए, नए
window-rxjava2औरwindow-rxjava3आर्टफ़ैक्ट.
एपीआई में हुए बदलाव
- डिपेंडेंसी को एक जैसा बनाने के लिए,
WindowServicesजोड़ें.- विंडो लेआउट की जानकारी का इस्तेमाल करने के लिए, कोरूटीन आधारित एपीआई जोड़ें. (Iab70f)
- कोर विंडो मैनेजर लाइब्रेरी को Kotlin में माइग्रेट करें. (Icca34)
गड़बड़ियां ठीक की गईं
- सुविधा की सीमाओं को दिखाने के लिए, नई डेटा क्लास जोड़ें. (I6dcd1)
वर्शन 1.0.0-alpha06
5 मई, 2021
androidx.window:window:1.0.0-alpha06 रिलीज़ हो गया है. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.
नई सुविधाएं
- हमने Kotlin पर माइग्रेट करना शुरू कर दिया है. यह प्रोसेस, अगली रिलीज़ में पूरी हो जाएगी.
- DeviceState को सार्वजनिक एपीआई से हटा दिया गया है. कृपया इसके बजाय FoldingFeature का इस्तेमाल करें.
- हमने
STATE_FLIPPEDको FoldingFeature की स्थितियों से हटा दिया है, क्योंकि फ़िलहाल यह किसी भी इस्तेमाल के उदाहरण के साथ काम नहीं करता. - हमने बंद किए जा चुके अन्य एपीआई भी हटा दिए हैं.
एपीआई में हुए बदलाव
- Kotlin को डिपेंडेंसी के तौर पर जोड़ा जा रहा है.
- कोर लाइब्रेरी को Kotlin में माइग्रेट करें. (Idd995)
DisplayFeatureबिल्डर को हटा दिया गया है. (I61fa4)- सार्वजनिक एपीआई से
DeviceStateको हटा दिया गया है. इसके बजाय,FoldingFeatureका इस्तेमाल करें. (Id6079) - एक्सटेंशन से डिवाइस की स्थिति के बारे में सूचना देने वाले कॉलबैक को हटाता है. (I5ea83)
- FoldingFeature से
STATE_FLIPPEDहटाएं. (I9c4e1) - रजिस्ट्रेशन के ऐसे तरीके हटाएं जो अब इस्तेमाल में नहीं हैं. (Ib381b)
वर्शन 1.0.0-alpha05
24 मार्च, 2021
androidx.window:window:1.0.0-alpha05 रिलीज़ हो गया है. वर्शन 1.0.0-alpha05 में ये बदलाव शामिल हैं.
नई सुविधाएं
हमने FoldingFeature में कुछ सुविधाजनक तरीके जोड़े हैं, ताकि ऐप्लिकेशन यह पता लगा सकें कि सुविधा अलग हो रही है या बंद हो रही है. साथ ही, वे हिंज के ओरिएंटेशन का पता लगा सकें. हम हिंज टाइप को भी छिपा रहे हैं, ताकि
हम WindowManager से सिंक्रोनस रीड मेथड हटा रहे हैं. सिंक्रोनस रीड करने के तरीके में गड़बड़ी होने की आशंका ज़्यादा होती है, क्योंकि इसमें रेस कंडीशन मौजूद होती है. WindowLayoutInfo के बारे में अपडेट पाने के लिए, लिसनर और कॉलबैक रजिस्टर करें.
एपीआई में हुए बदलाव
- FoldingFeatures के साथ काम करने के लिए, सुविधा देने वाले तरीके जोड़े गए (Ie733f)
- WindowManager से सिंक्रोनस रीड मेथड हटाता है (I96fd4)
वर्शन 1.0.0-alpha04
10 मार्च, 2021
androidx.window:window:1.0.0-alpha04 रिलीज़ हो गया है. वर्शन 1.0.0-alpha04 में ये बदलाव शामिल हैं.
नई सुविधाएं
- इस गड़बड़ी को ठीक किया गया है. इसमें, अगर ओईएम का कोई लागू किया गया फ़ंक्शन नहीं है, तो WindowLayoutInfo नहीं दिखता है. अब हम एक खाली WIndowLayoutInfo ऑब्जेक्ट भेजते हैं.
- उस गड़बड़ी को ठीक किया गया है जिसमें ऐप्लिकेशन के बैकग्राउंड में चलने के दौरान, हिंज की स्थिति बदलने पर स्टेटस ठीक से अपडेट नहीं होता था. अब राज्य एक जैसा होना चाहिए.
- रनटाइम डिपेंडेंसी से मिलने वाली चेतावनियों को अनदेखा करने के लिए, हमारी ProGuard फ़ाइलों को अपडेट किया गया है.
गड़बड़ियां ठीक की गईं
- OEM लाइब्रेरी मौजूद न होने पर, खाली वैल्यू दिखाता है. (Ide935)
वर्शन 1.0.0-alpha03
18 फ़रवरी, 2021
androidx.window:window:1.0.0-alpha03 रिलीज़ हो गया है. वर्शन 1.0.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- OEM के लागू किए गए फ़ंक्शन में कोई वैल्यू न होने पर, WindowLayoutInfo के लिए कोई वैल्यू न भेजें. इससे, लाइब्रेरी को ज़्यादा डिवाइसों पर इस्तेमाल करना आसान हो जाएगा. एपीआई एसिंक्रोनस होते हैं. इसलिए, हमारा सुझाव है कि ऐप्लिकेशन कुछ डिफ़ेंसिव कोड लिखें और टाइम आउट के बाद डिफ़ॉल्ट वैल्यू दें. हम ओईएम के लागू करने के तरीके की कोई गारंटी नहीं देते. साथ ही, शुरुआती वैल्यू मिलने में देरी हो सकती है.
गड़बड़ियां ठीक की गईं
- OEM लाइब्रेरी मौजूद न होने पर, खाली वैल्यू दिखाता है. (Ide935)
वर्शन 1.0.0-alpha02
27 जनवरी, 2021
androidx.window:window:1.0.0-alpha02 रिलीज़ हो गया है. वर्शन 1.0.0-alpha02 में ये बदलाव शामिल हैं.
नई सुविधाएं
हमने कुछ एपीआई बंद कर दिए हैं, ताकि एपीआई को बेहतर तरीके से मैनेज किया जा सके और गलतियां कम हों. इसके कुछ मुख्य उदाहरणों में, WindowManager से सिंक्रोनस रीड ऑपरेशन हटाना और DeviceState को बंद करना शामिल है. सिंक्रोनस रीड ऑपरेशन की वजह से रेस कंडीशन हो सकती है और यूज़र इंटरफ़ेस (यूआई) गलत हो सकता है.
हमने DisplayFeature को एक इंटरफ़ेस में बदल दिया है. आने वाले समय में, अन्य सुविधाएं इसे लागू करेंगी. हमारी पहली सुविधा, FoldingFeature है. यह अब स्क्रीन फ़ोल्ड या हिंज को दिखाती है. इसमें डिवाइस के हिंज की स्थिति भी शामिल होती है, जो DeviceState की जगह लेती है.
WindowMetrics को Android 11 में लॉन्च किया गया था. इससे डेवलपर को किसी विंडो के बारे में मेट्रिक क्वेरी करने का आसान तरीका मिलता है. जैसे, स्क्रीन पर उसकी पोज़िशन और साइज़, और सिस्टम इनसेट. हमने इस रिलीज़ में एपीआई को बैकपोर्ट किया है, ताकि डेवलपर WindowMetrics का फ़ायदा उठा सकें और Android के पुराने वर्शन के लिए सहायता जारी रख सकें. WindowMetrics को
WindowManager#getCurrentWindowMetrics()और WindowManager#getMaximumWindowMetrics() एपीआई के ज़रिए हासिल किया जा सकता है.
एपीआई में हुए बदलाव
- उन एपीआई को बंद करना जिन्हें अगले ऐल्फ़ा (Ib7cc4) में हटाया जाएगा
- इस कुकी का इस्तेमाल,
ExtensionInterfaceको अपडेट करने के लिए किया जाता है, ताकि साफ़ तौर पर गतिविधि के रेफ़रंस स्वीकार किए जा सकें. (I07ded) - WindowMetrics API के बारे में जानकारी देता है. (I3ccee)
- WindowManager से सिंक्रोनस रीड मेथड हटाएं (I69983)
- ExtensionWindowBackend पैकेज को सुरक्षित रखें. (Ied208)
गड़बड़ियां ठीक की गईं
- विज़ुअल कॉन्टेक्स्ट स्वीकार करने के लिए,
ExtensionInterfaceएपीआई अपडेट करें. (I8e827)
बाहरी योगदान
- DeviceState और WindowLayoutInfo को मर्ज करें, ताकि डेटा को आसानी से ऐक्सेस किया जा सके. (Id34f4)
वर्शन 1.0.0-alpha01
27 फ़रवरी, 2020
androidx.window:window:1.0.0-alpha01 और androidx.window:window-extensions:1.0.0-alpha01 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha01 में ये बदलाव शामिल हैं.
यह Window Manager लाइब्रेरी का पहला वर्शन है.
नई सुविधाएं
DisplayFeature: यह नया एपीआई, लगातार फ़्लैट स्क्रीन वाली सतहों में आने वाली रुकावटों का पता लगाता है. जैसे, हिंज या फ़ोल्डDeviceState: यह नया एपीआई, फ़ोन की मौजूदा स्थिति के बारे में जानकारी देता है. यह जानकारी, पहले से तय की गई स्थितियों की सूची से मिलती है. उदाहरण के लिए,CLOSED,OPENED,HALF_OPENEDवगैरह.