WindowManager

Jetpack 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 को स्थिर करें.

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

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

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

  • फ़ोर्स रीसाइज़ ओवरराइड के लिए, ऑप्ट-आउट की सुविधा वाली काम करने लायक प्रॉपर्टी जोड़ना (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 से जुड़े एपीआई को बेहतर बनाएं:
    1. alwaysAllow() और alwaysDisallow() को ALWAYS_ALLOW और ALWAYS_DISALLOW से बदलें.
    2. @see के एपीआई दस्तावेज़ को स्टैंडअलोन दस्तावेज़ के साथ अपडेट करें. (I3057b)
  • यहां दिए गए कन्स्ट्रक्टर, सार्वजनिक एपीआई से हटा दिए गए हैं, क्योंकि ऐप्लिकेशन उन्हें कॉल नहीं कर सकते.
    • SplitInfo कंस्ट्रक्टर
    • ActivityStack constructor (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 बिल्डर को फिर से तैयार करें, ताकि कम से कम डाइमेंशन को वैकल्पिक के तौर पर लिया जा सके. (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 को हटाएं, क्योंकि ये भ्रम पैदा करते हैं.
  • कॉलर को अलग-अलग फ़िल्टर के बीच अंतर करने की अनुमति देने के लिए, 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 वगैरह