WindowManager

Jetpack WindowManager लाइब्रेरी की मदद से, ऐप्लिकेशन डेवलपर नए डिवाइसों के फ़ॉर्म फ़ैक्टर और मल्टी-विंडो एनवायरमेंट के लिए ऐप्लिकेशन बना सकते हैं. शुरुआत में, यह सुविधा फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए उपलब्ध होगी. हालांकि, आने वाले समय में इसे ज़्यादा डिसप्ले टाइप और विंडो की सुविधाओं के लिए उपलब्ध कराया जाएगा.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
22 अप्रैल, 2026 1.5.1 - - 1.6.0-alpha03

डिपेंडेंसी का एलान करना

WindowManager पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

dependencies {
    implementation "androidx.window:window:1.5.1"

    // For Java-friendly APIs to register and unregister callbacks
    implementation "androidx.window:window-java:1.5.1"

    // For RxJava2 integration
    implementation "androidx.window:window-rxjava2:1.5.1"

    // For RxJava3 integration
    implementation "androidx.window:window-rxjava3:1.5.1"

    // For testing
    implementation "androidx.window:window-testing:1.5.1"
}

Kotlin

dependencies {
    implementation("androidx.window:window:1.5.1")

    // For Java-friendly APIs to register and unregister callbacks
    implementation("androidx.window:window-java:1.5.1")

    // For RxJava2 integration
    implementation("androidx.window:window-rxjava2:1.5.1")

    // For RxJava3 integration
    implementation("androidx.window:window-rxjava3:1.5.1")

    // For testing
    implementation("androidx.window:window-testing:1.5.1")
}

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

वर्शन 1.6

वर्शन 1.6.0-alpha03

22 अप्रैल, 2026

androidx.window:window-*:1.6.0-alpha03 रिलीज़ हो गया है. वर्शन 1.6.0-alpha03 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • जुड़ाव की स्थिति को कंट्रोल करने के लिए एपीआई जोड़े गए. (I98a09, b/489793703)
  • सुविधा को ट्रिगर करने के तरीके के बारे में ज़्यादा जानकारी देने के लिए, transferActivityToWindowArea का नाम बदलकर transferToWindowArea कर दिया गया है. इससे इस तरीके के लिए, सेशन पर आधारित व्यवहार भी हट जाता है. ऐसा इसलिए, क्योंकि यह एक ऐसी कार्रवाई है जो अनुरोध करने वाली प्रोसेस से ज़्यादा समय तक चलती है. (Ie7d6f, b/271644150, b/273807246, b/272064992, b/473870239)
  • WindowMetrics पाने के लिए सुरक्षित तरीका जोड़ा गया (I2adf8, b/449386176)
  • WM एक्सटेंशन में, जुड़ाव मोड के लिए अपडेट के तरीके के बारे में जानकारी दी गई है, ताकि उसे बेहतर तरीके से समझा जा सके. (I219a4, b/454438323)
  • ग्रिड फ़ॉर्म में WindowSizeClassSets बनाने के लिए, हेल्पर तरीके जोड़े गए. (I4d623, b/444174274)
  • जुड़ाव मोड पाने के लिए, एपीआई जोड़ें. (I9fef2, b/423990404)
  • कॉल बैक पर आधारित लिसनर को सीधे WindowLayoutInfo में जोड़ें और WindowInfoTrackerCallbackAdapter को बंद करें. (I1ff17, b/423990404)
  • एक्सटेंशन में WindowLayoutInfo कंस्ट्रक्टर को बंद कर दिया गया है. (I6ab65, b/423990404)
  • रिपोर्टिंग के लिए, एक्सटेंशन की सुविधा जोड़ी गई. (I66211, b/423990404)

गड़बड़ियां ठीक की गईं

  • Compose compileSdk को एपीआई 37 पर अपडेट किया गया. इसका मतलब है कि Compose का इस्तेमाल करते समय, AGP का कम से कम 9.2.0 वर्शन होना ज़रूरी है. (Id45cd, b/413674743)

वर्शन 1.6.0-alpha01

19 नवंबर, 2025

androidx.window:window-*:1.6.0-alpha01 रिलीज़ हो गया है. वर्शन 1.6.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • ग्रिड फ़ॉर्म में WindowSizeClassSets बनाने के लिए, हेल्पर तरीके जोड़े गए.

एपीआई में हुए बदलाव

  • ग्रिड फ़ॉर्म में WindowSizeClassSets बनाने के लिए, हेल्पर तरीके जोड़े गए. (I4d623, b/444174274)

संस्‍करण 1.5

संस्‍करण 1.5.1

19 नवंबर, 2025

androidx.window:window-*:1.5.1 रिलीज़ हो गया है. वर्शन 1.5.1 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • कुछ डिवाइसों पर होने वाली ClassCastException समस्या को ठीक करता है (4d58979)

वर्शन 1.5.0

24 सितंबर, 2025

androidx.window:window-*:1.5.0 रिलीज़ हो गया है. वर्शन 1.5.0 में ये बदलाव शामिल हैं.

1.4.0 के बाद हुए मुख्य बदलाव:

  • बड़े और बहुत बड़े साइज़ के लिए WindowSizeClass ब्रेकपॉइंट जोड़ें. (I40d85)
  • ऐप्लिकेशन के कॉन्टेक्स्ट के हिसाब से WindowMetrics को कैलकुलेट करने की सुविधा को बड़ा करें. (I8eeeb, b/360934048)
  • WindowLayoutInfo (Ie9513) को सीधे तौर पर ऐक्सेस करने की सुविधा चालू करने के लिए, Getter उपलब्ध कराएं
  • एपीआई को इस तरह से लागू करें कि एम्बेड करने की स्थिति अपने-आप सेव हो जाए. साथ ही, जब ऐप्लिकेशन की प्रोसेस फिर से शुरू हो, तब एम्बेड करने की स्थिति अपने-आप वापस आ जाए. (Ie0295)
  • WindowInsets API के एक्सपेरिमेंटल वर्शन को हटा दिया गया है. (I68a71)

गड़बड़ियां ठीक की गईं

  • इस अपडेट में, कुछ मामलों में EmbeddingRule के अलग-अलग hashCode दिखाने की समस्या को ठीक किया गया है. (I748cc)
  • डिवाइस पर लागू करने के दौरान हुई गड़बड़ियों की वजह से, NullPointerException की समस्या को ठीक किया गया.
  • इस अपडेट में, उस समस्या को ठीक किया गया है जिसकी वजह से, ActivityEmbedding के सुरक्षा जांच वाले फ़ंक्शन काम नहीं कर रहे थे. ऐसा इसलिए हो रहा था, क्योंकि ProGuard इस्तेमाल नहीं की जा रही क्लास को हटा रहा था.

बाहरी योगदान

  • सभी केएमपी प्लैटफ़ॉर्म को window-core (If3d7c) में जोड़ा गया

वर्शन 1.5.0-rc01

27 अगस्त, 2025

androidx.window:window-*:1.5.0-rc01 रिलीज़ हो गया है. वर्शन 1.5.0-rc01 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • डिवाइस पर लागू करने के दौरान हुई गड़बड़ियों की वजह से, NullPointerException की समस्या को ठीक किया गया.
  • इस अपडेट में, उस समस्या को ठीक किया गया है जिसकी वजह से, ActivityEmbedding के सुरक्षा जांच वाले फ़ंक्शन काम नहीं कर रहे थे. ऐसा इसलिए हो रहा था, क्योंकि ProGuard इस्तेमाल नहीं की जा रही क्लास को हटा रहा था.

वर्शन 1.5.0-beta02

13 अगस्त, 2025

androidx.window:window-*:1.5.0-beta02 रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • छोटी-मोटी गड़बड़ियां ठीक की गईं.

बाहरी योगदान

  • सभी केएमपी प्लैटफ़ॉर्म को window-core (If3d7c) में जोड़ा गया

वर्शन 1.5.0-beta01

2 जुलाई, 2025

androidx.window:window-*:1.5.0-beta01 रिलीज़ हो गया है. वर्शन 1.5.0-beta01 में ये बदलाव शामिल हैं.

वर्शन 1.5.0-alpha02

7 मई, 2025

androidx.window:window-*:1.5.0-alpha02 रिलीज़ हो गया है. वर्शन 1.5.0-alpha02 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • बड़े और बहुत बड़े साइज़ के लिए WindowSizeClass ब्रेकपॉइंट जोड़ें. (I40d85)
  • ऐप्लिकेशन के कॉन्टेक्स्ट के हिसाब से WindowMetrics को कैलकुलेट करने की सुविधा को बड़ा करें. (I8eeeb, b/360934048)
  • WindowLayoutInfo (Ie9513) को सीधे तौर पर ऐक्सेस करने की सुविधा चालू करने के लिए, Getter उपलब्ध कराएं
  • एपीआई को इस तरह से लागू करें कि एम्बेड करने की स्थिति अपने-आप सेव हो जाए. साथ ही, जब ऐप्लिकेशन की प्रोसेस फिर से शुरू हो, तब एम्बेड करने की स्थिति अपने-आप वापस आ जाए. (Ie0295)
  • एक्सपेरिमेंट के तौर पर उपलब्ध WindowInsets एपीआई को हटा दिया गया है. (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 एपीआई से जुड़े अपडेट.
  • ऐक्टिविटी एम्बेड करने वाले एपीआई से जुड़े अपडेट.

वर्शन 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 केएमपी टारगेट और टारगेट Kotlin 1.9 के लिए सहायता जोड़ी गई (Icf15d, b/364652024)
  • WindowMetricsCalculator एपीआई उपलब्ध कराएं. (I1cebf)

गड़बड़ियां ठीक की गईं

  • यह लाइब्रेरी अब JSpecify के nullness एनोटेशन का इस्तेमाल करती है. ये एनोटेशन, टाइप-यूज़ होते हैं. 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 एपीआई को हटा दिया गया है. (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 (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)
  • - Introduce 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 को स्थिर किया गया.

एपीआई में हुए बदलाव

  • काम न करने वाले एपीआई हटाएं (I18d39)
  • एक साथ कई डिसप्ले दिखाने की सुविधा जोड़ी गई. (Ifcbb0)

गड़बड़ियां ठीक की गईं

  • फ़ोर्स रीसाइज़ ओवरराइड के लिए, ऑप्ट-आउट करने की सुविधा वाली प्रॉपर्टी जोड़ी जा रही है (Ie7ab1)
  • इस कुकी का इस्तेमाल, एक्सटेंशन इंटरफ़ेस से SESSION_STATE_CONTENT_INVISIBLE को हटाने के लिए किया जाता है. (I6ed19)
  • Activity embedding के लिए यूनिट टेस्टिंग की सुविधा देने के लिए, ActivityEmbeddingRule को स्थिर किया गया है. (I8d6b6)
  • कम से कम आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बदलने के लिए, ऑप्ट-आउट करने की सुविधा वाली प्रॉपर्टी जोड़ी जा रही है. (I66390)
  • यह WindowArea API (Ieb67c) को हटाता है, जो अब काम नहीं करता
  • ओरिएंटेशन के अनुरोध वाले लूप की प्रॉपर्टी का नाम बदलकर PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED करें. (Ie2fbd)
  • यह कुकी, विंडो एरिया सेशन के कॉन्स्टेंट के नाम (I83675) अपडेट करती है
  • ऑप्ट-आउट करने की सुविधा वाली ऐसी प्रॉपर्टी जोड़ी गई है जो ओरिएंटेशन के अनुरोध वाले लूप का पता चलने पर उसे अनदेखा करती है (I0a7a2)
  • WindowAreaComponent#STATUS_ACTIVE जोड़ें, ताकि यह पता चल सके कि सुविधा पहले से चालू है. (I62bc3)
  • RearDisplayPresentationMode एपीआई जोड़ें (I0401c)
  • स्थिर वर्शन के लिए, बैकग्राउंड का रंग हटाने वाला एपीआई. (I34c3e)
  • विंडो एरिया एपीआई छिपाएं. (I39de0)
  • SplitController में SplitInfo को बदलने के लिए, तरीके जोड़े गए. SplitInfo और ActivityStack के लिए डबल बनाने के लिए, टेस्ट के तरीके जोड़ें. (Icd69f)
  • ActivityRule.Builder के लिए टैग को वैकल्पिक बनाएं. (Ib0b44)
  • RatioSplitType, ExpandContainersSplit, और HingeSplitType को हटाएं. अब वे SplitType हैं.
    • #splitEqually(), #expandContainers(), और #splitByHinge को कॉन्स्टेंट SplitType SPLIT_TYPE_EQUAL, SPLIT_TYPE_EXPAND, और SPLIT_TYPE_HINGE से बदलें
    • हटाया गया: हिंज स्प्लिट टाइप के फ़ॉलबैक टाइप को सेट करने की सुविधा. अगर मौजूदा डिवाइस या विंडो की स्थिति की वजह से, हिंज स्प्लिट टाइप लागू नहीं किया जा सकता, तो यह पैरंट टास्क कंटेनर को बराबर हिस्सों में बांट देता है. फ़ॉलबैक स्प्लिट टाइप को पसंद के मुताबिक बनाने के लिए, SplitController#setSplitAttributesCalculator का इस्तेमाल करें. (Ifcc59)
  • add/removeSplitCallback को बंद करना
    • add/removeSplitCallback को SplitControllerCallbackAdapter पर ले जाएं
    • Flow सूची पाने के लिए, Flow की सुविधा जोड़ी गई (I7f1b6)SplitInfo
  • ActivityEmbeddingController (I42e9b) के लिए टेस्ट का नियम जोड़ें
  • ActivityOptionsCompat का नाम बदलकर ActivityEmbeddingOptions किया जा रहा है (I89301)
  • गतिविधि एम्बेड करने की सुविधा उपलब्ध है या नहीं, यह बताने के लिए splitSupportStatus जोड़ें. (I10024)
  • DEFAULT की वैल्यू को बेहतर तरीके से दिखाने के लिए, SplitAttributes.BackgroundColor को शामिल करें. यह साफ़ तौर पर बताया गया है कि नॉन-ओपेक ऐनिमेशन बैकग्राउंड के रंग का इस्तेमाल नहीं किया जा सकता. इसलिए, किसी भी नॉन-ओपेक रंग को डिफ़ॉल्ट रंग माना जाएगा. इसका मतलब है कि मौजूदा थीम के विंडो बैकग्राउंड के रंग का इस्तेमाल किया जाएगा. (Ic6b95)
  • alwaysAllow() और alwaysDisallow() को ALWAYS_ALLOW और ALWAYS_DISALLOW से बदलें. (I3057b)
  • SplitRule, SplitAttributes, SplitAttributesCalculator के लिए एपीआई जोड़े गए. (I92d23)
  • टेस्टिंग के लिए ActivityStack बनाने के लिए TestActivityStack जोड़ें
    • टेस्टिंग के लिए SplitInfo बनाने के लिए, TestSplitInfo जोड़ें. (I8e779)
  • फ़र्ज़ी SplitAttributesCalculatorParams बनाने का तरीका जोड़ें, ताकि डेवलपर अपने हिसाब से बनाए गए SplitAttributesCalculator (Id4a6e) की पुष्टि कर सकें
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) और WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) जोड़े गए (I66c7f)

वर्शन 1.2.0-alpha02

7 जून, 2023

androidx.window:window-*:1.2.0-alpha02 रिलीज़ हो गया है. वर्शन 1.2.0-alpha02 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • टेस्ट एपीआई को अपडेट किया गया है, ताकि फ़ोल्डिंग की उन सुविधाओं के लिए एक कॉन्स्टेंट हो जिनके बारे में जानकारी नहीं दी गई है.
  • WindowLayoutInfoPublishRule का इस्तेमाल करके वैल्यू बदलने पर, windowLayoutInfo की सभी वैल्यू बदल जाएंगी. इनमें कॉन्टेक्स्ट के हिसाब से काम करने वाला एपीआई भी शामिल है.

एपीआई में हुए बदलाव

  • सेंटर फ़ोल्डिंग की सुविधा के बारे में नहीं बताया गया है, इसलिए इसके लिए कॉन्स्टेंट जोड़ें. (I7530c)

गड़बड़ियां ठीक की गईं

  • Context पर WindowLayoutInfo के आधार पर ओवरराइड करने की सुविधा के लिए, WindowLayoutInfoPublishRule को अपडेट करें. (I2037a)

वर्शन 1.2.0-alpha01

24 मई, 2023

androidx.window:window-*:1.2.0-alpha01 रिलीज़ हो गया है. वर्शन 1.2.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

Activity Embedding और WindowLayoutInfoTracker के लिए, टेस्टिंग एपीआई को बेहतर बनाना. ActivityEmbeddingRule को स्टेबल वर्शन में अपग्रेड कर दिया गया है. WindowMetricsCalculatorRule को स्टेबल वर्शन में अपग्रेड कर दिया गया है. टेस्ट के लिए FoldingFeature बनाने वाले यूटिलिटी फ़ंक्शन को स्टेबल वर्शन में प्रमोट कर दिया गया है.

एपीआई में हुए बदलाव

  • Activity embedding के लिए यूनिट टेस्टिंग की सुविधा देने के लिए, 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 में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.
    • minSmallestWidth को minSmallestWidthDp में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.
    • डिफ़ॉल्ट वैल्यू ALWAYS_ALLOW के साथ maxAspectRatioInHorizontal जोड़ा गया.
    • डिफ़ॉल्ट वैल्यू 1.4 के साथ maxAspectRatioInPortrait जोड़ा गया.
    • फ़िनिश बिहेवियर कॉन्स्टेंट को बदलने के लिए, FinishBehavior नेस्ट की गई क्लास को तय किया गया.
    • SplitPairRule और SplitPlaceholderRule की Builder नेस्ट की गई क्लास में प्रॉपर्टी के बदलाव लागू किए गए.
  • स्प्लिट से जुड़ी ज़्यादा जानकारी देने के लिए, SplitInfo#getSplitRatio() की जगह SplitInfo#getSplitAttributes() का इस्तेमाल किया गया है.

WindowLayout

  • WindowInfoTracker में, एक्सपेरिमेंट के तौर पर उपलब्ध नॉन-ऐक्टिविटी यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट की सुविधा जोड़ी गई.
  • WindowMetricsCalculator में एक्सपेरिमेंट के तौर पर, गतिविधि से जुड़ा यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट जोड़ा गया.

माइग्रेशन के चरण

  • स्प्लिट में गतिविधियां दिखाने के लिए, ऐप्लिकेशन को मेनिफ़ेस्ट <application> टैग में PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED प्रॉपर्टी जोड़नी होगी: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> इससे सिस्टम को, ऐप्लिकेशन के लिए स्प्लिट बिहेवियर को पहले से ऑप्टिमाइज़ करने की अनुमति मिलती है.
  • 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 जैसे कॉन्स्टेंट लेता है. ज़्यादा जानकारी के लिए, “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 में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.
    • minSmallestWidth को minSmallestWidthDp में बदल दिया गया है. इसकी डिफ़ॉल्ट वैल्यू 600 डीपी है.
    • डिफ़ॉल्ट वैल्यू ALWAYS_ALLOW के साथ maxAspectRatioInHorizontal जोड़ा गया.
    • डिफ़ॉल्ट वैल्यू 1.4 के साथ maxAspectRatioInPortrait जोड़ा गया.
    • फ़िनिश बिहेवियर कॉन्स्टेंट को बदलने के लिए, FinishBehavior नेस्ट की गई क्लास को तय किया गया.
    • SplitPairRule और SplitPlaceholderRule की नेस्ट की गई क्लास Builder में प्रॉपर्टी के बदलाव लागू किए गए.
  • स्प्लिट से जुड़ी ज़्यादा जानकारी देने के लिए, SplitInfo#getSplitRatio() की जगह SplitInfo#getSplitAttributes() का इस्तेमाल किया गया है.

WindowLayout

  • WindowInfoTracker में, गतिविधि के अलावा अन्य यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट के लिए सहायता जोड़ी गई.
  • WindowMetricsCalculator में, गतिविधि से जुड़ा यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट जोड़ा गया.

माइग्रेशन के चरण

  • स्प्लिट में गतिविधियां दिखाने के लिए, ऐप्लिकेशन को मेनिफ़ेस्ट <application> टैग में PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED प्रॉपर्टी जोड़नी होगी: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> इससे सिस्टम को, ऐप्लिकेशन के लिए स्प्लिट बिहेवियर को पहले से ऑप्टिमाइज़ करने की अनुमति मिलती है.
  • 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 जैसे कॉन्स्टेंट लेता है. ज़्यादा जानकारी के लिए, “SplitRule migrations” देखें.
    • setLayoutDirection(layoutDirection) और setSplitRatio(ratio) को बदलकर यह कर दिया गया है: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • पोर्ट्रेट डिवाइसों पर स्प्लिट दिखाने के लिए, setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) का इस्तेमाल करें.

वर्शन 1.1.0-alpha06

22 फ़रवरी, 2023

androidx.window:window-*:1.1.0-alpha06 रिलीज़ हो गया है. वर्शन 1.1.0-alpha06 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • यूज़र इंटरफ़ेस (यूआई) के कॉन्टेक्स्ट से WindowLayoutInfo पाने के लिए, एक्सपेरिमेंटल वर्शन को उपलब्ध कराएं.

एपीआई में हुए बदलाव

  • गतिविधि एम्बेड करने की सुविधा उपलब्ध है या नहीं, यह बताने के लिए splitSupportStatus जोड़ें. (I10024)
  • यूज़र इंटरफ़ेस (यूआई) कॉन्टेक्स्ट WindowLayoutInfo एपीआई को एक्सपेरिमेंटल के तौर पर सेट करें. (I58ee0)
  • WindowAreaController और एपीआई की मदद से, RearDisplay मोड को चालू किया जा सकता है. इससे मौजूदा विंडो को उस डिसप्ले पर ले जाया जा सकता है जो रियर कैमरे के साथ अलाइन है. (Iffcbf)
  • डिफ़ॉल्ट बैकग्राउंड कलर अपडेट किया गया. (I1ac1b)
  • SplitAttributes पैरामीटर जोड़ें. (I18bdd)
  • SplitRule, SplitAttributes, SplitAttributesCalculator के लिए एपीआई जोड़े गए. (I92d23)
  • maxAspectRatio से जुड़े एपीआई को बेहतर बनाएं:
    1. alwaysAllow() और alwaysDisallow() को ALWAYS_ALLOW और ALWAYS_DISALLOW से बदलें.
    2. @see के एपीआई दस्तावेज़ को स्टैंडअलोन दस्तावेज़ के साथ अपडेट करें. (I3057b)
  • नीचे दिए गए कंस्ट्रक्टर को सार्वजनिक एपीआई से हटा दिया गया है, क्योंकि इन्हें ऐप्लिकेशन से कॉल नहीं किया जाना चाहिए.
    • SplitInfo कंस्ट्रक्टर
    • ActivityStack कंस्ट्रक्टर (Ide534)
  • SplitRule अब maxAspectRatioInPortrait/Landscape लेता है. यह सिर्फ़ तब गतिविधियों को बांटने की अनुमति देता है, जब पैरंट बाउंड का आसपेक्ट रेशियो, अनुरोध किए गए maxAspectRatio से कम या उसके बराबर हो. (Ia5990)
  • RuleController#parseRules को स्टैटिक (I785df) के तौर पर बदलें
  • ActivityEmbedding से जुड़े एपीआई को बेहतर बनाना
    1. एपीआई के नाम एक जैसे रखें - एक से ज़्यादा इंस्टेंस के लिए, जोड़ें/हटाएं का इस्तेमाल करें:
    2. registerRule को बदलकर addRule किया गया
    3. unregisterRule को बदलकर removeRule किया गया
    4. getSplitRules को getRules से बदलें, क्योंकि ActivityRule स्प्लिट करने का नियम नहीं है
    5. कई नियम सेट करने के लिए, RuleController#setRules जोड़ें
    6. नियम निकालने से जुड़े एपीआई को SplitController से सिंगलटन RuleController में ले जाएं. ये वजह हैं:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. SplitController से #isActivityEmbedded को सिंगलटन ActivityEmbeddingController में एक्सट्रैक्ट करें. ये वजह हैं:
    14. isActivityEmbedded
    15. 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)
    16. अब हम स्टैटिक नियमों और रनटाइम नियमों के बीच अंतर नहीं करते. हालांकि, #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 को बेहतर बनाएं:
    1. SplitRule के लिए, पिक्सल के बजाय डीपी में कम से कम डाइमेंशन लें.
    2. SplitRule Builder के लिए, कम से कम डाइमेंशन को वैकल्पिक के तौर पर लेने के लिए रिफ़ैक्टर किया गया. (I95f17)
  • SplitController को शुरू करने के लिए कॉन्टेक्स्ट पास करें (I42549)
  • SplitRule#layoutDir का नाम बदलकर #layoutDirection और SplitRule Builder#setLayoutDir का नाम बदलकर Builder#setLayoutDirection किया गया. (I3f6d1)

वर्शन 1.1.0-alpha04

9 नवंबर, 2022

androidx.window:window-*:1.1.0-alpha04 रिलीज़ हो गया है. वर्शन 1.1.0-alpha04 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • ActivityEmbedding के लिए, यह तय करने का तरीका दिखाएं कि क्या ActivityStack खाली है.
  • ActivityEmbedding एपीआई से एक्सपेरिमेंटल एपीआई टैग हटा दिए गए हैं.
  • ActivityRule कंस्ट्रक्टर को छिपाएं, क्योंकि Builder कंस्ट्रक्ट करने का पसंदीदा तरीका है.
  • WindowMetrics पर WindowInsets पाने के लिए, एक्सपेरिमेंट वाला तरीका जोड़ें.
  • प्लेसहोल्डर को पूरा होने से रोकने के लिए, SplitPlaceholderFinishBehavior को अपडेट करें. प्लेसहोल्डर को पूरा करने से, कुछ गड़बड़ियां हुईं.

एपीआई में हुए बदलाव

  • fun isEmpty को बदलने के लिए, val isEmpty को सार्वजनिक करें.
  • ActivityStack पैरामीटर गतिविधियों का नाम बदलकर activitiesInProcess करें. (Ia5055)
  • ActivityFilter#matchesClassName और ActivityFilter#matchesClassNameOrWildCard को हटाओ, क्योंकि इनसे उलझन होती है.
  • कॉल करने वाले को अलग-अलग फ़िल्टर (I41f22) के बारे में बताने के लिए, ActivityFilter#componentName और ActivityFilter#intentAction जोड़ें
  • I216b3 एक्सपेरिमेंटल एपीआई से @Deprecated एपीआई हटाएं
  • गतिविधि एम्बेड करने वाले एपीआई (I69ebe) के लिए, @ExperimentalWindowApi हटाएं
  • ActivityRule कंस्ट्रक्टर को छिपाएं. इसके बजाय, बिल्डर का इस्तेमाल करें. (If4eb6)
  • यह देखने के लिए कि कोई गतिविधि ActivityFilter का हिस्सा है या नहीं, एपीआई जोड़ें. (Ia43cf)
  • WindowMetrics और WindowMetricsCalculatorCompat क्लास में हुए बदलावों को दिखाने के लिए, एपीआई फ़ाइलों को अपडेट करें (I667fe)
  • ActivityEmbedding प्रॉपर्टी के Javadoc और क्लास के नाम (Ia1386) को अपडेट किया गया
  • AndroidManifest.xml (Id1ad4) में इस्तेमाल किए जाने वाले ActivityEmbedding प्रॉपर्टी टैग के नाम जोड़ना
  • नए एपीआई SplitPlaceholderFinishBehavior और SplitPlaceholderRule.finishPrimaryWithPlaceholder जोड़े गए हैं. ये मौजूदा SplitPlaceholderRule.finishPrimaryWithSecondary की जगह लेंगे. 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 अडैप्टर का नाम बदलकर 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 है. यह अब स्क्रीन फ़ोल्ड या हिंज को दिखाती है. इसमें डिवाइस के हिंज की स्थिति भी शामिल होती है, जो 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 वगैरह