WindowManager
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
---|---|---|---|---|
30 जुलाई, 2025 | 1.4.0 | - | 1.5.0-beta02 | - |
डिपेंडेंसी का एलान करना
WindowManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी लेख पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.window:window:1.4.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.4.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.4.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.4.0" // For testing implementation "androidx.window:window-testing:1.4.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.4.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.4.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.4.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.4.0") // For testing implementation("androidx.window:window-testing:1.4.0") }
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
संस्करण 1.5
वर्शन 1.5.0-beta02
30 जुलाई, 2025
androidx.window:window-*:1.5.0-beta02
रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये कमिट शामिल हैं.
बाहरी योगदान
window-core
(If3d7c) में सभी KMP प्लैटफ़ॉर्म जोड़ें
वर्शन 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)
- एक्सपेरिमेंट के तौर पर उपलब्ध
WindowInsets
API को हटा दिया गया है. (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
- टेस्टिंग की सुविधा को बेहतर बनाना
WindowMetrics
withDp
औरheightDp
का हिसाब लगाने के आसान तरीके- बाउंड्री की जांच को
isAtLeast
पर अपडेट करें और नई वैल्यू जोड़ने के लिए, लोअर बाउंड का इस्तेमाल करें
WindowSizeClass
WindowMetrics
से कैलकुलेट करने का तरीका जोड़ें
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 में ये कमिट शामिल हैं.
नई सुविधाएं
WindowSizeClass
API से जुड़े अपडेट.- गतिविधि एम्बेड करने वाले एपीआई से जुड़े अपडेट.
वर्शन 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) को पसंद के मुताबिक बनाने की अनुमति दें watchosDeviceArm64
KMP टारगेट और टारगेट 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)- एक्सपेरिमेंट के तौर पर उपलब्ध
WindowInsets
API को हटा दिया गया है. (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)WindowSizeClass
API को अपडेट करें, ताकि आने वाले समय में नई ब्रेकपॉइंट वैल्यू जोड़ी जा सकें. हम सटीक सीमाओं के बजाय, निचली सीमाओं का इस्तेमाल करते हैं. साथ ही, हमारा सुझाव है कि डेवलपर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#pinTopActivityStack
SplitController#unpinTopActivityStack
इंटरैक्टिव डिवाइडर को चालू और कॉन्फ़िगर करने के लिए, एपीआई जोड़ना
DividerAttributes
क्लासSplitAttributes.Builder#setDividerAttributes
डायलॉग के लिए
EmbeddingConfiguration
औरDimAreaBehavior
सेट करने के लिए, एपीआई जोड़ेंEmbeddingConfiguration
क्लासDimAreaBehavior
क्लासActivityEmbeddingController#setEmbeddingConfiguration
एम्बेड की गई गतिविधि की विंडो की जानकारी के अपडेट पाने के लिए, एपीआई जोड़ना
EmbeddedActivityWindowInfo
क्लासActivityEmbeddingController#embeddedActivityWindowInfo
बैकग्राउंड में एम्बेड किए गए ऐनिमेशन को सेट करने के लिए एपीआई जोड़ें
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
ActivityStacks
को पूरा करने के लिए एपीआई जोड़ेंActivityEmbeddingController#finishActivityStacks
लॉन्चिंग
ActivityStack
सेट करने के लिए एपीआई जोड़नाActivityEmbeddingOptions#setLaunchingActivityStack
यहां दिए गए एपीआई अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. ये स्टेबल हैं:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(moved from SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
1.4 के लिए एपीआई जोड़ें. (I56774)
गड़बड़ियां ठीक की गईं
- कुछ डिवाइसों पर मौजूद उस गड़बड़ी को ठीक किया गया है जिसमें सेशन चालू होने पर, ACTIVE के बजाय UNAVAILABLE दिखता था.
- एपीआई के ठीक से काम न करने की वजह से,
vendorApiLevel
वाले डिवाइसों पर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) के लिए कॉलबैक अडैप्टर जोड़ें
- टेस्टिंग के लिए,
WindowSdkExtensionsRule
कोextensionsVersion
को बदलने के लिए पेश किया गया है. (Ifb928) - -
ActivityOptionsCompat
के साथ काम करने के लिए,#setLaunchingActivityStack
को बंडल में माइग्रेट करें.- उपयोगकर्ताओं को
ActvityOptions
के बजायactivityOptions.toBundle
पास करना चाहिए. #setLaunchingActivityStack(Activity)
को हटाएं. उपयोगकर्ताओं कोActivityEmbeddingController#getActivityStac(Activity)
का इस्तेमाल करने के लिए माइग्रेट करना चाहिए, ताकि उन्हेंActivityStack
मिल सके. साथ ही, वेActivityStack
को#setLaunchingActivityStack
पर भेज सकें. (Ie0ccc)
- उपयोगकर्ताओं को
- - WM Jetpack और एक्सटेंशन के बीच कम्यूनिकेट करने के लिए,
ActivityStack.Token
औरSpltInfo.Token
को आइडेंटिफ़ायर के तौर पर पेश किया गया है.- IBinder के बजाय टोकन लेने/वापस करने के लिए, एपीआई को बंद करें/बदलें. (I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacks
के बारे में जानकारी देंSplitController#invalidateTopVisibleSplitAttributes
को हटाएं, क्योंकि इस सुविधा को#invalidateVisibleActivityStacks
(I02ef5) में शामिल कर दिया गया है
- - एम्बेड करने के कॉन्फ़िगरेशन को सेट करने के लिए, एपीआई जोड़ा गया. (I59a4a)
- - सबसे ऊपर पिन करने/पिन हटाने की सुविधा वाले
ActivityStack
androidx.Window
एपीआई जोड़े गए- डेमो ऐप्लिकेशन को अपडेट किया जा रहा है, ताकि टॉप
ActivityStack
को पिन/अनपिन किया जा सके (I24dd3)
- डेमो ऐप्लिकेशन को अपडेट किया जा रहा है, ताकि टॉप
#finishActivityStacks
औरActivityEmbeddingOptions
को फिर से जोड़ें (Ic1ab3)- ऐसे एपीआई हटाएं जो स्टेबल नहीं हैं. (Ibc534, b/302380585)
वर्शन 1.3
वर्शन 1.3.0
29 मई, 2024
androidx.window:window-*:1.3.0
रिलीज़ हो गया है. वर्शन 1.3.0 में ये कमिट शामिल हैं.
1.2.0 के बाद हुए ज़रूरी बदलाव
- विंडो के साइज़ क्लास के लिए, Kotlin Multiplatform का इस्तेमाल किया जा सकता है.
वर्शन 1.3.0-rc01
14 मई, 2024
WindowManager
Jetpack 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
सहायता जोड़ें, ताकिSplitInfo
सूची (I7f1b6) मिल सके
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)
गड़बड़ियां ठीक की गईं
WindowLayoutInfo
के आधार पर,Context
पर ओवरराइड करने की सुविधा के लिए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
के लिए टेस्ट एपीआई को स्थिर किया गया है, ताकि JVM टेस्टिंग की जा सके. (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
में जोड़ा गया. - कम से कम डाइमेंशन की परिभाषाओं में बदलाव किया गया है, ताकि पिक्सल के बजाय डेंसिटी-इंडिपेंडेंट पिक्सल (डीपी) का इस्तेमाल किया जा सके.
- डिफ़ॉल्ट वैल्यू 600 डीपी के साथ
minHeightDp
जोड़ा गया. minWidth
कोminWidthDp
में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600dp है.minSmallestWidth
कोminSmallestWidthDp
में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600dp है.- डिफ़ॉल्ट वैल्यू
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" />
इससे सिस्टम को, ऐप्लिकेशन के लिए स्प्लिट स्क्रीन के व्यवहार को पहले से ही ऑप्टिमाइज़ करने की अनुमति मिलती है. SplitInfo
ratio- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
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
property migrations:minWidth
औरminSmallestWidth
अब पिक्सल के बजाय dp यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन, इस कॉल का इस्तेमाल कर सकते हैं:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
या सिर्फ़minWith
को पिक्सल मेंdisplayMetrics#density
से भाग दें.
- फ़िनिश बिहेवियर कॉन्स्टेंट को
FinishBehavior
enum-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
migrations: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
enum जैसे कॉन्स्टेंट लेते हैं. ज़्यादा जानकारी के लिए, “SplitRule migrations” देखें.- पोर्ट्रेट डिवाइसों पर स्प्लिट दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
का इस्तेमाल करें.
SplitPlaceholder.Builder
migrations:- इसमें सिर्फ़
filters
औरplaceholderIntent
पैरामीटर होते हैं. अन्य प्रॉपर्टी, सेटर में चली जाती हैं. ज़्यादा जानकारी के लिए, “SplitPairRule.Builder migrations” देखें. setFinishPrimaryWithPlaceholder
,FinishBehavior
जैसे enum-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
में जोड़ा गया. - कम से कम डाइमेंशन की परिभाषाओं में बदलाव किया गया है, ताकि पिक्सल के बजाय डेंसिटी-इंडिपेंडेंट पिक्सल (डीपी) का इस्तेमाल किया जा सके.
- डिफ़ॉल्ट वैल्यू 600 डीपी के साथ
minHeightDp
जोड़ा गया. minWidth
कोminWidthDp
में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600dp है.minSmallestWidth
कोminSmallestWidthDp
में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600dp है.- डिफ़ॉल्ट वैल्यू
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" />
इससे सिस्टम को, ऐप्लिकेशन के लिए स्प्लिट स्क्रीन के व्यवहार को पहले से ही ऑप्टिमाइज़ करने की अनुमति मिलती है. SplitInfo
ratio- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
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
migrations: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
property migrations:minWidth
औरminSmallestWidth
अब पिक्सल के बजाय dp यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन, इस कॉल का इस्तेमाल कर सकते हैं:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
या सिर्फ़minWith
को पिक्सल मेंdisplayMetrics#density
से भाग दें.
- फ़िनिश बिहेवियर कॉन्स्टेंट को
FinishBehavior
enum-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
migrations: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
enum जैसे कॉन्स्टेंट लेते हैं. ज़्यादा जानकारी के लिए, “SplitRule migrations” देखें.- पोर्ट्रेट डिवाइसों पर स्प्लिट दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
का इस्तेमाल करें.
SplitPlaceholder.Builder
migrations:- इसमें सिर्फ़
filters
औरplaceholderIntent
पैरामीटर होते हैं. अन्य प्रॉपर्टी, सेटर में चली जाती हैं. ज़्यादा जानकारी के लिए, “SplitPairRule.Builder migrations” देखें. setFinishPrimaryWithPlaceholder
,FinishBehavior
जैसे enum-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) RearDisplay
मोड को चालू करने के लिए,WindowAreaController
और एपीआई पेश करता है. इससे मौजूदा विंडो को उस डिसप्ले पर ले जाया जा सकता है जो रियर कैमरे के साथ अलाइन है. (Iffcbf)- डिफ़ॉल्ट बैकग्राउंड कलर अपडेट किया गया. (I1ac1b)
SplitAttributes
पैरामीटर जोड़ें. (I18bdd)SplitRule
,SplitAttributes
,SplitAttributesCalculator
के लिए एपीआई जोड़े गए. (I92d23)maxAspectRatio
से जुड़े एपीआई को बेहतर बनाएं:alwaysAllow()
औरalwaysDisallow()
कोALWAYS_ALLOW
औरALWAYS_DISALLOW
से बदलें.- @see के एपीआई दस्तावेज़ को स्टैंडअलोन दस्तावेज़ के साथ अपडेट करें. (I3057b)
- नीचे दिए गए कंस्ट्रक्टर को सार्वजनिक एपीआई से हटा दिया गया है, क्योंकि इन्हें ऐप्लिकेशन से कॉल नहीं किया जाना चाहिए.
SplitInfo
कंस्ट्रक्टरActivityStack
कंस्ट्रक्टर (Ide534)
SplitRule
अबmaxAspectRatioInPortrait/Landscape
लेता है. यह सिर्फ़ उन गतिविधियों को स्प्लिट करने की अनुमति देता है जिनमें पैरंट बाउंड का आसपेक्ट रेशियो, अनुरोध किए गएmaxAspectRatio
से छोटा या उसके बराबर होता है. (Ia5990)RuleController#parseRules
को स्टैटिक (I785df) के तौर पर बदलें- ActivityEmbedding से जुड़े एपीआई को बेहतर बनाएं
- एपीआई के नाम एक जैसे रखें - एक से ज़्यादा इंस्टेंस के लिए, जोड़ें/हटाएं का इस्तेमाल करें:
registerRule
को बदलकरaddRule
किया गयाunregisterRule
को बदलकरremoveRule
किया गयाgetSplitRules
कोgetRules
से बदलें, क्योंकिActivityRule
स्प्लिट करने का नियम नहीं है- एक साथ कई नियम सेट करने के लिए,
RuleController#setRules
जोड़ें - नियम निकालने से जुड़े एपीआई को
SplitController
से सिंगलटनRuleController
में बदलें. ये वजह हैं: addRule
removeRule
getRules
setRules
clearRules
parseRules
SplitController
से#isActivityEmbedded
को सिंगलटनActivityEmbeddingController
में एक्सट्रैक्ट करें. ये वजह हैं:isActivityEmbedded
SplitController#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
कंस्ट्रक्टर को छिपाएं, क्योंकिActivityRule
कंस्ट्रक्ट करने का पसंदीदा तरीका है.Builder
WindowMetrics
परWindowInsets
पाने के लिए, एक्सपेरिमेंट वाला कोई तरीका जोड़ें.- प्लेसहोल्डर को पूरा होने से रोकने के लिए,
SplitPlaceholderFinishBehavior
को अपडेट करें. प्लेसहोल्डर को पूरा करने से, कुछ पेजों पर व्यवहार बदल सकता है.
एपीआई में हुए बदलाव
- fun
isEmpty
को बदलने के लिए, valisEmpty
को सार्वजनिक करें. ActivityStack
पैरामीटर गतिविधियों का नाम बदलकरactivitiesInProcess
करें. (Ia5055)ActivityFilter#matchesClassName
औरActivityFilter#matchesClassNameOrWildCard
को हटाओ, क्योंकि इनसे उलझन होती है.- कॉल करने वाले को अलग-अलग फ़िल्टर (I41f22) के बीच अंतर करने की अनुमति देने के लिए,
ActivityFilter#componentName
औरActivityFilter#intentAction
जोड़ें @Deprecated
एपीआई को एक्सपेरिमेंटल एपीआई (I216b3) से हटाएं- गतिविधि एम्बेड करने वाले एपीआई (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)
- add isEmpty in ActivityStack (I5a4e6)
- WindowInfoRepository का नाम बदलकर WindowInfoTracker कर दिया गया है.
- java/rxjava/testing डिपेंडेंसी को अपडेट करें. (I0da63)
- WindowMetricsCalculator के लिए, टेस्ट का सामान्य नियम जोड़ें. (Ibacdb)
वर्शन 1.0.0-beta03
27 अक्टूबर, 2021
androidx.window:window-*:1.0.0-beta03
रिलीज़ हो गया है. वर्शन 1.0.0-beta03 में ये कमिट शामिल हैं.
नई सुविधाएं
- एक्सपेरिमेंट के तौर पर उपलब्ध गतिविधि एम्बेड करने वाले एपीआई जोड़े गए. लेआउट के इस शुरुआती वर्शन में, दो गतिविधियों को साथ-साथ दिखाया जा सकता है.
एपीआई में हुए बदलाव
- currentWindowMetrics API को हटा दिया गया है, क्योंकि हम इसे सटीक तरीके से उपलब्ध नहीं करा सकते. इसके बजाय, कृपया WindowMetricsCalculator का इस्तेमाल करें (Icda5f)
- एक्सटेंशन एपीआई को अपडेट किया गया. (Ica92b)
- एक नई सुविधा के लिए इंटरफ़ेस जोड़ा गया है. इसकी मदद से, गतिविधियों को एम्बेड किया जा सकता है और उन्हें पैरंट टास्क विंडो में एक साथ दिखाया जा सकता है. (I5711d)
- WindowMetrics और WindowLayoutInfo के कंस्ट्रक्टर छिपा दिए गए हैं. कृपया इसके बजाय, टेस्ट एपीआई का इस्तेमाल करें. (I5a1b5)
- WindowLayoutInfo ऑब्जेक्ट बनाने के लिए, एपीआई जोड़ें. (I4a2fd)
गड़बड़ियां ठीक की गईं
- मेमोरी लीक की समस्या ठीक की गई. (I3fc79, b/202989046)
वर्शन 1.0.0-beta02
1 सितंबर, 2021
androidx.window:window-*:1.0.0-beta02
रिलीज़ हो गया है. वर्शन 1.0.0-beta02 में ये कमिट शामिल हैं.
नई सुविधाएं
- एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई को एनोटेट करने के लिए, एक्सपेरिमेंटल एनोटेशन जोड़ें. (I9f1b6)
- 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
को हटा दिया है, क्योंकि फ़िलहाल यह किसी भी इस्तेमाल के उदाहरण के साथ काम नहीं करता है. - हमने बंद किए गए अन्य एपीआई भी हटा दिए हैं.
एपीआई में हुए बदलाव
- 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 है. यह अब स्क्रीन फ़ोल्ड या हिंज को दिखाती है. इसमें डिवाइसस्टेट की जगह इस्तेमाल किए जा रहे हिंज की स्थिति भी शामिल होती है.
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
वगैरह.