WindowManager
नया अपडेट | रिलीज़ किया गया जांचा और परखा हुआ वर्शन | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
16 अक्टूबर, 2024 | 1.3.0 | - | - | 1.4.0-alpha05 |
डिपेंडेंसी का एलान करना
WindowManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की मेवन रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
सुझाव
आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. किसी मौजूदा समस्या पर अपना वोट जोड़ने के लिए, स्टार बटन पर क्लिक करें.
ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.
वर्शन 1.4
वर्शन 1.4.0-alpha05
16 अक्टूबर, 2024
androidx.window:window-*:1.4.0-alpha05
रिलीज़ हो गया है. वर्शन 1.4.0-alpha05 में ये कमिट शामिल हैं.
नई सुविधाएं
WindowMetrics
सेwidthDp
औरheightDp
पाने के लिए, सुविधाजनक फ़ंक्शन जोड़ें.
एपीआई में हुए बदलाव
widthDp
औरheightDp
कोWindowMetrics
में जोड़ें. (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 को पिन करने की सुविधा की मदद से, ऐप्लिकेशन किसी एक कंटेनर में कॉन्टेंट को पिन कर सकते हैं. साथ ही, उसके नेविगेशन को दूसरे कंटेनर से अलग कर सकते हैं.
- इंटरैक्टिव डिवाइडर की मदद से, ऐप्लिकेशन स्प्लिट प्रज़ेंटेशन में दो गतिविधियों के बीच, फ़िक्स किया गया या खींचकर छोड़ा जा सकने वाला डिवाइडर दिखा सकते हैं.
- फ़ुल-स्क्रीन डायलॉग को धुंधला करने की सुविधा की मदद से, ऐप्लिकेशन यह तय कर सकते हैं कि डायलॉग के किस हिस्से को धुंधला करना है. इससे, पूरे टास्क विंडो को धुंधला किया जा सकता है या सिर्फ़ डायलॉग दिखाने वाले कंटेनर को धुंधला किया जा सकता है.
- एम्बेड की गई गतिविधि विंडो की जानकारी का कॉलबैक, ऐप्लिकेशन को एम्बेड की गई गतिविधि विंडो के अपडेट लगातार पाने की सुविधा देता है.
- ऐनिमेशन बैकग्राउंड को एम्बेड करना सुविधा की मदद से, ऐप्लिकेशन ऐनिमेशन का बैकग्राउंड तय कर सकते हैं. इससे
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
(SplitController#invalidateTopVisibleSplitAttributes से हटाया गया)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
1.4 के लिए एपीआई जोड़ें. (I56774)
गड़बड़ियां ठीक की गईं
- कुछ डिवाइसों पर मौजूद उस गड़बड़ी को ठीक किया गया है जहां सेशन चालू होने पर, ACTIVE के बजाय UNAVAILABLE दिखता था.
- एपीआई के काम न करने की वजह से,
vendorApiLevel
की वैल्यू 2 वाले डिवाइसों पर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)
हटाएं. उपयोगकर्ताओं कोActivityStack
पाने के लिए,ActivityEmbeddingController#getActivityStac(Activity)
का इस्तेमाल करने के लिए माइग्रेट करना होगा. साथ ही,ActivityStack
को#setLaunchingActivityStack
को पास करना होगा. (Ie0ccc)
- उपयोगकर्ताओं को
- - WM Jetpack और एक्सटेंशन के बीच कम्यूनिकेट करने के लिए, आइडेंटिफ़ायर के तौर पर
ActivityStack.Token
औरSpltInfo.Token
का इस्तेमाल करें.- IBinder के बजाय टोकन लेने/देने के लिए, एपीआई को बंद करें या बदलें. (I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacks
के बारे में जानकारी देंSplitController#invalidateTopVisibleSplitAttributes
को हटाएं, क्योंकि यह सुविधा#invalidateVisibleActivityStacks
(I02ef5) में शामिल कर दी गई है
- - एम्बेड करने के कॉन्फ़िगरेशन को सेट करने के लिए एपीआई जोड़ा गया. (I59a4a)
- - सबसे ज़्यादा इस्तेमाल होने वाले
ActivityStack
androidx.Window
एपीआई को पिन/अनपिन करने की सुविधा जोड़ी गई है- डेमो ऐप्लिकेशन को अपडेट किया जा रहा है, ताकि टॉप
ActivityStack
को पिन/अनपिन किया जा सके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
जांच जोड़ें जिन्हें सही तरीके से काम करने के लिए, एक्सटेंशन के किसी खास वर्शन की ज़रूरत होती है. - डिवाइस पर एक्सटेंशन का वर्शन दिखाने के लिए, कोई एपीआई जोड़ें.
एपीआई में हुए बदलाव
- सार्वजनिक एपीआई पर, विंडो के लिए ज़रूरी SDK टूल के एक्सटेंशन वर्शन के बारे में एनोटेट करें.
- गतिविधि को एम्बेड करने वाले कॉम्पोनेंट में
isXXXSupported
हटाएं. (Ie3dae)
- गतिविधि को एम्बेड करने वाले कॉम्पोनेंट में
- डिवाइस पर एक्सटेंशन के वर्शन की शिकायत करने के लिए,
WindowSdkExtensions
को शामिल करें.- एक्सटेंशन के लिए ज़रूरी कम से कम वर्शन के बारे में एनोटेट करने के लिए,
RequiresWindowSdkExtension
का इस्तेमाल करें. (I05fd4)
- एक्सटेंशन के लिए ज़रूरी कम से कम वर्शन के बारे में एनोटेट करने के लिए,
WindowAreaInfo#getCapability
को वैल्यू के बिना इस्तेमाल न किया जा सके. (I17048)
वर्शन 1.2.0-beta01
26 जुलाई, 2023
androidx.window:window-*:1.2.0-beta01
रिलीज़ हो गया है. 1.2.0-beta01 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- पीछे की स्क्रीन को ऐक्सेस करने के लिए, एक्सपेरिमेंटल विंडो एपीआई एक्सपोज़ करें.
FoldingFeature
बनाने के लिए, टेस्ट एपीआई अब स्टेबल हो गए हैं.- नकली
ActivityEmbedding
वैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब काम कर रहे हैं. WindowLayoutInfoPublisherRule
अबUiContext
से वैल्यू पाने पर, बदलाव की रिपोर्ट करता है.WindowInfoTracker
,UiContext
पैरामीटर में फ़ोल्डिंग की सुविधा का डेटा रिपोर्ट करता है.
एपीआई में हुए बदलाव
WindowArea
एपीआई को एक्सपेरिमेंटल के तौर पर मार्क किया गया, ताकि 1.3 में स्टेबल रिलीज़ के लिए एपीआई में बदलाव जारी रखा जा सके (I857f5)- काम न करने वाले वर्शन के बारे में एनोटेट करने के लिए, एपीआई फ़ाइलों को अपडेट किया गया (I8e87a, b/287516207)
वर्शन 1.2.0-alpha03
21 जून, 2023
androidx.window:window-*:1.2.0-alpha03
रिलीज़ हो गया है. 1.2.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- एपीआई के प्लैटफ़ॉर्म से, अब इस्तेमाल नहीं किए जा रहे एपीआई हटाना.
- एक साथ कई डिसप्ले दिखाने की सुविधा के लिए एपीआई जोड़ें.
- ज़बरदस्ती रीसाइज़ करने की सुविधा से ऑप्ट आउट करने के लिए, कोई प्रॉपर्टी जोड़ें.
- कम से कम आसपेक्ट रेशियो बदलने की सुविधा से ऑप्ट आउट करने के लिए प्रॉपर्टी जोड़ें.
- गतिविधि को एम्बेड करने के लिए यूनिट टेस्टिंग की सुविधा देने के लिए,
ActivityEmbeddingRule
को स्थिर करें.
एपीआई में हुए बदलाव
गड़बड़ियां ठीक की गईं
- फ़ोर्स रीसाइज़ ओवरराइड के लिए, ऑप्ट-आउट की सुविधा वाली काम करने लायक प्रॉपर्टी जोड़ना (Ie7ab1)
- ऐसा करने से,
SESSION_STATE_CONTENT_INVISIBLE
एक्सटेंशन इंटरफ़ेस से हट जाएगा. (I6ed19) - गतिविधि को एम्बेड करने के लिए यूनिट टेस्टिंग की सुविधा देने के लिए,
ActivityEmbeddingRule
को स्थिर करें. (I8d6b6) - आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को कम से कम करने के लिए, ऑप्ट-आउट की जा सकने वाली, काम करने वाली प्रॉपर्टी जोड़ी जा रही है. (I66390)
- काम नहीं करने वाले WindowArea API (Ieb67c) को हटाता है
- ओरिएंटेशन रिक्वेस्ट लूप प्रॉपर्टी का नाम बदलकर
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
करें. (Ie2fbd) - विंडो एरिया सेशन के कॉन्स्टेंट के नाम अपडेट करता है (I83675)
- ऑप्ट-आउट करने की सुविधा के साथ काम करने वाली ऐसी प्रॉपर्टी जोड़ना जो ओरिएंटेशन के अनुरोध वाले लूप का पता चलने पर उसे अनदेखा कर देती है (I0a7a2)
WindowAreaComponent#STATUS_ACTIVE
जोड़ें, ताकि यह पता चल सके कि सुविधा पहले से चालू है. (I62bc3)RearDisplayPresentationMode
एपीआई जोड़ना (I0401c)- स्टैबल वर्शन के लिए, बैकग्राउंड कलर एपीआई हटाएं. (I34c3e)
- Window Area APIs को छिपाएं. (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
पर ले जाएंSplitInfo
की सूची पाने के लिए,Flow
सहायता जोड़ें (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)
गड़बड़ियां ठीक की गईं
Context
पर आधारितWindowLayoutInfo
में बदलाव करने के लिए,WindowLayoutInfoPublishRule
को अपडेट करें. (I2037a)
वर्शन 1.2.0-alpha01
24 मई, 2023
androidx.window:window-*:1.2.0-alpha01
रिलीज़ हो गया है. 1.2.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
गतिविधि एम्बेड करने और WindowLayoutInfoTracker
के लिए, एपीआई की जांच को स्थिर करें. ActivityEmbeddingRule
को स्टेबल वर्शन के तौर पर रिलीज़ कर दिया गया है.
WindowMetricsCalculatorRule
को स्टेबल वर्शन के तौर पर रिलीज़ कर दिया गया है.
टेस्ट के लिए FoldingFeature
बनाने वाले यूटिलिटी फ़ंक्शन को स्टेबल के तौर पर प्रमोट कर दिया गया है.
एपीआई में हुए बदलाव
- गतिविधि को एम्बेड करने के लिए यूनिट टेस्टिंग की सुविधा देने के लिए,
ActivityEmbeddingRule
को स्थिर करें. (I8d6b6) WindowMetrisCalculatorTestRule
, जेवीएम टेस्ट के लिए स्टब मेट्रिक की अनुमति देने वाला स्टेबल वर्शन है. सटीक नतीजे पाने के लिए, हमारा सुझाव है कि आप किसी एमुलेटर का इस्तेमाल करें.- JVM टेस्टिंग की सुविधा देने के लिए,
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
में जोड़ा गया. - पिक्सल के बजाय डेंसिटी-इंडिपेंडेंट पिक्सल (dp) का इस्तेमाल करने के लिए, कम से कम डाइमेंशन की परिभाषाएं बदली गईं.
- डिफ़ॉल्ट वैल्यू 600dp के साथ
minHeightDp
जोड़ा गया. minWidth
कोminWidthDp
में बदला गया. इसकी डिफ़ॉल्ट वैल्यू 600dp है.minSmallestWidth
कोminSmallestWidthDp
में बदला गया. इसकी डिफ़ॉल्ट वैल्यू 600dp है.maxAspectRatioInHorizontal
को डिफ़ॉल्ट वैल्यूALWAYS_ALLOW
के साथ जोड़ा गया.maxAspectRatioInPortrait
एट्रिब्यूट को डिफ़ॉल्ट वैल्यू 1.4 के साथ जोड़ा गया.- फ़िनिश व्यवहार की कॉन्स्टेंट को बदलने के लिए,
FinishBehavior
नेस्ट की गई क्लास तय की गई. SplitPairRule
औरSplitPlaceholderRule
की बिल्डर नेस्ट की गई क्लास में प्रॉपर्टी में हुए बदलाव लागू किए गए.
- स्प्लिट से जुड़ी ज़्यादा जानकारी देने के लिए,
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
अनुपात- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- मौजूदा अनुपात देखें:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
- SplitController माइग्रेशन:
SplitController.getInstance()
कोSplitController.getInstance(Context)
में बदल दिया जाता है.SplitController.initialize(Context, @ResId int)
कोRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
में बदल दिया जाता है.SplitController.getInstance().isActivityEmbedded(Activity)
कोActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
में बदल दिया जाता है.SplitController.getInstance().registerRule(rule)
कोRuleController.getInstance(Context).addRule(rule)
में बदल दिया जाता है.SplitController.getInstance().unregisterRule(rule)
कोRuleController.getInstance(Context).removeRule(rule)
में बदल दिया जाता है.SplitController.getInstance().clearRegisteredRules()
कोRuleController.getInstance(Context).clearRules()
में बदल दिया जाता है.SplitController.getInstance().getSplitRules()
कोRuleController.getInstance(Context).getRules()
में बदल दिया जाता है.
SplitRule
प्रॉपर्टी माइग्रेशन:minWidth
औरminSmallestWidth
अब पिक्सल के बजाय dp यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन, इस कॉल का इस्तेमाल कर सकते हैं:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
याminWith
को पिक्सल मेंdisplayMetrics#density
से भाग दें.
- फ़िनिश व्यवहार की कॉन्स्टेंट को
FinishBehavior
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
माइग्रेशन: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 माइग्रेशन” देखें.- पोर्ट्रेट डिवाइसों पर स्प्लिट स्क्रीन दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
का इस्तेमाल करें.
SplitPlaceholder.Builder
माइग्रेशन:- इसमें सिर्फ़
filters
औरplaceholderIntent
पैरामीटर होते हैं. अन्य प्रॉपर्टी, सेटर में चली जाती हैं. ज़्यादा जानकारी के लिए, “SplitPairRule.Builder माइग्रेशन” देखें. setFinishPrimaryWithPlaceholder
,FinishBehavior
की तरह के एनम कॉन्स्टेंट लेता है. ज़्यादा जानकारी के लिए, “SplitRule माइग्रेशन” देखें.setLayoutDirection(layoutDirection)
औरsetSplitRatio(ratio)
को बदलकर:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- पोर्ट्रेट डिवाइसों पर स्प्लिट स्क्रीन दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
का इस्तेमाल करें.
- इसमें सिर्फ़
वर्शन 1.1.0-rc01
10 मई, 2023
androidx.window:window-*:1.1.0-rc01
रिलीज़ हो गया है. 1.1.0-rc01 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
ActivityEmbedding
को स्टैबल एपीआई के तौर पर रिलीज़ करें.- कई गड़बड़ियां ठीक की गईं.
वर्शन 1.1.0-beta02
5 अप्रैल, 2023
androidx.window:window-*:1.1.0-beta02
रिलीज़ हो गया है. 1.1.0-beta02 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- इंटरनल गड़बड़ियों को ठीक करना और डेटा को साफ़ करना.
वर्शन 1.1.0-beta01
22 मार्च, 2023
androidx.window:window-*:1.1.0-beta01
रिलीज़ हो गया है. 1.1.0-beta01 वर्शन में ये बदलाव शामिल हैं.
गतिविधि एम्बेड करना
- ऐप्लिकेशन मेनिफ़ेस्ट में,
<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 API काम करते हैं या नहीं
EmbeddingRule#tag
फ़ील्ड जोड़ा गया.SplitRule
में एपीआई से जुड़े अपडेट:defaultSplitAttributes
जोड़ा गया — यह किसी स्प्लिट के डिफ़ॉल्ट स्प्लिट लेआउट को तय करता है. साथ ही,splitRatio
औरlayoutDirection
की जगह लेता है.- एक्सएमएल प्रॉपर्टी
splitRatio
औरsplitLayoutDirection
का अनुवादdefaultSplitAttributes
में जोड़ा गया. - पिक्सल के बजाय डेंसिटी-इंडिपेंडेंट पिक्सल (dp) का इस्तेमाल करने के लिए, कम से कम डाइमेंशन की परिभाषाएं बदली गईं.
- डिफ़ॉल्ट वैल्यू 600dp के साथ
minHeightDp
जोड़ा गया. minWidth
कोminWidthDp
में बदला गया. इसकी डिफ़ॉल्ट वैल्यू 600dp है.minSmallestWidth
कोminSmallestWidthDp
में बदला गया. इसकी डिफ़ॉल्ट वैल्यू 600dp है.maxAspectRatioInHorizontal
को डिफ़ॉल्ट वैल्यूALWAYS_ALLOW
के साथ जोड़ा गया.- डिफ़ॉल्ट वैल्यू
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
अनुपात- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- मौजूदा अनुपात देखें:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- देखें कि मौजूदा स्प्लिट स्टैक किया गया है या नहीं:
SplitController
माइग्रेशन:SplitController.getInstance()
कोSplitController.getInstance(Context)
में बदल दिया जाता है.SplitController.initialize(Context, @ResId int)
को बदलकरRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
किया गया.SplitController.getInstance().isActivityEmbedded(Activity)
कोActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
में बदल दिया जाता है.SplitController.getInstance().registerRule(rule)
कोRuleController.getInstance(Context).addRule(rule)
में बदल दिया जाता है.SplitController.getInstance().unregisterRule(rule)
कोRuleController.getInstance(Context).removeRule(rule)
में बदल दिया जाता है.SplitController.getInstance().clearRegisteredRules()
कोRuleController.getInstance(Context).clearRules()
में बदल दिया जाता है.SplitController.getInstance().getSplitRules()
कोRuleController.getInstance(Context).getRules()
में बदल दिया जाता है.
SplitRule
प्रॉपर्टी माइग्रेशन:minWidth
औरminSmallestWidth
अब पिक्सल के बजाय dp यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन, इस कॉल का इस्तेमाल कर सकते हैं:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
याminWith
को पिक्सल मेंdisplayMetrics#density
से भाग दें.
- फ़िनिश व्यवहार की कॉन्स्टेंट को
FinishBehavior
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
माइग्रेशन: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 माइग्रेशन” देखें.- पोर्ट्रेट डिवाइसों पर स्प्लिट स्क्रीन दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
का इस्तेमाल करें.
SplitPlaceholder.Builder
माइग्रेशन:- इसमें सिर्फ़
filters
औरplaceholderIntent
पैरामीटर होते हैं. अन्य प्रॉपर्टी, सेटर में चली जाती हैं. ज़्यादा जानकारी के लिए, “SplitPairRule.Builder माइग्रेशन” देखें. setFinishPrimaryWithPlaceholder
,FinishBehavior
की तरह के एनम कॉन्स्टेंट लेता है. ज़्यादा जानकारी के लिए, “SplitRule माइग्रेशन” देखें.setLayoutDirection(layoutDirection)
औरsetSplitRatio(ratio)
को बदलकर:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- पोर्ट्रेट डिवाइसों पर स्प्लिट स्क्रीन दिखाने के लिए,
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
का इस्तेमाल करें.
- इसमें सिर्फ़
वर्शन 1.1.0-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
constructor (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
कन्स्ट्रक्टर को छिपाएं, क्योंकिBuilder
कन्स्ट्रक्टर का इस्तेमाल करके, कन्स्ट्रक्शन करने का सुझाव दिया जाता है.WindowMetrics
परWindowInsets
पाने के लिए, एक्सपेरिमेंट वाला तरीका जोड़ें.- प्लेसहोल्डर को पूरा होने से रोकने के लिए,
SplitPlaceholderFinishBehavior
को अपडेट करें. प्लेसहोल्डर को पूरा करने से, कुछ गड़बड़ियां हुईं.
एपीआई में हुए बदलाव
- fun
isEmpty
की जगह valisEmpty
को सार्वजनिक करें. ActivityStack
पैरामीटर गतिविधियों का नाम बदलकरactivitiesInProcess
करें. (Ia5055)ActivityFilter#matchesClassName
औरActivityFilter#matchesClassNameOrWildCard
को हटाएं, क्योंकि ये भ्रम पैदा करते हैं.- कॉलर को अलग-अलग फ़िल्टर के बीच अंतर करने की अनुमति देने के लिए,
ActivityFilter#componentName
औरActivityFilter#intentAction
जोड़ें (I41f22) - एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई (I216b3) से
@Deprecated
एपीआई हटाना - गतिविधि एम्बेड करने वाले एपीआई के लिए
@ExperimentalWindowApi
हटाएं (I69ebe) ActivityRule
कन्स्ट्रक्टर को छिपाएं और इसके बजाय बिल्डर का इस्तेमाल करें. (If4eb6)- यह देखने के लिए एपीआई जोड़ें कि कोई गतिविधि
ActivityFilter
का हिस्सा है या नहीं. (Ia43cf) WindowMetrics
औरWindowMetricsCalculatorCompat
क्लास में हुए बदलावों को दिखाने के लिए, एपीआई फ़ाइलों को अपडेट करना (I667fe)ActivityEmbedding
प्रॉपर्टी का Javadoc और क्लास का नाम अपडेट करें (Ia1386)- AndroidManifest.xml (Id1ad4) में इस्तेमाल किए जाने वाले
ActivityEmbedding
प्रॉपर्टी टैग के नाम जोड़ना - नए एपीआई
SplitPlaceholderFinishBehavior
औरSplitPlaceholderRule.finishPrimaryWithPlaceholder
जोड़े गए हैं. यह मौजूदाSplitPlaceholderRule.finishPrimaryWithSecondary
की जगह लेगा. इससे यह तय होता है कि प्लेसहोल्डर गतिविधियां कब खत्म होंगी और गतिविधि एम्बेड करने की सुविधा में, उनसे जुड़ी गतिविधियां कैसे काम करेंगी. (I64647)
गड़बड़ियां ठीक की गईं
WindowAreaController
और एपीआई को पेश किया गया है, ताकिRearDisplay
मोड को चालू करके, मौजूदा विंडो को रीयर कैमरे के साथ अलाइन किए गए डिसप्ले पर ले जाया जा सके. (I388ab)
वर्शन 1.1.0-alpha03
27 जुलाई, 2022
androidx.window:window-*:1.1.0-alpha03
रिलीज़ हो गया है. 1.1.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- एम्बेड करने के नियमों के लिए डिफ़ॉल्ट वैल्यू अपडेट करें.
एपीआई में हुए बदलाव
- एम्बेड करने के नियम की प्रॉपर्टी के लिए डिफ़ॉल्ट वैल्यू अपडेट करें. (Ic4d35)
वर्शन 1.1.0-alpha02
11 मई, 2022
androidx.window:window-*:1.1.0-alpha02
रिलीज़ हो गया है. 1.1.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- Java और RxJava के साथ काम करने के लिए, अडैप्टर लाइब्रेरी रिलीज़ करें.
वर्शन 1.1.0-alpha01
11 मई, 2022
androidx.window:window-*:1.1.0-alpha01
रिलीज़ हो गया है. 1.1.0-alpha01 वर्शन में ये कमिट शामिल हैं.
नई सुविधाएं
- Java और RxJava के साथ काम करने वाले अडैप्टर रिलीज़ करना
वर्शन 1.1.0-alpha01
20 अप्रैल, 2022
androidx.window:window:1.1.0-alpha01
रिलीज़ हो गया है. 1.1.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- वह गड़बड़ी ठीक की गई है जिसकी वजह से किसी ऐप्लिकेशन को बैकग्राउंड में चलाने पर, फ़ोल्ड किए गए डिवाइस की सुविधाएं काम नहीं करती थीं.
- प्रयोग के तौर पर उपलब्ध ActivityEmbedding API को बेहतर बनाएं.
एपीआई में हुए बदलाव
- यह देखने के लिए सार्वजनिक एपीआई कि कोई गतिविधि एम्बेड की जा रही है या नहीं. (I39eb7)
गड़बड़ियां ठीक की गईं
- ऐसे एपीआई जोड़ें जो गतिविधि के बंटवारे में कंटेनर के लिए, फ़िनिश करने के व्यवहार को पसंद के मुताबिक बनाते हैं (I1a1e4)
- गतिविधि के बंटवारे के नियमों के लिए, कॉन्फ़िगरेशन का नया विकल्प जोड़ा गया. (Iec6af)
संस्करण 1.0
वर्शन 1.0.0
26 जनवरी, 2022
androidx.window:window-*:1.0.0
रिलीज़ हो गया है. 1.0.0 वर्शन में ये बदलाव शामिल हैं.
1.0.0 के मुख्य फ़ीचर
WindowInfoTracker
औरFoldingFeature
के ज़रिए, फ़ोल्डिंग फ़ोन के लिए सहायता.WindowMetricsCalculator
का इस्तेमाल करके, मौजूदा WindowMetrics का हिसाब लगाया जा सकता है.
वर्शन 1.0.0-rc01
15 दिसंबर, 2021
androidx.window:window-*:1.0.0-rc01
रिलीज़ हो गया है. 1.0.0-rc01 वर्शन में ये कमिट शामिल हैं.
नई सुविधाएं
WindowInfoTracker
की मदद से, फ़ोल्डिंग फ़ोन के लिए सहायता जोड़ें.- मौजूदा और ज़्यादा से ज़्यादा
WindowMetrics
का हिसाब लगाने के तरीके जोड़ें. - टेस्ट के लिए इस्तेमाल किए जा सकने वाले एपीआई जोड़ें.
वर्शन 1.0.0-beta04
17 नवंबर, 2021
androidx.window:window-*:1.0.0-beta04
रिलीज़ हो गया है. 1.0.0-beta04 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- WindowInfoRepository का नाम बदलकर WindowInfoTracker करें.
- 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 adapter का नाम बदलकर 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 पर माइग्रेट करना. आने वाले समय में, असाइनमेंट के पूरा होने के अलग-अलग समय के डेटा को दिखाने के लिए, कोरूटीन और सस्पेंड फ़ंक्शन का इस्तेमाल किया जाएगा.
- WindowMetrics और WindowLayoutInfo की स्ट्रीम पाने के लिए, WindowInfoRepo को मुख्य इंटरैक्शन पॉइंट के तौर पर जोड़ें.
- कॉलबैक को रजिस्टर और अनरजिस्टर करने के लिए, Java-friendly एपीआई को एक्सपोज़ करने वाला नया
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 का इस्तेमाल करें.
- हमने 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 वर्शन में ये कमिट शामिल हैं.
नई सुविधाएं
- OEM लागू न होने पर, WindowLayoutInfo को एमिट न करने वाली गड़बड़ी को ठीक किया गया है. अब हम एक खाली WIndowLayoutInfo उत्सर्जित करते हैं.
- एक गड़बड़ी को ठीक किया गया है. इसमें, ऐप्लिकेशन बैकग्राउंड में होने के दौरान, अगर हिंग की स्थिति बदलती है, तो स्टेटस सही तरीके से अपडेट नहीं होता. अब स्टेटस एक जैसा होना चाहिए.
- रनटाइम डिपेंडेंसी से मिलने वाली चेतावनियों को अनदेखा करने के लिए, हमारी ProGuard फ़ाइलों को अपडेट करें.
गड़बड़ियां ठीक की गईं
- OEM लाइब्रेरी मौजूद न होने पर, कोई वैल्यू न दें. (Ide935)
वर्शन 1.0.0-alpha03
18 फ़रवरी, 2021
androidx.window:window:1.0.0-alpha03
रिलीज़ हो गया है. 1.0.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- OEM लागू करने की प्रोसेस खाली होने पर, WindowLayoutInfo के लिए कोई वैल्यू न भेजें. इससे, लाइब्रेरी को ज़्यादा डिवाइसों पर इस्तेमाल करना आसान हो जाएगा. एपीआई असाइनोक्रोनस होते हैं. इसलिए, हमारा सुझाव है कि ऐप्लिकेशन कुछ सुरक्षा कोड लिखें और टाइम आउट के बाद डिफ़ॉल्ट वैल्यू दिखाएं. हम OEM के लागू होने की कोई गारंटी नहीं देते. साथ ही, शुरुआती वैल्यू मिलने में देरी हो सकती है.
गड़बड़ियां ठीक की गईं
- 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
वगैरह