विंडोमैनेजर

Jetpack WindowManager लाइब्रेरी की मदद से ऐप्लिकेशन डेवलपर, नए डिवाइस के नाप या आकार और मल्टी-विंडो एनवायरमेंट की सुविधा पर भी काम कर सकते हैं. यह लाइब्रेरी, एपीआई वर्शन 14 और उसके बाद के वर्शन के लिए, एक सामान्य एपीआई प्लैटफ़ॉर्म उपलब्ध कराती है. कॉन्टेंट बनाने शुरुआती रिलीज़, फ़ोल्ड किए जा सकने वाले डिवाइसों को टारगेट करती है. हालांकि, आने वाले समय में और विंडो की सुविधाओं के बारे में ज़्यादा जानकारी मिलेगी.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
4 सितंबर, 2024 1.3.0 - - 1.4.0-ऐल्फ़ा02

डिपेंडेंसी तय करना

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

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

Groovy

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-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 एपीआई को अपडेट करें, ताकि आने वाले समय में नई ब्रेकपॉइंट वैल्यू जोड़ी जा सके. पूरी सीमा के बजाय, हम निचली सीमा का इस्तेमाल करते हैं. हमारा सुझाव है कि WindowSizeClass को प्रोसेस करते समय, डेवलपर को निचली सीमा की जांच करें. मौजूदा WindowWidthSizeClass और WindowHeightSizeClass बंद कर दिए जाएंगे, क्योंकि इन्हें आगे डेवलप नहीं किया जाएगा. (I014ce)

वर्शन 1.4.0-alpha01

7 अगस्त, 2024

androidx.window:window-*:1.4.0-alpha01 रिलीज़ हो गया है. वर्शन 1.4.0-alpha01 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • ActivityStack पिनिंग की मदद से ऐप्लिकेशन, कॉन्टेंट को एक कंटेनर में पिन कर सकते हैं और इसके नेविगेशन को दूसरे कंटेनर से अलग कर सकते हैं.
  • इंटरैक्टिव डिवाइडर की मदद से ऐप्लिकेशन, स्प्लिट प्रज़ेंटेशन में, दो गतिविधियों के बीच तय किया गया या खींचने और छोड़ने लायक डिवाइडर दिखा सकते हैं.
  • फ़ुलस्क्रीन के डायलॉग बॉक्स की रोशनी कम करने की सुविधा, ऐप्लिकेशन को डायलॉग बॉक्स की रोशनी कम करने की जगह तय करने की अनुमति देती है. इससे या तो पूरी टास्क विंडो की रोशनी कम की जा सकती है या सिर्फ़ डायलॉग दिखाने वाले कंटेनर की रोशनी कम की जा सकती है.
  • एम्बेड की गई गतिविधि विंडो की जानकारी के कॉलबैक की मदद से, ऐप्लिकेशन को एम्बेड की गई गतिविधि विंडो के अपडेट लगातार मिलते रहते हैं.
  • ऐनिमेशन बैकग्राउंड को एम्बेड करना ऐप्लिकेशन को ऐनिमेशन बैकग्राउंड को तय करने की अनुमति देता है. इससे ActivityEmbedding का इस्तेमाल करने पर ट्रांज़िशन ऐनिमेशन की क्वालिटी बेहतर हो जाती है.
  • गतिविधि स्टैक मैनेजमेंट को बेहतर बनाने की मदद से, 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 (स्प्लिटकंट्रोलर#inverifyTopVisibleSplitAttributes से हटाया गया)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#updateSplitAttributes
  • 1.4 के लिए एपीआई जोड़ें. (I56774)

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

  • कुछ ऐसे डिवाइसों पर गड़बड़ी को ठीक करता है जिनमें सेशन के चालू रहने पर, चालू नहीं होने की स्थिति के बजाय 'उपलब्ध नहीं है' दिखेगा.
  • एपीआई के साथ काम नहीं करने की वजह से, दो में से vendorApiLevel वाले डिवाइसों पर transferActivityToWindowArea की सुविधा काम नहीं करती.
  • गतिविधि एम्बेड करने के लिए, खींचने और छोड़ने लायक डिवाइडर के लिए, एपीआई के बारे में बताएं. इससे फ़ुलस्क्रीन में खींचने और छोड़ने की सुविधा चालू हो जाएगी. (I645c9)
  • ऐप्लिकेशन को SplitAttributes के लिए, ऐनिमेशन पैरामीटर के ज़रिए ActivityEmbedding ऐनिमेशन बंद करने की अनुमति दें. (Idc01a)
  • नए प्लैटफ़ॉर्म एपीआई के ऐक्सेस की मैन्युअल आउटलाइन हटाई गई. ऐसा इसलिए, क्योंकि AGP 7.3 या इसके बाद के वर्शन (जैसे कि R8 वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर और एजीपी 8.1 या उसके बाद के वर्शन (जैसे कि D8 वर्शन 8.1) के साथ, R8 का इस्तेमाल करने पर ऐसा अपने-आप होता है. जो क्लाइंट एजीपी का इस्तेमाल नहीं कर रहे हैं उन्हें D8 वर्शन 8.1 या इसके बाद के वर्शन में अपडेट करने की सलाह दी जाती है. ज़्यादा जानकारी के लिए यह लेख देखें. (Ia60e0, b/345472586)
  • एक्सटेंशन को SplitAttributes के लिए ऐनिमेशन पैरामीटर लेने की अनुमति दें, ताकि डिवाइस इसका इस्तेमाल ऐनिमेशन ट्रांज़िशन के लिए कर सके. (Iede00)
  • ओवरले एपीआई छिपाएं (Ic4251)
  • स्प्लिट के लिए, तय किए गए या खींचने और छोड़ने लायक डिवाइडर को कॉन्फ़िगर करने के लिए एपीआई पेश करें (Ia7a78)
  • WindowMetrics (Id6723) में डेंसिटी जोड़ी गई
  • SupportedPostures पाने के लिए एपीआई जोड़ें. (If557a)
  • setLaunchingActivityStack को प्रयोग के तौर पर इस्तेमाल होने वाले एपीआई (I191cf) से हटाएं
  • ActivityEmbeddingController#embeddedActivityWindowInfo (I24312) के बारे में जानकारी दें
  • #getToken का इस्तेमाल बंद करें और #getActivityStackToken जोड़ें (Ie0471)
  • embeddedActivityWindowInfo फ़्लो एपीआई (Ida77f) के लिए कॉलबैक अडैप्टर दिखाएं
  • ओवरलेइन्फ़ो फ़्लो एपीआई (I7264f) के लिए कॉलबैक अडैप्टर जोड़ें
  • जांच के लिए extensionsVersion को बदलने के लिए, WindowSdkExtensionsRule के बारे में बताएं. (Ifb928)
  • - ActivityOptionsCompat के साथ काम करने के लिए, #setLaunchingActivityStack को बंडल पर माइग्रेट करें.
    • उपयोगकर्ताओं को ActvityOptions के बजाय activityOptions.toBundle को पास करना होगा.
    • #setLaunchingActivityStack(Activity) हटाएं. उपयोगकर्ताओं को ActivityEmbeddingController#getActivityStac(Activity) का इस्तेमाल करके, ActivityStack पाने और ActivityStack को #setLaunchingActivityStack को पास करने के लिए माइग्रेट करना चाहिए. (Ie0 फ़ोकस)
  • - WM Jetpack और एक्सटेंशन के बीच संपर्क करने के लिए, ActivityStack.Token और SpltInfo.Token को आइडेंटिफ़ायर के तौर पर पेश करें.
    • IBinder के बजाय, टोकन लेने/लौटाने के लिए, एपीआई को बंद करें/बदलें. (I12b24)
  • - ActivityEmbeddingController#invalidateVisibleActivityStacks के बारे में बताएं
    • SplitController#invalidateTopVisibleSplitAttributes को हटाएं, क्योंकि इस सुविधा को #invalidateVisibleActivityStacks (I02ef5) के साथ मर्ज कर दिया गया है
  • - एम्बेड करने का कॉन्फ़िगरेशन सेट करने के लिए, एपीआई जोड़ा जा रहा है. (I59a4a)
  • - टॉप ActivityStack androidx.Window एपीआई को पिन/अनपिन करें
    • टॉप ActivityStack (I24dd3) को पिन/अनपिन करने की अनुमति देने के लिए, डेमो ऐप्लिकेशन को अपडेट किया जा रहा है
  • #finishActivityStacks और ActivityEmbeddingOptions (Ic1ab3) को फिर से जोड़ें
  • अस्थिर एपीआई हटाएं. (Ibc534, b/302380585)

वर्शन 1.3

वर्शन 1.3.0

29 मई, 2024

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

01.2.0 के बाद के अहम बदलाव

  • विंडो साइज़ क्लास के लिए Kotlin मल्टीप्लैटफ़ॉर्म की सुविधा.

वर्शन 1.3.0-rc01

14 मई, 2024

WindowManager Jetpack 1.3 में WindowSizeClass की सुविधाओं के लिए, Kotlin मल्टीप्लैटफ़ॉर्म की सुविधा मिलती है. साथ ही, इसमें कई गड़बड़ियां ठीक की गई हैं.

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 बनाने और इस्तेमाल करने के लिए सहायता हटाएं. (आईडी1143)

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

  • कुछ डिवाइस पर कुछ फ़ाइलों को हटाने से, 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 में ये कमियां हैं.

नई सुविधाएं

  • विंडो साइज़ क्लास एपीआई के एपीआई सरफ़ेस में अपडेट किए गए हैं. इनसे उन डेवलपर को ज़्यादा सुविधा मिलेगी जो अपने साइज़ क्लास का इस्तेमाल करना चाहते हैं.

एपीआई में किए गए बदलाव

  • चौड़ाई चुनने वाले में ऊंचाई कंस्ट्रेंट जोड़ें. (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 की नकली वैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब और अच्छे से काम कर रहे हैं.
  • UiContext से वैल्यू पाने पर, WindowLayoutInfoPublisherRule अब बदलाव की जानकारी देता है.
  • 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 की नकली वैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब और अच्छे से काम कर रहे हैं.
  • UiContext से वैल्यू पाने पर, WindowLayoutInfoPublisherRule अब बदलाव की जानकारी देता है.
  • WindowInfoTracker, फ़ोल्ड किए जाने वाले सुविधा के डेटा को UiContext पैरामीटर में रिपोर्ट करता है.
  • डिवाइस पर एक्सटेंशन वर्शन दिखाएं.

वर्शन 1.2.0-rc01

1 नवंबर, 2023

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

नई सुविधाएं

  • पिछली स्क्रीन को ऐक्सेस करने के लिए, प्रयोग के तौर पर इस्तेमाल किए जा रहे विंडो एपीआई उपलब्ध कराएं.
  • FoldingFeature बनाने के लिए टेस्ट एपीआई अब बिना किसी रुकावट के काम कर रहा है.
  • ActivityEmbedding की नकली वैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब और अच्छे से काम कर रहे हैं.
  • UiContext से वैल्यू पाने पर, WindowLayoutInfoPublisherRule अब बदलाव की जानकारी देता है.
  • WindowInfoTracker, फ़ोल्ड किए जाने वाले सुविधा के डेटा को UiContext पैरामीटर में रिपोर्ट करता है.
  • डिवाइस पर एक्सटेंशन वर्शन दिखाएं.

वर्शन 1.2.0-beta04

18 अक्टूबर, 2023

androidx.window:window-*:1.2.0-beta04 रिलीज़ हो गया है. वर्शन 1.2.0-beta04 में ये कमिट मौजूद हैं.

एपीआई में किए गए बदलाव

वर्शन 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 की नकली वैल्यू सेट अप करने के लिए, टेस्ट एपीआई अब और अच्छे से काम कर रहे हैं.
  • UiContext से वैल्यू पाने पर, WindowLayoutInfoPublisherRule अब बदलाव की जानकारी देता है.
  • 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)
  • स्थिर के लिए बैकग्राउंड रंग API निकालें. (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 पर ले जाएं
    • SplitInfo सूची (I7f1b6) पाने के लिए, Flow की सहायता टीम जोड़ें
  • 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 स्थायी है, जो जेवीएम टेस्ट के लिए स्टब मेट्रिक को अनुमति देता है. हमारा सुझाव है कि सटीक नतीजे पाने के लिए, एम्युलेटर का इस्तेमाल करें.
  • जेवीएम टेस्टिंग के साथ काम करने के लिए, 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)
  • डिसप्ले के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) से जुड़े, ईनम जैसा व्यवहार कॉन्सटेंट तय करने के लिए, EmbeddingAspectRatio क्लास को जोड़ा गया.
  • स्प्लिट लेआउट को तय करने के लिए, SplitAttributes क्लास को जोड़ा गया.
  • स्प्लिट लेआउट को पसंद के मुताबिक बनाने के लिए, SplitController में SplitAttributes कैलकुलेटर फ़ंक्शन जोड़ा गया:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • यह देखने के लिए कि डिवाइस पर SplitAttributesCalculator एपीआई काम करते हैं या नहीं, isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag फ़ील्ड को जोड़ा गया.
  • SplitRule में API अपडेट:
    • defaultSplitAttributes को जोड़ा गया — स्प्लिट के डिफ़ॉल्ट स्प्लिट लेआउट के बारे में बताता है; यह splitRatio और layoutDirection की जगह लेगा.
    • एक्सएमएल प्रॉपर्टी splitRatio और splitLayoutDirection का अनुवाद defaultSplitAttributes में जोड़ा गया.
    • पिक्सल के बजाय, डेंसिटी-इंडिपेंडेंट पिक्सल (डीपी) का इस्तेमाल करने के लिए, कम से कम डाइमेंशन की परिभाषाएं बदली गईं.
    • डिफ़ॉल्ट वैल्यू 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 अब पिक्सल के बजाय, डीपी यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन इस कॉल का इस्तेमाल कर सकते हैं: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है या बस minWith को पिक्सल में displayMetrics#density से भाग दें.
  • फ़िनिश बिहेवियर कॉन्सटेंट, FinishBehavior ईनम जैसे क्लास कॉन्सटेंट पर माइग्रेट किया जाना चाहिए:
    • 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 ईनम जैसे कॉन्सटेंट लेते हैं. ज़्यादा जानकारी के लिए, “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)
  • डिसप्ले के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) से जुड़े, ईनम जैसा व्यवहार कॉन्सटेंट तय करने के लिए, EmbeddingAspectRatio क्लास को जोड़ा गया.
  • स्प्लिट लेआउट को तय करने के लिए, SplitAttributes क्लास को जोड़ा गया.
  • स्प्लिट लेआउट को पसंद के मुताबिक बनाने के लिए, SplitController में SplitAttributes कैलकुलेटर फ़ंक्शन जोड़ा गया:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported() यह देखने के लिए कि डिवाइस पर SplitAttributesCalculator एपीआई काम करता है या नहीं
  • EmbeddingRule#tag फ़ील्ड को जोड़ा गया.
  • SplitRule में API अपडेट:
    • defaultSplitAttributes को जोड़ा गया — स्प्लिट के डिफ़ॉल्ट स्प्लिट लेआउट के बारे में बताता है; यह splitRatio और layoutDirection की जगह लेगा.
    • एक्सएमएल प्रॉपर्टी splitRatio और splitLayoutDirection का अनुवाद defaultSplitAttributes में जोड़ा गया.
    • पिक्सल के बजाय, डेंसिटी-इंडिपेंडेंट पिक्सल (डीपी) का इस्तेमाल करने के लिए, कम से कम डाइमेंशन की परिभाषाएं बदली गईं.
    • डिफ़ॉल्ट वैल्यू 600dp के साथ minHeightDp को जोड़ा गया.
    • minWidth को बदलकर minWidthDp किया गया, जिसकी डिफ़ॉल्ट वैल्यू 600dp है.
    • minSmallestWidth को बदलकर minSmallestWidthDp किया गया, जिसकी डिफ़ॉल्ट वैल्यू 600dp है.
    • maxAspectRatioInHorizontal को डिफ़ॉल्ट मान ALWAYS_ALLOW के साथ जोड़ा गया.
    • maxAspectRatioInPortrait को डिफ़ॉल्ट मान 1.4 के साथ जोड़ा गया.
    • फ़िनिश बिहेवियर कॉन्सटेंट को बदलने के लिए, नेस्ट की गई 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 अब पिक्सल के बजाय, डीपी यूनिट का इस्तेमाल करते हैं. ऐप्लिकेशन इस कॉल का इस्तेमाल कर सकते हैं: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है या बस minWith को पिक्सल में displayMetrics#density से भाग दें.
  • फ़िनिश बिहेवियर कॉन्सटेंट, FinishBehavior ईनम जैसे क्लास कॉन्सटेंट पर माइग्रेट किया जाना चाहिए:
    • 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 ईनम जैसे कॉन्सटेंट लेते हैं. ज़्यादा जानकारी के लिए, “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 कंस्ट्रक्टर (Ide534)
  • अब SplitRule maxAspectRatioInPortrait/Landscape लगेंगे. यह सिर्फ़ तब गतिविधियों को बांटने की अनुमति देता है, जब पैरंट बाउंड का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) अनुरोध किए गए maxAspectRatio के बराबर या कम हो. (Ia5990)
  • RuleController#parseRules को स्टैटिक (I785df) में बदलें
  • ऐक्टिविटी एम्बेड करने से जुड़े एपीआई को बेहतर बनाएं
    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. #isActivityEmbedded को SplitController से सिंगलटन 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 को अपडेट करें. प्लेसहोल्डर को पूरा करने से कुछ भ्रम हो सकता है.

एपीआई में किए गए बदलाव

  • मज़ेदार isEmpty को बदलने के लिए, वैल्यू isEmpty को सार्वजनिक करें.
  • पैरामीटर की ActivityStack गतिविधियों का नाम बदलकर, activitiesInProcess करें. (Ia5055)
  • ActivityFilter#matchesClassName और ActivityFilter#matchesClassNameOrWildCard को हटाएं, क्योंकि ये भ्रम की स्थिति पैदा करते हैं.
  • ActivityFilter#componentName abd ActivityFilter#intentAction जोड़ें, ताकि कॉलर अलग-अलग फ़िल्टर (I41f22) में अंतर कर सके
  • एक्सपेरिमेंटल एपीआई (I216b3) से @Deprecated एपीआई हटाएं
  • ऐक्टिविटी एम्बेड करने वाले एपीआई (I69ebe) के लिए @ExperimentalWindowApi को हटाएं
  • ActivityRule कंस्ट्रक्टर को छिपाएं. इसके बजाय, Builder का इस्तेमाल करें. (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 में ये कमियां हैं.

नई सुविधाएं

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

एपीआई में किए गए बदलाव

  • सार्वजनिक एपीआई, जिससे पता चलता है कि किसी गतिविधि को एम्बेड किया जा रहा है या नहीं. (I39eb7)

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

  • ऐसे एपीआई जोड़ें जो गतिविधि स्प्लिट (I1a1e4) में कंटेनर के लिए, फ़िनिशिंग बिहेवियर को पसंद के मुताबिक बनाएं
  • गतिविधि के बंटवारे के नियमों के लिए, कॉन्फ़िगरेशन का नया विकल्प जोड़ा गया. (Iec6af)

संस्करण 1.0

वर्शन 1.0.0

26 जनवरी, 2022

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

1.0.0 की मुख्य सुविधाएं

  • WindowInfoTracker और FoldingFeature तक फ़ोन को फ़ोल्ड करने की सुविधा उपलब्ध है. मौजूदा WindowMetrics को कैलकुलेट करने में मदद करने के लिए, WindowMetricsCalculator.

वर्शन 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.
  • विंडोइन्फ़ोट्रैकर के लिए, गतिविधि को खास तरीके से डिपेंडेंसी बनाएं.
  • Robolectric का इस्तेमाल करने वाले डेवलपर की मदद करने के लिए, WindowMetricsCalculator के लिए एक आसान टेस्ट नियम जोड़ें.

एपीआई में किए गए बदलाव

  • एक्सटेंशन एक्सट्रैक्ट करें (I25a5f)
  • ऐक्टिविटीस्टैक (I5a4e6) में isEmpty जोड़ें
  • 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 में ये कमिट हैं.

नई सुविधाएं

  • प्रयोग के तौर पर गतिविधि एम्बेड करने वाले एपीआई जोड़ें. लेआउट के इस शुरुआती वर्शन में, दो गतिविधियों को साथ-साथ दिखाया जा सकता है.

एपीआई में किए गए बदलाव

  • मौजूदाWindowMetrics API को हटा दिया गया है, क्योंकि हम इसे सही तरीके से उपलब्ध नहीं करा सकते. कृपया इसके बजाय, WindowMetricsCalculator का इस्तेमाल करें (Icda5f)
  • एक्सटेंशन api अपडेट की गई. (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)
  • जांच करने का कोई ऐसा तरीका जोड़ें जिससे FoldingFeature की जांच की जा सके. यह सुविधा Rect के साथ काम करती है. इससे किसी असल गतिविधि के बजाय, 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 पर करें डेटा स्टोर करने की जगह को रेपो की जगह इस्तेमाल करें. (I61a16)
  • क्लास के लिए पैकेज अपडेट करें. (I23ae2)
  • WindowInfoRepo से WindowMetrics हटाएं (I24663)
  • WindowManager हटाएं और WindowInfoRepo का इस्तेमाल करें
    • WindowBackend को अंदरूनी बनाएं. (I06d9a)
  • विंडो मेट्रिक को फ़्लो में बदलें.
    • Java अडैप्टर का नाम बदलकर, WindowInfoRepoCallbackAdapter का नाम बदलें
    • कॉलबैकFlow को हटाएं, ताकि एक्सपेरिमेंट के तौर पर किसी और एपीआई का इस्तेमाल न किया जा सके. (Ia4d15)
  • टेस्ट डिसप्ले की सुविधाएं बनाने के लिए, हेल्पर तरीका जोड़ें.
    • OclusionMode से OclusionType (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 को मुख्य इंटरैक्शन पॉइंट के तौर पर जोड़ें.
  • नया window-java आर्टफ़ैक्ट, जो कॉलबैक को रजिस्टर और बिना रजिस्ट्रेशन करने के लिए, Java-फ़्रेंडली एपीआई उपलब्ध कराता है.
  • RxJava पर आधारित एपीआई दिखाने के लिए, नए window-rxjava2 और window-rxjava3 आर्टफ़ैक्ट.

एपीआई में किए गए बदलाव

  • एक जैसे डिपेंडेंसी देने के लिए WindowServices जोड़ें.
    • विंडो लेआउट की जानकारी इस्तेमाल करने के लिए, कोरूटीन पर आधारित एपीआई जोड़ें. (Iab70f)
  • कोर विंडो मैनेजर लाइब्रेरी को Kotlin में माइग्रेट करें. (Icca34)

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

  • सुविधा की सीमाएं दिखाने के लिए नई डेटा क्लास जोड़ें. (I6dcd1)

वर्शन 1.0.0-alpha06

5 मई, 2021

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

नई सुविधाएं

  • हमने Kotlin पर माइग्रेट करने की प्रोसेस शुरू कर दी है और यह अगली रिलीज़ में पूरा हो जाएगा.
  • DeviceState को सार्वजनिक एपीआई से हटा दिया गया है. इसके बजाय, कृपया FoldingFeature का इस्तेमाल करें.
  • हमने STATE_FLIPPED को FoldingFeature स्टेटस से हटा दिया है. ऐसा इसलिए किया गया है, क्योंकि फ़िलहाल यह किसी भी तरह के इस्तेमाल के उदाहरण के साथ काम नहीं करता है.
  • हमने काम न करने वाले अन्य एपीआई भी हटा दिए हैं.

एपीआई में किए गए बदलाव

  • Kotlin को डिपेंडेंसी के तौर पर जोड़ा जा रहा है.
    • मुख्य लाइब्रेरी को Kotlin में माइग्रेट करें. (आईडीडी995)
  • DisplayFeature बिल्डर हटाया गया. (I61fa4)
  • DeviceState को सार्वजनिक एपीआई से हटाया गया. इसके बजाय, FoldingFeature का इस्तेमाल करें. (आईडी6079)
  • एक्सटेंशन से, डिवाइस की स्थिति के कॉलबैक को हटाएं. (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 को बदलने वाले हिंज की स्थिति भी शामिल होती है.

  • विंडो मेट्रिक को Android 11 में पेश किया गया था, ताकि डेवलपर को किसी विंडो के बारे में मेट्रिक के लिए क्वेरी करने का आसान तरीका उपलब्ध कराया जा सके. उदाहरण के लिए, स्क्रीन पर इसकी पोज़िशन और साइज़, और किसी भी सिस्टम इनसेट के बारे में. हमने इस रिलीज़ में एपीआई का बैकपोर्ट किया है. इससे डेवलपर, WindowMetrics का इस्तेमाल कर सकते हैं. साथ ही, वे Android के पुराने वर्शन पर काम करना जारी रख सकते हैं. विंडो मेट्रिक, WindowManager#getCurrentWindowMetrics() और WindowManager#getMaxWindowMetrics() एपीआई की मदद से मिल सकते हैं.

एपीआई में किए गए बदलाव

  • अगले ऐल्फ़ा (Ib7cc4) में हटाए जाने वाले एपीआई बंद करें
  • यह विकल्प, अश्लील गतिविधि वाली गतिविधि को स्वीकार करने के लिए, ExtensionInterface को अपडेट करता है संदर्भ. (I07ded)
  • WindowMetrics एपीआई के बारे में जानकारी देता है. (I3ccee)
  • WindowManager (I69983) से सिंक्रोनस रीड मेथड हटाएं
  • extensionsWindowBackend पैकेज को सुरक्षित बनाएं. (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, वगैरह)