উইন্ডো ম্যানেজার

জেটপ্যাক উইন্ডো ম্যানেজার লাইব্রেরি অ্যাপ্লিকেশন ডেভেলপারদের নতুন ডিভাইস ফর্ম ফ্যাক্টর এবং মাল্টি-উইন্ডো পরিবেশ সমর্থন করতে সক্ষম করে। প্রাথমিক রিলিজটি ফোল্ডেবল ডিভাইসগুলিকে লক্ষ্য করে, তবে ভবিষ্যতের সংস্করণগুলিতে আরও ডিসপ্লে টাইপ এবং উইন্ডো বৈশিষ্ট্যগুলি প্রসারিত হবে।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ রিলিজ প্রার্থী বিটা রিলিজ আলফা রিলিজ
১৯ নভেম্বর, ২০২৫ ১.৫.১ - - ১.৬.০-আলফা০১

নির্ভরতা ঘোষণা করা

WindowManager-এ নির্ভরতা যোগ করতে, আপনার প্রোজেক্টে Google Maven রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য Google-এর Maven রিপোজিটরি পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টের জন্য নির্ভরতা যোগ করুন:

গ্রোভি

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

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

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

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

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

কোটলিন

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

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

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

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

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

প্রতিক্রিয়া

আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করবে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন অথবা এই লাইব্রেরি উন্নত করার জন্য কোন ধারণা থাকে তাহলে আমাদের জানান। নতুন একটি তৈরি করার আগে দয়া করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি একবার দেখে নিন। আপনি তারকা বোতামে ক্লিক করে বিদ্যমান সমস্যাটিতে আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

সংস্করণ 1.6

সংস্করণ 1.6.0-alpha01

১৯ নভেম্বর, ২০২৫

androidx.window:window-*:1.6.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • গ্রিড আকারে WindowSizeClassSets তৈরি করতে সহায়ক পদ্ধতি যোগ করুন।

API পরিবর্তনগুলি

  • গ্রিড আকারে WindowSizeClassSets তৈরি করতে সহায়ক পদ্ধতি যোগ করুন। ( I4d623 , b/444174274 )

সংস্করণ 1.5

সংস্করণ 1.5.1

১৯ নভেম্বর, ২০২৫

androidx.window:window-*:1.5.1 প্রকাশিত হয়েছে। সংস্করণ 1.5.1-এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • নির্দিষ্ট ডিভাইসে ঘটে যাওয়া ClassCastException ঠিক করে ( 4d58979 )

সংস্করণ 1.5.0

২৪ সেপ্টেম্বর, ২০২৫

androidx.window:window-*:1.5.0 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-এ এই কমিটগুলি রয়েছে।

১.৪.০ থেকে গুরুত্বপূর্ণ পরিবর্তনগুলি:

  • Large এবং XLarge এর জন্য WindowSizeClass ব্রেকপয়েন্ট যোগ করুন। ( I40d85 )
  • WindowMetrics অ্যাপ্লিকেশন প্রসঙ্গে গণনা করা প্রসারিত করুন। ( I8eeeb , b/360934048 )
  • WindowLayoutInfo ( Ie9513 ) তে সরাসরি অ্যাক্সেস সক্ষম করার জন্য একটি গেটার প্রদানকারী
  • অ্যাপ প্রক্রিয়া পুনরায় চালু হলে স্বয়ংক্রিয়ভাবে সংরক্ষণ করা এম্বেডিং অবস্থা এবং স্বয়ংক্রিয়ভাবে এম্বেডিং অবস্থা পুনরুদ্ধার করার জন্য API চালু করুন। ( Ie0295 )
  • পরীক্ষামূলক WindowInsets API সরান। ( I68a71 )

বাগ ফিক্স

  • কিছু ক্ষেত্রে বিভিন্ন hashCode ফেরত দেওয়ার জন্য EmbeddingRule ঠিক করে। ( I748cc )
  • ডিভাইস বাস্তবায়নে ত্রুটির কারণে যেখানে NullPointerException ঘটতে পারে তা ঠিক করুন।
  • প্রোগার্ড অব্যবহৃত ক্লাসগুলি সরিয়ে দেওয়ার কারণে আমাদের ActivityEmbedding নিরাপত্তা পরীক্ষাগুলি কোথায় ব্যর্থ হবে তা ঠিক করুন।

বহিরাগত অবদান

  • window-core সমস্ত KMP প্ল্যাটফর্ম যুক্ত করুন ( If3d7c )

সংস্করণ 1.5.0-rc01

২৭ আগস্ট, ২০২৫

androidx.window:window-*:1.5.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-rc01-এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • ডিভাইস বাস্তবায়নে ত্রুটির কারণে যেখানে NullPointerException ঘটতে পারে তা ঠিক করুন।
  • প্রোগার্ড অব্যবহৃত ক্লাসগুলি সরিয়ে দেওয়ার কারণে আমাদের ActivityEmbedding নিরাপত্তা পরীক্ষাগুলি কোথায় ব্যর্থ হবে তা ঠিক করুন।

সংস্করণ 1.5.0-beta02

১৩ আগস্ট, ২০২৫

androidx.window:window-*:1.5.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-beta02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • ছোটখাটো বাগ সংশোধন।

বহিরাগত অবদান

  • window-core সমস্ত KMP প্ল্যাটফর্ম যুক্ত করুন ( If3d7c )

সংস্করণ 1.5.0-beta01

২ জুলাই, ২০২৫

androidx.window:window-*:1.5.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-beta01-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.5.0-alpha02

৭ মে, ২০২৫

androidx.window:window-*:1.5.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-alpha02-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • Large এবং XLarge এর জন্য WindowSizeClass ব্রেকপয়েন্ট যোগ করুন। ( I40d85 )
  • WindowMetrics অ্যাপ্লিকেশন প্রসঙ্গে গণনা করা প্রসারিত করুন। ( I8eeeb , b/360934048 )
  • WindowLayoutInfo ( Ie9513 ) তে সরাসরি অ্যাক্সেস সক্ষম করার জন্য একটি গেটার প্রদানকারী
  • অ্যাপ প্রক্রিয়া পুনরায় চালু হলে স্বয়ংক্রিয়ভাবে সংরক্ষণ করা এম্বেডিং অবস্থা এবং স্বয়ংক্রিয়ভাবে এম্বেডিং অবস্থা পুনরুদ্ধার করার জন্য API চালু করুন। ( Ie0295 )
  • পরীক্ষামূলক WindowInsets API সরান। ( I68a71 )
  • কয়েকটি কনস্ট্রাক্টর লুকান ( I87b8d )

বাগ ফিক্স

  • কিছু ক্ষেত্রে বিভিন্ন hashCode ফেরত দেওয়ার জন্য EmbeddingRule ঠিক করে। ( I748cc )

সংস্করণ 1.5.0-alpha01

১২ মার্চ, ২০২৫

androidx.window:window-*:1.5.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • পরবর্তী ১.৫.০ এর প্রাথমিক প্রকাশ।

সংস্করণ 1.4

সংস্করণ 1.4.0

২০ মে, ২০২৫

androidx.window:window-*:1.4.0 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-এ এই কমিটগুলি রয়েছে।

১.৩.০ থেকে গুরুত্বপূর্ণ পরিবর্তনগুলি

  • অ্যাক্টিভিটি এম্বেডিং
    • লঞ্চ অ্যানিমেশন কাস্টমাইজ করার জন্য API
    • ইন্টারেক্টিভ ডিভাইডার
    • ActivityStack পিনিং
    • পূর্ণ স্ক্রিন ডায়ালগ ডিমিং
    • এমবেডেড অ্যাক্টিভিটি উইন্ডো তথ্য কলব্যাক
    • উন্নত ActivityStack ব্যবস্থাপনা
    • একটি নির্দিষ্ট ActivityStack এ Activity চালু করুন
  • WindowMetricsCalculator
    • পরীক্ষাযোগ্যতা সহায়তা উন্নত করুন
  • WindowMetrics
    • withDp এবং heightDp দিয়ে গণনা করার সুবিধাজনক পদ্ধতি
    • বাউন্ড চেক isAtLeast এ আপডেট করুন এবং নতুন মান যোগ করার জন্য নিম্ন বাউন্ড ব্যবহার করুন
  • WindowSizeClass
    • WindowMetrics থেকে গণনা করার উপায় যোগ করুন
  • WindowInfoTracker
    • ডিভাইসে সমর্থিত ভঙ্গি সনাক্ত করতে API যোগ করুন

সংস্করণ 1.4.0-rc02

২৩ এপ্রিল, ২০২৫

androidx.window:window-*:1.4.0-rc02 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-rc02-এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • ActivityEmbedding এর জন্য একটি প্রোগার্ড ক্র্যাশ ঠিক করুন।

সংস্করণ 1.4.0-rc01

১২ মার্চ, ২০২৫

androidx.window:window-*:1.4.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-rc01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • WindowSizeClass API-এর আপডেট।
  • অ্যাক্টিভিটি এম্বেডিং API-এর আপডেট।

সংস্করণ 1.4.0-beta02

১২ ফেব্রুয়ারী, ২০২৫

androidx.window:window-*:1.4.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-beta02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • এমন একটি টীকা ঠিক করুন যা শুধুমাত্র সম্পত্তিতে ছিল কিন্তু গেটারে ছিল না।

সংস্করণ 1.4.0-beta01

১৫ জানুয়ারী, ২০২৫

androidx.window:window-*:1.4.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-beta01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • ActivityEmbedding অ্যানিমেশন কাস্টমাইজ করার জন্য API যোগ করুন।
  • উইন্ডো মেট্রিক্স জাল করার জন্য WindowMetricsCalculator পরীক্ষার API গুলি প্রসারিত করুন।

API পরিবর্তনগুলি

  • কয়েকটি কনস্ট্রাক্টর লুকান ( I87b8d )
  • অ্যাপগুলিকে ActivityEmbedding অ্যানিমেশনগুলি কাস্টমাইজ করার অনুমতি দিন ( If31a8 )
  • watchosDeviceArm64 KMP টার্গেট এবং টার্গেট কোটলিন 1.9 ( Icf15d , b/364652024 ) এর জন্য সমর্থন যোগ করে।
  • WindowMetricsCalculator API গুলি প্রকাশ করুন। ( I1cebf )

বাগ ফিক্স

  • এই লাইব্রেরিটি এখন JSpecify nullness annotations ব্যবহার করে, যা টাইপ-ব্যবহারের। সঠিক ব্যবহার জোরদার করার জন্য Kotlin ডেভেলপারদের নিম্নলিখিত কম্পাইলার আর্গুমেন্ট ব্যবহার করা উচিত: -Xjspecify-annotations=strict (এটি Kotlin কম্পাইলারের 2.1.0 সংস্করণ থেকে শুরু করে ডিফল্ট)। ( Ie69ac , b/326456246 )

সংস্করণ 1.4.0-alpha05

১৬ অক্টোবর, ২০২৪

androidx.window:window-*:1.4.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha05-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • WindowMetrics থেকে widthDp এবং heightDp পেতে সুবিধাজনক ফাংশন যোগ করুন।

API পরিবর্তনগুলি

  • WindowMetricswidthDp এবং heightDp যোগ করুন। ( Ide026 )
  • পরীক্ষামূলক WindowInsets API সরান। ( I68a71 )
  • বাউন্ড চেক পদ্ধতির নামগুলি isAtLeast ( Ib0ab7 ) এ আপডেট করুন

সংস্করণ 1.4.0-alpha04

২ অক্টোবর, ২০২৪

androidx.window:window-*:1.4.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha04-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • WindowMetrics থেকে WindowSizeClass গণনা করার জন্য একটি পদ্ধতি যোগ করা হয়েছে। ( 874dba )
  • স্পষ্টতার জন্য WindowSizeClass পদ্ধতিগুলি containsWidthDp , containsHeightDp , এবং containsWindowSizeDp এ পরিবর্তন করুন। ( fa760d )
  • WindowAreaController অ্যাবস্ট্রাক্ট বেস ক্লাসে রূপান্তর করুন। ( I90893 )

বাগ ফিক্স

  • একটি পরীক্ষা তৈরি করার সময় আপেক্ষিক সীমানার জন্য সমর্থন যোগ করুন FoldingFeature । ( 2e6b3e )
  • WindowSizeClass নির্বাচন করার সময় সাধারণ বাগ সংশোধন করা হয়েছে।

সংস্করণ 1.4.0-alpha03

১৮ সেপ্টেম্বর, ২০২৪

androidx.window:window-*:1.4.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha03-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • WindowMetrics থেকে WindowSizeClass পেতে একটি ইউটিলিটি পদ্ধতি যোগ করুন। ( I83f1f )
  • isAtLeast পরিবর্তন করে containsBreakpoint । ( I85b47 )
  • floats ব্যবহার করে computeWindowSizeClass এ ওভারলোড যোগ করুন। ( I3dcb2 , b/364677934 , b/364677802 , b/364680886 )

বাগ ফিক্স

  • ডিফল্ট WindowSizeClass ব্রেকপয়েন্ট সেটে অনুপস্থিত ব্রেকপয়েন্ট যোগ করুন।
  • কিছু ক্ষেত্রে যেখানে কম্প্যাক্ট মাত্রা সঠিকভাবে নির্বাচন করা হচ্ছিল না, সেখানে একটি বাগ সংশোধন করা হয়েছে।

সংস্করণ 1.4.0-alpha02

৪ সেপ্টেম্বর, ২০২৪

androidx.window:window-*:1.4.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

কাস্টম WindowSizeClass এর জন্য সমর্থন যোগ করুন।

  • WindowSizeClass এর জন্য কনস্ট্রাক্টরটি খুলুন যাতে ডেভেলপাররা তাদের নিজস্ব ব্যবহার করতে পারেন।
  • isAtLeast ইউটিলিটি পদ্ধতি যোগ করুন যাতে ডেভেলপাররা WindowSizeClass এর বিভিন্ন মান প্রক্রিয়া করতে পারে।
  • Set থেকে সেরা মিল গণনা করতে Set<WindowSizeClass> এ একটি এক্সটেনশন ফাংশন যোগ করুন।
  • অ্যান্ড্রয়েডের প্রস্তাবিত ব্রেকপয়েন্টের জন্য ধ্রুবক যোগ করুন।
  • অ্যান্ড্রয়েডের প্রস্তাবিত ব্রেকপয়েন্টের সাথে সম্পর্কিত ব্রেকপয়েন্ট সেট যোগ করুন।

API পরিবর্তনগুলি

  • WindowSizeClass এর জন্য বাউন্ড পদ্ধতির নাম আপডেট করুন। ( If89a6 )
  • ভবিষ্যতে নতুন ব্রেকপয়েন্ট মান যোগ করার জন্য WindowSizeClass API আপডেট করুন। পরম সীমানার পরিবর্তে আমরা নিম্ন সীমা ব্যবহার করি এবং WindowSizeClass প্রক্রিয়াকরণের সময় devs-দের নিম্ন সীমার চেক ব্যবহার করার পরামর্শ দিই। বিদ্যমান WindowWidthSizeClass এবং WindowHeightSizeClass অবচিত হবে কারণ এগুলি আরও উন্নত করা হবে না। ( I014ce )

সংস্করণ 1.4.0-alpha01

৭ আগস্ট, ২০২৪

androidx.window:window-*:1.4.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • অ্যাক্টিভিটিস্ট্যাক পিনিং অ্যাপগুলিকে একটি কন্টেইনারে কন্টেন্ট পিন করতে এবং এর নেভিগেশন অন্য কন্টেইনার থেকে আলাদা করতে দেয়।
  • ইন্টারেক্টিভ ডিভাইডার অ্যাপগুলিকে একটি বিভক্ত উপস্থাপনায় দুটি কার্যকলাপের মধ্যে একটি স্থির বা টেনে আনা যায় এমন ডিভাইডার প্রদর্শন করতে দেয়।
  • ফুলস্ক্রিন ডায়ালগ ডিমিং অ্যাপগুলিকে ডায়ালগের আবছা অংশ নির্দিষ্ট করতে, পুরো টাস্ক উইন্ডোটি আবছা করতে অথবা শুধুমাত্র ডায়ালগটি দেখানো কন্টেইনারটি আবছা করতে দেয়।
  • এমবেডেড অ্যাক্টিভিটি উইন্ডো তথ্য কলব্যাক অ্যাপগুলিকে এমবেডেড অ্যাক্টিভিটি উইন্ডোর আপডেটগুলি ক্রমাগত গ্রহণ করতে দেয়।
  • অ্যানিমেশন ব্যাকগ্রাউন্ড এম্বেড করার মাধ্যমে অ্যাপগুলি অ্যানিমেশন ব্যাকগ্রাউন্ড নির্দিষ্ট করতে পারে, যা ActivityEmbedding ব্যবহার করার সময় ট্রানজিশন অ্যানিমেশনের মান উন্নত করে।
  • উন্নত অ্যাক্টিভিটিস্ট্যাক ম্যানেজমেন্ট ActivityEmbedding ব্যবহার করার সময় অ্যাপগুলিকে ActivityStacks উপর আরও নিয়ন্ত্রণ রাখতে দেয়, যার মধ্যে রয়েছে:
  • একটি নির্দিষ্ট ActivityStack এ একটি কার্যকলাপ চালু করা
  • একটি ActivityStack শেষ করা

API পরিবর্তনগুলি

  • একটি নতুন API WindowInfoTracker#supportedPostures :

    • ফোল্ডেবলের জন্য ডিভাইসটি টেবিলটপ মোড সমর্থন করে কিনা তা নির্ধারণ করার জন্য একটি API। WindowAreaSessionPresenter#getWindow যোগ করে।
  • ActivityStack পিনিং সমর্থন করার জন্য API যোগ করুন:

    • SplitPinRule ক্লাস
    • SplitController#pinTopActivityStack
    • SplitController#unpinTopActivityStack
  • ইন্টারেক্টিভ ডিভাইডার সক্ষম এবং কনফিগার করতে API যোগ করুন

    • DividerAttributes ক্লাস
    • SplitAttributes.Builder#setDividerAttributes
  • ডায়ালগের জন্য EmbeddingConfiguration এবং DimAreaBehavior সেট করতে API যোগ করুন

    • EmbeddingConfiguration ক্লাস
    • DimAreaBehavior ক্লাস
    • ActivityEmbeddingController#setEmbeddingConfiguration
  • এমবেডেড অ্যাক্টিভিটি উইন্ডো তথ্য আপডেট পেতে API যোগ করুন

    • EmbeddedActivityWindowInfo ক্লাস
    • ActivityEmbeddingController#embeddedActivityWindowInfo
  • এম্বেডিং অ্যানিমেশন ব্যাকগ্রাউন্ড সেট করতে API যোগ করুন

    • EmbeddingAnimationBackground
    • SplitAttributes.Builder#setAnimationBackground
  • ActivityStacks শেষ করতে API যোগ করুন

    • ActivityEmbeddingController#finishActivityStacks
  • ActivityStack লঞ্চ সেট করতে API যোগ করুন

    • ActivityEmbeddingOptions#setLaunchingActivityStack
  • নিম্নলিখিত API গুলি স্থিতিশীল এবং আর পরীক্ষামূলক নয়:

    • ActivityEmbeddingController#invalidateVisibleActivityStacks (SplitController#invalidateTopVisibleSplitAttributes থেকে সরানো হয়েছে)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#updateSplitAttributes
  • ১.৪ এর জন্য API যোগ করুন। ( I56774 )

বাগ ফিক্স

  • কিছু ডিভাইসের বাগ ঠিক করে যেখানে সেশন সক্রিয় থাকাকালীন ACTIVE এর পরিবর্তে UNAVAILABLE ফেরত পাঠানো হবে।
  • অস্থির API সাপোর্টের কারণে vendorApiLevel 2 সহ ডিভাইসগুলিতে transferActivityToWindowArea এর সাপোর্ট সরিয়ে ফেলা হয়েছে।
  • অ্যাক্টিভিটি এম্বেডিং ড্র্যাগেবল ডিভাইডারের জন্য ড্র্যাগ-টু-ফুলস্ক্রিন সক্ষম করার জন্য API চালু করুন। ( I645c9 )
  • SplitAttributes এর জন্য অ্যানিমেশন প্যারামিটারের মাধ্যমে ActivityEmbedding অ্যানিমেশনগুলি অক্ষম করার জন্য অ্যাপগুলিকে অনুমতি দিন। ( Idc01a )
  • নতুন প্ল্যাটফর্ম API-তে অ্যাক্সেসের ম্যানুয়াল রূপরেখা সরানো হয়েছে কারণ এটি AGP 7.3 বা তার পরবর্তী সংস্করণ (যেমন R8 সংস্করণ 3.3) ব্যবহার করার সময় এবং AGP 8.1 বা তার পরবর্তী সংস্করণ (যেমন D8 সংস্করণ 8.1) ব্যবহার করার সময় সমস্ত বিল্ডের জন্য API মডেলিংয়ের মাধ্যমে স্বয়ংক্রিয়ভাবে ঘটে। যে ক্লায়েন্টরা AGP ব্যবহার করছেন না তাদের D8 সংস্করণ 8.1 বা তার পরবর্তী সংস্করণে আপডেট করার পরামর্শ দেওয়া হচ্ছে। আরও বিস্তারিত জানার জন্য এই নিবন্ধটি দেখুন। ( Ia60e0 , b/345472586 )
  • এক্সটেনশনগুলিকে SplitAttributes জন্য অ্যানিমেশন প্যারামিটার নেওয়ার অনুমতি দিন যাতে ডিভাইসটি অ্যানিমেশন ট্রানজিশনের জন্য এটি ব্যবহার করতে পারে। ( Iede00 )
  • ওভারলে API লুকান ( Ic4251 )
  • স্প্লিটের জন্য স্থির বা টেনে আনা যায় এমন ডিভাইডার কনফিগার করার জন্য API গুলি প্রবর্তন করুন ( Ia7a78 )
  • WindowMetrics ( Id6723 ) এ ঘনত্ব যোগ করা হয়েছে
  • SupportedPostures পেতে API যোগ করুন। ( If557a )
  • পরীক্ষামূলক API ( I191cf ) থেকে setLaunchingActivityStack সরান
  • ActivityEmbeddingController#embeddedActivityWindowInfo ( I24312 ) প্রবর্তন করুন
  • #getToken বন্ধ করে #getActivityStackToken ( Ie0471 ) যোগ করুন।
  • embeddedActivityWindowInfo ফ্লো API ( Ida77f ) এর জন্য কলব্যাক অ্যাডাপ্টার প্রবর্তন করুন
  • overlayInfo flow API ( I7264f ) এর জন্য কলব্যাক অ্যাডাপ্টার যোগ করুন
  • পরীক্ষার জন্য extensionsVersion ওভাররাইড করার জন্য WindowSdkExtensionsRule চালু করুন। ( Ifb928 )
  • - ActivityOptionsCompat ব্যবহারের সাথে তুলনা করতে #setLaunchingActivityStack কে Bundle এ স্থানান্তর করুন।
    • ব্যবহারকারীদের ActvityOptions এর পরিবর্তে activityOptions.toBundle পাস করা উচিত।
    • #setLaunchingActivityStack(Activity) অপসারণ করুন। ব্যবহারকারীদের ActivityStack পেতে ActivityEmbeddingController#getActivityStac(Activity) ব্যবহারে মাইগ্রেট করতে হবে এবং ActivityStack কে #setLaunchingActivityStack এ পাস করতে হবে। ( Ie0ccc )
  • - WM Jetpack এবং এক্সটেনশনের মধ্যে যোগাযোগের জন্য একটি শনাক্তকারী হিসেবে ActivityStack.Token এবং SpltInfo.Token ব্যবহার করুন।
    • IBinder এর পরিবর্তে টোকেন নিতে/ফেরত দিতে API গুলিকে অবচয়/প্রতিস্থাপন করুন। ( I12b24 )
  • - ActivityEmbeddingController#invalidateVisibleActivityStacks চালু করুন
    • SplitController#invalidateTopVisibleSplitAttributes সরান কারণ বৈশিষ্ট্যটি #invalidateVisibleActivityStacks ( I02ef5 ) এ একত্রিত করা হয়েছে।
  • - এম্বেডিং কনফিগারেশন সেট করতে API যোগ করা হচ্ছে। ( I59a4a )
  • - শীর্ষ ActivityStack androidx.Window API গুলি পিন/আনপিন করা হচ্ছে
    • শীর্ষ ActivityStack ( I24dd3 ) পিন/আনপিন করার জন্য ডেমো অ্যাপ আপডেট করা হচ্ছে
  • #finishActivityStacks এবং ActivityEmbeddingOptions ( Ic1ab3 ) পুনরায় যোগ করুন
  • অস্থির API গুলি সরান। ( Ibc534 , b/302380585 )

সংস্করণ 1.3

সংস্করণ 1.3.0

২৯ মে, ২০২৪

androidx.window:window-*:1.3.0 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-এ এই কমিটগুলি রয়েছে।

১.২.০ থেকে গুরুত্বপূর্ণ পরিবর্তনগুলি

  • উইন্ডো সাইজ ক্লাসের জন্য কোটলিন মাল্টিপ্ল্যাটফর্ম সাপোর্ট।

সংস্করণ 1.3.0-rc01

১৪ মে, ২০২৪

WindowManager Jetpack 1.3 WindowSizeClass বৈশিষ্ট্যগুলির জন্য Kotlin মাল্টিপ্ল্যাটফর্ম সমর্থনের পাশাপাশি একাধিক বাগ সংশোধন করে।

androidx.window:window-*:1.3.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-rc01-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.3.0-beta02

১ মে, ২০২৪

androidx.window:window-*:1.3.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-beta02-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • কাস্টম WindowSizeClass তৈরি এবং ব্যবহারের জন্য সমর্থন সরান। ( Id1143 )

বাগ ফিক্স

  • নির্দিষ্ট ডিভাইস বাস্তবায়নে প্রোগার্ড কিছু ফাইল বাদ দেওয়ার কারণে সৃষ্ট KotlinReflectionInternalError ঠিক করে। ( I01b02 )

সংস্করণ 1.3.0-beta01

৩ এপ্রিল, ২০২৪

androidx.window:window-*:1.3.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-beta01-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.3.0-alpha03

৬ মার্চ, ২০২৪

androidx.window:window-*:1.3.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha03-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • WindowSizeClassUtil আরও ফোকাসড পদ্ধতিতে বিভক্ত করুন। ( Ie9292 )
  • WindowSizeClass#compute পুনরুদ্ধার করুন ( I21355 , b/324293374 )

বাগ ফিক্স

  • যেখানে প্রদত্ত প্রসঙ্গ সঠিকভাবে খোলা যাচ্ছিল না, সেখানে ক্র্যাশ ঠিক করে। ( 94d10ce , b/318787482 )

সংস্করণ 1.3.0-alpha02

৭ ফেব্রুয়ারী, ২০২৪

androidx.window:window-*:1.3.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • নিজস্ব আকারের ক্লাস ব্যবহার করতে ইচ্ছুক ডেভেলপারদের নমনীয়তা উন্নত করার জন্য উইন্ডো সাইজ ক্লাস API-এর API পৃষ্ঠে আপডেট করা হয়েছে।

API পরিবর্তনগুলি

  • প্রস্থ নির্বাচকের উচ্চতা সীমাবদ্ধতা যোগ করুন। ( I23393 )
  • একটি সেট থেকে একটি WindowSizeClass বাছাই করার জন্য ইউটিলিটি ফাংশন যোগ করুন। পরীক্ষামূলক স্কোরিং ফাংশন যোগ করুন যাতে ডেভেলপাররা তাদের নিজস্ব নির্বাচক লিখতে পারে। একটি নির্দিষ্ট সীমার মধ্যে সবচেয়ে প্রশস্ত WindowSizeClass বাছাই করার জন্য একটি নির্বাচক এক্সটেনশন ফাংশন যোগ করুন। ( I0c944 )
  • কাস্টম ব্রেকপয়েন্ট যোগ করার জন্য WindowSizeClass কনস্ট্রাক্টরটি খুলুন। ( Ic1ff3 )
  • প্রস্থ, উচ্চতা এবং ঘনত্ব থেকে আকার শ্রেণী তৈরি করতে সুবিধা ফাংশন যোগ করুন। ( If67f4 )

বাগ ফিক্স

  • ফ্লোট মান 0 এ ছোট করা হলে ব্যতিক্রম ঠিক করুন। ( 272ffac )

সংস্করণ 1.3.0-alpha01

১৫ নভেম্বর, ২০২৩

androidx.window:window-*:1.3.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • পিছনের স্ক্রিন অ্যাক্সেস করার জন্য পরীক্ষামূলক উইন্ডো API গুলি প্রকাশ করুন।
  • FoldingFeature তৈরির জন্য টেস্ট API গুলি এখন স্থিতিশীল।
  • জাল 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

১৫ নভেম্বর, ২০২৩

androidx.window:window-*:1.2.0 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-এ এই কমিটগুলি রয়েছে।

১.১.০ থেকে গুরুত্বপূর্ণ পরিবর্তনগুলি

  • পিছনের স্ক্রিন অ্যাক্সেস করার জন্য পরীক্ষামূলক উইন্ডো API গুলি প্রকাশ করুন।
  • FoldingFeature তৈরির জন্য টেস্ট API গুলি এখন স্থিতিশীল।
  • জাল ActivityEmbedding মান সেট আপ করার জন্য টেস্ট এপিআইগুলি এখন স্থিতিশীল।
  • WindowLayoutInfoPublisherRule এখন UiContext থেকে মান পাওয়ার সময় ওভাররাইডের রিপোর্ট করে।
  • WindowInfoTracker UiContext প্যারামিটারে বৈশিষ্ট্য ডেটা ভাঁজ করার রিপোর্ট করে।
  • ডিভাইসে এক্সটেনশন সংস্করণটি প্রকাশ করুন।

সংস্করণ 1.2.0-rc01

১ নভেম্বর, ২০২৩

androidx.window:window-*:1.2.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • পিছনের স্ক্রিন অ্যাক্সেস করার জন্য পরীক্ষামূলক উইন্ডো API গুলি প্রকাশ করুন।
  • FoldingFeature তৈরির জন্য টেস্ট API গুলি এখন স্থিতিশীল।
  • জাল ActivityEmbedding মান সেট আপ করার জন্য টেস্ট এপিআইগুলি এখন স্থিতিশীল।
  • WindowLayoutInfoPublisherRule এখন UiContext থেকে মান পাওয়ার সময় ওভাররাইডের রিপোর্ট করে।
  • WindowInfoTracker UiContext প্যারামিটারে বৈশিষ্ট্য ডেটা ভাঁজ করার রিপোর্ট করে।
  • ডিভাইসে এক্সটেনশন সংস্করণটি প্রকাশ করুন।

সংস্করণ 1.2.0-beta04

১৮ অক্টোবর, ২০২৩

androidx.window:window-*:1.2.0-beta04 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta04-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

সংস্করণ 1.2.0-beta03

২০ সেপ্টেম্বর, ২০২৩

androidx.window:window-*:1.2.0-beta03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta03-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • যেসব API সঠিকভাবে কাজ করার জন্য এক্সটেনশনের একটি নির্দিষ্ট সংস্করণের প্রয়োজন হয়, তাদের জন্য RequiresApi চেক যোগ করুন।
  • ডিভাইসে এক্সটেনশন সংস্করণটি প্রকাশ করতে একটি API যোগ করুন।

API পরিবর্তনগুলি

  • পাবলিক API গুলিতে প্রয়োজনীয় উইন্ডো SDK এক্সটেনশন সংস্করণটি টীকা করুন।
    • অ্যাক্টিভিটি এম্বেডিং কম্পোনেন্ট থেকে isXXXSupported সরান। ( Ie3dae )
  • ডিভাইসে এক্সটেনশন সংস্করণ রিপোর্ট করার জন্য WindowSdkExtensions চালু করুন।
    • ন্যূনতম প্রয়োজনীয় এক্সটেনশন সংস্করণটি টীকাবদ্ধ করতে RequiresWindowSdkExtension প্রবর্তন করুন। ( I05fd4 )
  • WindowAreaInfo#getCapability অ-নলযোগ্য করে তোলে। ( I17048 )

সংস্করণ 1.2.0-beta01

২৬ জুলাই, ২০২৩

androidx.window:window-*:1.2.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • পিছনের স্ক্রিন অ্যাক্সেস করার জন্য পরীক্ষামূলক উইন্ডো API গুলি প্রকাশ করুন।
  • FoldingFeature তৈরির জন্য টেস্ট API গুলি এখন স্থিতিশীল।
  • জাল ActivityEmbedding মান সেট আপ করার জন্য টেস্ট এপিআইগুলি এখন স্থিতিশীল।
  • WindowLayoutInfoPublisherRule এখন UiContext থেকে মান পাওয়ার সময় ওভাররাইডের রিপোর্ট করে।
  • WindowInfoTracker UiContext প্যারামিটারে বৈশিষ্ট্য ডেটা ভাঁজ করার রিপোর্ট করে।

API পরিবর্তনগুলি

  • 1.3 ( I857f5 ) এ স্থিতিশীল রিলিজের জন্য API পরিবর্তনগুলি চালিয়ে যাওয়ার অনুমতি দেওয়ার জন্য WindowArea API গুলিকে পরীক্ষামূলক হিসাবে চিহ্নিত করে।
  • সামঞ্জস্যতা দমনের জন্য আপডেট করা API ফাইলগুলি ( I8e87a , b/287516207 )

সংস্করণ 1.2.0-alpha03

২১ জুন, ২০২৩

androidx.window:window-*:1.2.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha03-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • API পৃষ্ঠ থেকে অবচিত API গুলি সরানো হচ্ছে।
  • সমসাময়িক প্রদর্শন সমর্থন করার জন্য API যোগ করুন।
  • জোরপূর্বক আকার পরিবর্তন ওভাররাইড বন্ধ করার জন্য একটি প্রপার্টি যোগ করুন।
  • ন্যূনতম আকৃতির অনুপাত ওভাররাইড থেকে বেরিয়ে আসতে সম্পত্তি যোগ করুন।
  • অ্যাক্টিভিটি এম্বেডিং-এর ইউনিট টেস্টিং সমর্থন করার জন্য ActivityEmbeddingRule স্থিতিশীল করুন।

API পরিবর্তনগুলি

  • অবচিত API গুলি সরান ( 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 API গুলি যোগ করুন ( I0401c )
  • স্থিতিশীলের জন্য ব্যাকগ্রাউন্ড কালার API সরান। ( I34c3e )
  • উইন্ডো এরিয়া API লুকান। ( I39de0 )
  • SplitControllerSplitInfo ওভাররাইড করার জন্য পদ্ধতি যোগ করুন। 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 এর জন্য API যোগ করুন। ( I92d23 )
  • পরীক্ষার জন্য ActivityStack তৈরি করতে TestActivityStack যোগ করুন।
    • পরীক্ষার জন্য SplitInfo তৈরি করতে TestSplitInfo যোগ করুন। ( I8e779 )
  • জাল SplitAttributesCalculatorParams তৈরি করার একটি উপায় যোগ করুন যাতে ডেভেলপাররা তাদের কাস্টমাইজড SplitAttributesCalculator ( Id4a6e ) যাচাই করতে পারে।
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) এবং WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) ( I66c7f ) যোগ করুন।

সংস্করণ 1.2.0-alpha02

৭ জুন, ২০২৩

androidx.window:window-*:1.2.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • অনির্দিষ্ট ভাঁজ বৈশিষ্ট্যগুলির জন্য একটি ধ্রুবক পেতে পরীক্ষা API আপডেট করুন।
  • WindowLayoutInfoPublishRule দিয়ে ওভাররাইড করলে windowLayoutInfo এর সকল মান ওভাররাইড হবে, যার মধ্যে Context ভিত্তিক APIও অন্তর্ভুক্ত।

API পরিবর্তনগুলি

  • অনির্দিষ্ট কেন্দ্র ভাঁজ বৈশিষ্ট্যের জন্য ধ্রুবক যোগ করুন। ( I7530c )

বাগ ফিক্স

  • Context ভিত্তিক WindowLayoutInfo তে ওভাররাইড সমর্থন করার জন্য WindowLayoutInfoPublishRule আপডেট করুন। ( I2037a )

সংস্করণ 1.2.0-alpha01

২৪ মে, ২০২৩

androidx.window:window-*:1.2.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

Activity Embedding এবং WindowLayoutInfoTracker আশেপাশে টেস্টিং API গুলিকে স্থিতিশীল করুন। ActivityEmbeddingRule স্থিতিশীলে উন্নীত করা হয়েছে। WindowMetricsCalculatorRule স্থিতিশীলে উন্নীত করা হয়েছে। পরীক্ষার জন্য একটি FoldingFeature তৈরি করার জন্য ইউটিলিটি ফাংশনগুলিকে স্থিতিশীলে উন্নীত করা হয়েছে।

API পরিবর্তনগুলি

  • অ্যাক্টিভিটি এম্বেডিং-এর আশেপাশে ইউনিট টেস্টিং সমর্থন করার জন্য ActivityEmbeddingRule স্থিতিশীল করুন। ( I8d6b6 )
  • WindowMetrisCalculatorTestRule স্থিতিশীল এবং JVM পরীক্ষার জন্য স্টাব মেট্রিক্স অনুমোদন করে। সঠিক ফলাফলের জন্য আমরা একটি এমুলেটর ব্যবহার করার পরামর্শ দিই।
  • JVM পরীক্ষা সমর্থন করার জন্য WindowLayoutInfo জন্য পরীক্ষা API গুলি স্থিতিশীল করুন। ( Ie036e )
  • টেস্ট ফোল্ডিং ফিচার ভ্যালুর জন্য IntRange যোগ করুন। ( I69f7d )

সংস্করণ 1.1

সংস্করণ 1.1.0

৭ জুন, ২০২৩

androidx.window:window-*:1.1.0 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-এ এই কমিটগুলি রয়েছে।

১.০.০ থেকে গুরুত্বপূর্ণ পরিবর্তনগুলি

অ্যাক্টিভিটি এম্বেডিং

  • অ্যাপ ম্যানিফেস্টে <application> ট্যাগের বুলিয়ান বৈশিষ্ট্য হিসেবে PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED যোগ করা হয়েছে।
  • স্প্লিট বৈশিষ্ট্যটি কেন উপলব্ধ নয় সে সম্পর্কে আরও বিস্তারিত তথ্য প্রদানের জন্য isSplitSupported বন্ধ করে splitSupportStatus দিয়ে প্রতিস্থাপিত করা হয়েছে।
  • splitSupportStatus প্রপার্টির জন্য স্টেট ধ্রুবক প্রদানের জন্য SplitController.SplitSupportStatus নেস্টেড ক্লাস যোগ করা হয়েছে।
  • SplitController বেশ কয়েকটি মডিউলে রিফ্যাক্টর করা হয়েছে:
    • Activity বা ActivityStack সম্পর্কিত API-এর জন্য ActivityEmbeddingController মডিউল।
    • SplitController থেকে isActivityEmbedded এ সরানো হয়েছে ActivityEmbeddingController
    • EmbeddingRule সম্পর্কিত ক্রিয়াকলাপের জন্য RuleController মডিউল:
    • সরানো হয়েছে SplitController API গুলি:
    • clearRegisteredRules()
    • getSplitRules()
    • initialize()
    • registerRule()
    • unregisterRule()
    • RuleController API যোগ করা হয়েছে:
    • addRule() — একই ট্যাগযুক্ত একটি নিয়ম যোগ করে অথবা নিয়ম আপডেট করে।
    • removeRule() — নিবন্ধিত নিয়মের সংগ্রহ থেকে একটি নিয়ম সরিয়ে দেয়।
    • setRules() — নিয়মের একটি সংগ্রহ স্থাপন করে।
    • clearRules() — সমস্ত নিবন্ধিত নিয়ম সরিয়ে দেয়।
    • parseRules() — XML নিয়ম সংজ্ঞা থেকে নিয়ম পার্স করে।
  • সকল মডিউলের জন্য #getInstance() পদ্ধতি দ্বারা একটি প্রসঙ্গ শুরু করা প্রয়োজন, যার মধ্যে রয়েছে:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • ডিসপ্লে অ্যাসপেক্ট রেশিও সম্পর্কিত এনাম-সদৃশ আচরণের ধ্রুবক নির্ধারণ করতে EmbeddingAspectRatio ক্লাস যোগ করা হয়েছে।
  • স্প্লিট লেআউট সংজ্ঞায়িত করতে SplitAttributes ক্লাস যোগ করা হয়েছে।
  • স্প্লিট লেআউট কাস্টমাইজ করার জন্য SplitControllerSplitAttributes ক্যালকুলেটর ফাংশন যোগ করা হয়েছে:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported() করে ডিভাইসে SplitAttributesCalculator API গুলি সমর্থিত কিনা তা পরীক্ষা করা যায়।
  • EmbeddingRule#tag ক্ষেত্র যোগ করা হয়েছে।
  • SplitRule এ API আপডেট:
    • যোগ করা defaultSplitAttributes — একটি split এর ডিফল্ট split লেআউট নির্ধারণ করে; splitRatio এবং layoutDirection প্রতিস্থাপন করে।
    • XML বৈশিষ্ট্য splitRatio এবং splitLayoutDirection এর অনুবাদ defaultSplitAttributes এ যোগ করা হয়েছে।
    • পিক্সেলের পরিবর্তে ঘনত্ব-স্বাধীন পিক্সেল (dp) ব্যবহার করার জন্য ন্যূনতম মাত্রার সংজ্ঞা পরিবর্তন করা হয়েছে।
    • ডিফল্ট মান ৬০০dp সহ minHeightDp যোগ করা হয়েছে।
    • minWidth কে minWidthDp তে পরিবর্তন করা হয়েছে, ডিফল্ট মান 600dp।
    • minSmallestWidth কে minSmallestWidthDp তে পরিবর্তন করা হয়েছে, ডিফল্ট মান 600dp।
    • ডিফল্ট মান ALWAYS_ALLOW সহ maxAspectRatioInHorizontal যোগ করা হয়েছে।
    • ডিফল্ট মান ১.৪ সহ maxAspectRatioInPortrait যোগ করা হয়েছে।
    • ফিনিশ আচরণ ধ্রুবক প্রতিস্থাপনের জন্য FinishBehavior নেস্টেড ক্লাস সংজ্ঞায়িত করা হয়েছে।
    • SplitPairRule এবং SplitPlaceholderRule এর Builder nested ক্লাসে সম্পত্তি পরিবর্তনগুলি প্রয়োগ করা হয়েছে।
  • অতিরিক্ত স্প্লিট-সম্পর্কিত তথ্য প্রদানের জন্য SplitInfo#getSplitRatio() SplitInfo#getSplitAttributes() দিয়ে প্রতিস্থাপন করা হয়েছে।

উইন্ডো লেআউট

  • WindowInfoTracker এ পরীক্ষামূলক নন-অ্যাক্টিভিটি UI প্রসঙ্গ সমর্থন যোগ করা হয়েছে।
  • WindowMetricsCalculator এ পরীক্ষামূলক নন-অ্যাক্টিভিটি UI প্রসঙ্গ যোগ করা হয়েছে।

মাইগ্রেশন ধাপ

  • স্প্লিটগুলিতে অ্যাক্টিভিটি প্রদর্শনের জন্য অ্যাক্টিভিটি এম্বেডিং সক্ষম করতে, অ্যাপগুলিকে ম্যানিফেস্টে PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED প্রপার্টি যোগ করতে হবে <application> ট্যাগ: 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.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 দ্বারা ভাগ করতে পারে।
  • Finish আচরণ ধ্রুবকগুলিকে FinishBehavior enum-এর মতো ক্লাস ধ্রুবকগুলিতে স্থানান্তরিত করতে হবে:
    • 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 migrations" দেখুন।
    • পোর্ট্রেট ডিভাইসে বিভাজন দেখাতে setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) ব্যবহার করুন।
  • SplitPlaceholder.Builder মাইগ্রেশন:
    • শুধুমাত্র filters এবং placeholderIntent প্যারামিটার আছে। অন্যান্য বৈশিষ্ট্য সেট্টারে স্থানান্তরিত হয়। বিস্তারিত জানার জন্য "SplitPairRule.Builder মাইগ্রেশন" দেখুন।
    • setFinishPrimaryWithPlaceholder FinishBehavior enum-এর মতো ধ্রুবক গ্রহণ করে। বিস্তারিত জানার জন্য "SplitRule migrations" দেখুন।
    • setLayoutDirection(layoutDirection) এবং setSplitRatio(ratio) এতে পরিবর্তিত হয়: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • পোর্ট্রেট ডিভাইসে বিভাজন দেখাতে setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) ব্যবহার করুন।

সংস্করণ 1.1.0-rc01

১০ মে, ২০২৩

androidx.window:window-*:1.1.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-rc01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • একটি স্থিতিশীল API হিসেবে ActivityEmbedding প্রকাশ করুন।
  • বিভিন্ন বাগ সংশোধন।

সংস্করণ 1.1.0-beta02

৫ এপ্রিল, ২০২৩

androidx.window:window-*:1.1.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-beta02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • অভ্যন্তরীণ মেরামত এবং পরিষ্কার।

সংস্করণ 1.1.0-beta01

২২ মার্চ, ২০২৩

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 সম্পর্কিত API-এর জন্য ActivityEmbeddingController মডিউল।
    • Moved isActivityEmbedded from SplitController to ActivityEmbeddingController .
    • RuleController module for EmbeddingRule related operations:
    • Removed SplitController APIs:
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • Added RuleController APIs:
      • addRule() — Adds a rule or updates the rule that has the same tag.
      • removeRule() — Removes a rule from the collection of registered rules.
      • setRules() — Establishes a collection of rules.
      • clearRules() — Removes all registered rules.
      • `parseRules() — Parses rules from XML rule definitions.
  • All modules require a context to be initialized by #getInstance() method, including:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Added the EmbeddingAspectRatio class to define enum-like behavior constants related to display aspect ratio.
  • Added the SplitAttributes class to define the split layout.
  • Added SplitAttributes calculator functions to SplitController to customize split layouts:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported() to check if the SplitAttributesCalculator APIs are supported on the device
  • Added EmbeddingRule#tag field.
  • API updates in SplitRule :
    • Added defaultSplitAttributes — Defines the default split layout of a split; replaces splitRatio and layoutDirection .
    • Added translation of the XML properties splitRatio and splitLayoutDirection to defaultSplitAttributes .
    • Changed minimum dimension definitions to use density-independent pixels (dp) instead of pixels.
    • Added minHeightDp with default value 600dp.
    • Changed minWidth to minWidthDp with default value 600dp.
    • Changed minSmallestWidth to minSmallestWidthDp with default value 600dp.
    • Added maxAspectRatioInHorizontal with default value ALWAYS_ALLOW .
    • Added maxAspectRatioInPortrait with default value 1.4 .
    • Defined FinishBehavior nested class to replace finish behavior constants.
    • Applied the property changes to the Builder nested class of SplitPairRule and SplitPlaceholderRule .
  • Replaced SplitInfo#getSplitRatio() with SplitInfo#getSplitAttributes() to provide additional split-related information.

WindowLayout

  • Added non-activity UI context support to WindowInfoTracker .
  • Added non-activity UI context to WindowMetricsCalculator .

Migration Steps

  • To enable activity embedding to display activities in splits, apps must add the PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED property to the manifest <application> tag: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> This allows the system to optimize the split behaviors for an application ahead of time.
  • SplitInfo ratio
    • Check if the current split is stacked: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Check the current ratio: kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController migrations:
    • SplitController.getInstance() changes to SplitController.getInstance(Context) .
    • SplitController.initialize(Context, @ResId int) changes to RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) .
    • SplitController.getInstance().isActivityEmbedded(Activity) changes to ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) .
    • SplitController.getInstance().registerRule(rule) changes to RuleController.getInstance(Context).addRule(rule) .
    • SplitController.getInstance().unregisterRule(rule) changes to RuleController.getInstance(Context).removeRule(rule) .
    • SplitController.getInstance().clearRegisteredRules() changes to RuleController.getInstance(Context).clearRules() .
    • SplitController.getInstance().getSplitRules() changes to RuleController.getInstance(Context).getRules() .
  • SplitRule property migrations:
    • minWidth and minSmallestWidth now use dp units instead of pixels. Apps can use the following call: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) or simply divide minWith in pixels by displayMetrics#density .
  • Finish behavior constants must be migrated to FinishBehavior enum-like class constants:
    • FINISH_NEVER changes to FinishBehavior.NEVER .
    • FINISH_ALWAYS changes to FinishBehavior.ALWAYS .
    • FINISH_ADJACENT changes to FinishBehavior.ADJACENT .
  • Layout direction must be migrated to SplitAttributes.LayoutDirection :
    • ltr changes to SplitAttributes.LayoutDirection.LEFT_TO_RIGHT .
    • rtl changes to SplitAttributes.LayoutDirection.RIGHT_TO_LEFT .
    • locale changes to SplitAttributes.LayoutDirection.LOCALE .
    • splitRatio must be migrated to SplitAttributes.SplitType.ratio(splitRatio) .
  • SplitPairRule.Builder migrations:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth) changes to kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection) and setSplitRatio(ratio) change to kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • setFinishPrimaryWithSecondary and setFinishSecondaryWithPrimary take the FinishBehavior enum-like constants. See “SplitRule migrations” for details.
    • Use setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) to show splits on portrait devices.
  • SplitPlaceholder.Builder migrations:
    • Has only filters and placeholderIntent parameters. Other properties move to setters. See “SplitPairRule.Builder migrations” for details.
    • setFinishPrimaryWithPlaceholder takes the FinishBehavior enum-like constants. See “SplitRule migrations” for details.
    • setLayoutDirection(layoutDirection) and setSplitRatio(ratio) change to: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Use setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) to show splits on portrait devices.

Version 1.1.0-alpha06

February 22, 2023

androidx.window:window-*:1.1.0-alpha06 is released. Version 1.1.0-alpha06 contains these commits.

New Features

  • Expose experimental version of getting the WindowLayoutInfo from a UI context.

API Changes

  • Add splitSupportStatus to indicate if Activity embedding is available. ( I10024 )
  • Make UI Context WindowLayoutInfo API as experimental. ( I58ee0 )
  • Introduces the WindowAreaController and API's to enable RearDisplay Mode to move the current window to the display that is aligned with the rear camera. ( Iffcbf )
  • Update default background color. ( I1ac1b )
  • Add SplitAttributes params. ( I18bdd )
  • Add APIs for SplitRule , SplitAttributes , SplitAttributesCalculator . ( I92d23 )
  • Improve the APIs around maxAspectRatio :
    1. Replace alwaysAllow() and alwaysDisallow() with ALWAYS_ALLOW and ALWAYS_DISALLOW .
    2. Update API documentation of @see with standalone documentation. ( I3057b )
  • The following constructors are removed from public APIs because they are not supposed to be called by apps.
    • SplitInfo constructor
    • ActivityStack constructor ( Ide534 )
  • SplitRule now takes maxAspectRatioInPortrait/Landscape . It only allows activities split when the aspect ratio of the parent bounds is smaller or equal to the requested maxAspectRatio . ( Ia5990 )
  • Change RuleController#parseRules to be static ( I785df )
  • Improve the APIs around ActivityEmbedding
    1. Align the API naming - Use add/remove for multiple instances:
    2. registerRule changes to addRule
    3. unregisterRule changes to removeRule
    4. Replace getSplitRules with getRules since ActivityRule is not a split rule
    5. Add RuleController#setRules to set a bunch of rules
    6. Extract rule related APIs from SplitController to singleton RuleController . They are:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. Extract #isActivityEmbedded from SplitController to singleton ActivityEmbeddingController . They are:
    14. isActivityEmbedded
    15. Remove SplitController#initialize . To set rules from XML file, please use RuleController#parseRules and #setRules . Before this change: SplitController.initialize(context, R.xml.static_rules) After this change: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
    16. We don't distinguish static rules with runtime rules anymore. That said, calling #clearRules results to clear all rules no matter they are registered with static XML rule definitions or at runtime. To hav the legacy behavior of SplitController#clearRegisteredRules , please call RuleController#parseRules with the XML resources id and call RuleController#setRules to set back the rules again. Before this change: SplitController.getInstance(context).clearRegisteredRules() After this change: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) ( Ib3967 )
  • Improve the SplitRule APIs:
    1. Take min dimensions in DP instead of pixels for SplitRule .
    2. Refactor for SplitRule Builder to take min dimensions as optional. ( I95f17 )
  • Pass a Context to initialize SplitController ( I42549 )
  • Renamed SplitRule#layoutDir to #layoutDirection and SplitRule Builder#setLayoutDir to Builder#setLayoutDirection . ( I3f6d1 )

Version 1.1.0-alpha04

৯ নভেম্বর, ২০২২

androidx.window:window-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits.

New Features

  • Expose a method to determine if an ActivityStack is empty for ActivityEmbedding .
  • Removed experimental API tags from ActivityEmbedding APIs.
  • Hide ActivityRule constructor as the Builder is the preferred way to construct.
  • Add an experimental method to get the WindowInsets on WindowMetrics .
  • Update SplitPlaceholderFinishBehavior to prevent finishing the placeholder. Finishing the placeholder caused some confusing behavior.

API Changes

  • Make val isEmpty public to replace fun isEmpty .
  • Rename ActivityStack parameter activities to activitiesInProcess . ( Ia5055 )
  • Remove ActivityFilter#matchesClassName and ActivityFilter#matchesClassNameOrWildCard because they are confusing.
  • Add ActivityFilter#componentName abd ActivityFilter#intentAction to allow the caller to distinguish different filters ( I41f22 )
  • Remove the @Deprecated APIs from the experimental API ( I216b3 )
  • Remove @ExperimentalWindowApi for Activity Embedding APIs ( I69ebe )
  • Hide ActivityRule constructor, use Builder instead. ( If4eb6 )
  • Add APIs to check if an Activity is part of the ActivityFilter . ( Ia43cf )
  • Update API files to reflect changes in WindowMetrics and WindowMetricsCalculatorCompat classes ( I667fe )
  • Update ActivityEmbedding Property Javadoc and class name ( Ia1386 )
  • Adding ActivityEmbedding property tag names to be used in AndroidManifest.xml ( Id1ad4 )
  • Added new API SplitPlaceholderFinishBehavior and SplitPlaceholderRule.finishPrimaryWithPlaceholder , this replaces existing SplitPlaceholderRule.finishPrimaryWithSecondary which defines when placeholder activites are finished, how associated activites in Activity Embedding should behave. ( I64647 )

Bug Fixes

  • Introduces the WindowAreaController and API's to enable RearDisplay Mode to move the current window to the display that is aligned with the rear camera. ( I388ab )

Version 1.1.0-alpha03

২৭ জুলাই, ২০২২

androidx.window:window-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits.

New Features

  • Update the default values for embedding rules.

API Changes

  • Update default values for embedding rule properties. ( Ic4d35 )

Version 1.1.0-alpha02

May 11, 2022

androidx.window:window-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits.

New Features

  • Release the adapter libraries to support Java and RxJava.

Version 1.1.0-alpha01

May 11, 2022

androidx.window:window-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.

New Features

  • Release adapters to support java and RxJava

Version 1.1.0-alpha01

April 20, 2022

androidx.window:window:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.

New Features

  • Fixes a bug where backgrounding an app stops emitting fold features.
  • Expand on the experimental ActivityEmbedding API.

API Changes

  • A public API to check if an activity is being embedded. ( I39eb7 )

Bug Fixes

  • Add APIs that customize finishing behavior for containers in activity splits ( I1a1e4 )
  • Added a new configuration option for activity split rules. ( Iec6af )

সংস্করণ 1.0

সংস্করণ 1.0.0

January 26, 2022

androidx.window:window-*:1.0.0 is released. Version 1.0.0 contains these commits.

Major features of 1.0.0

  • Support for folding phones through WindowInfoTracker and FoldingFeature . WindowMetricsCalculator to help calculate the current WindowMetrics.

Version 1.0.0-rc01

December 15, 2021

androidx.window:window-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits.

New Features

  • Add support for folding phones through WindowInfoTracker .
  • Add methods to calculate the current and maximum WindowMetrics .
  • Add supporting test APIs.

Version 1.0.0-beta04

November 17, 2021

androidx.window:window-*:1.0.0-beta04 is released. Version 1.0.0-beta04 contains these commits.

New Features

  • Rename WindowInfoRepository to WindowInfoTracker.
  • Make Activity an explicit method dependency for WindowInfoTracker.
  • Add a simple TestRule for WindowMetricsCalculator to support developers using Robolectric.

API Changes

  • Extract extensions ( I25a5f )
  • add isEmpty in ActivityStack ( I5a4e6 )
  • Rename WindowInfoRepository to WindowInfoTracker.
    • Update java/rxjava/testing dependencies to match. ( I0da63 )
  • Add a test rule for a simple WindowMetricsCalculator. ( Ibacdb )

Version 1.0.0-beta03

২৭ অক্টোবর, ২০২১

androidx.window:window-*:1.0.0-beta03 is released. Version 1.0.0-beta03 contains these commits.

New Features

  • Add experimental Activity Embedding APIs. This initial layout version allows showing two Activities side by side.

API Changes

  • Removed the currentWindowMetrics API since we can not provide it accurately. Please use WindowMetricsCalculator instead ( Icda5f )
  • Updated the extensions api. ( Ica92b )
  • Added an interface for a new feature that allows embedding activities and showing them side-by-side within the parent task window. ( I5711d )
  • Hid the constructors for WindowMetrics and WindowLayoutInfo, please use the test APIs instead. ( I5a1b5 )
  • Add an API to create fake WindowLayoutInfo objects. ( I4a2fd )

Bug Fixes

Version 1.0.0-beta02

September 1, 2021

androidx.window:window-*:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits.

New Features

  • Add an experimental annotation to annotate experimental APIs. ( I9f1b6 )
  • Add a test method to create a test FoldingFeature that accepts a Rect. This will make it easie to test when using Robolectric as opposed to an actual Activity. ( Id1cca )

Version 1.0.0-beta01

১৮ আগস্ট, ২০২১

androidx.window:window-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

New Features

  • Removed old constants and made FoldingFeature into an interface.

API Changes

  • Remove old constants and make FoldFeature an interface. ( I9a2d5 )

Bug Fixes

  • Libraries that depend on the Test Core library have been upgraded to version 1.4.0 and will now work with Android platform version S. ( I88b72 , b/189353863 )

Version 1.0.0-alpha10

August 4, 2021

androidx.window:window-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits.

New Features

  • Rename WindowInfoRepo to WindowInfoRepository and adjust corresponding classes / files.
  • Convert current window metrics to a Flow in WindowInfoRepository since the value changes over time.
  • Rename WindowInfoRepoJavaAdapter to WindowInfoRepoCallbackAdapter
  • Add helper method to create test FoldingFeature objects
  • Update packages to group classes based on the feature they are supporting.

API Changes

  • Rename ActivityExt to ActivityExtensions Change from Repo to Repository. ( I61a16 )
  • Update packages for classes. ( I23ae2 )
  • Remove WindowMetrics from WindowInfoRepo ( I24663 )
  • Remove WindowManager and use WindowInfoRepo
    • Make WindowBackend internal. ( I06d9a )
  • Convert window metrics to Flow.
    • Rename java adapter to WindowInfoRepoCallbackAdapter
    • Remove callbackFlow so no more experimental APIs are in use. ( Ia4d15 )
  • Add helper method to create test display features.
    • Change from occlusionMode to occlusionType ( If4cff )

Bug Fixes

  • Fix proguard error where core library was being removed.
  • Fix error where WindowLayoutInfo was not being delivered to additional subscribers.
  • Fix error where config changes would not trigger folding feature updates.

Version 1.0.0-alpha09

June 30, 2021

androidx.window:window-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.

New Features

  • Change from integer constants to unbounded enums.
  • Add a test util to create test folding features.

API Changes

  • Add helper method to create test display features. ( I3cf54 )
    • Change from occlusionMode to occlusionType .

Bug Fixes

  • Emit initial value when adding multiple consumers of the data streams.

Version 1.0.0-alpha08

June 16, 2021

androidx.window:window-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.

New Features

  • Released a testing artifact to make it easier to test when using WindowInfoRepository. Use WindowInfoRepository to get information about DisplayFeatures and the WindowMetrics. ( I57f66 , Ida620 )

Version 1.0.0-alpha07

২ জুন, ২০২১

androidx.window:window-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.

New Features

  • Migrate core window library to Kotlin. Will use coroutines and suspend functions to expose asynchronous data going forward.
  • Add WindowInfoRepo as the main interaction point for getting the WindowMetrics and the stream of WindowLayoutInfo.
  • New window-java artifact to expose Java-friendly APIs to register and unregister callbacks.
  • New window-rxjava2 and window-rxjava3 artifacts to expose RxJava adapted APIs.

API Changes

  • Add WindowServices to provide dependencies uniformly.
    • Add coroutine based api to consume window layout info. ( Iab70f )
  • Migrate core window manager library to Kotlin. ( Icca34 )

Bug Fixes

  • Add new data class to represent feature bounds. ( I6dcd1 )

Version 1.0.0-alpha06

May 5, 2021

androidx.window:window:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.

New Features

  • We have started our migration to Kotlin and will finish in the next release.
  • DeviceState has been removed from the public API, please use FoldingFeature instead.
  • We have removed STATE_FLIPPED from the FoldingFeature states since it is not supported by any use-case at the moment.
  • We have also removed other deprecated APIs.

API Changes

  • Adding Kotlin as a dependency.
    • Migrate core library to Kotlin. ( Idd995 )
  • Removed DisplayFeature builder. ( I61fa4 )
  • Removed DeviceState from public api, use FoldingFeature instead. ( Id6079 )
  • Remove device state callback from extensions. ( I5ea83 )
  • Remove STATE_FLIPPED from FoldingFeature. ( I9c4e1 )
  • Remove deprecated registration methods. ( Ib381b )

Version 1.0.0-alpha05

March 24, 2021

androidx.window:window:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.

New Features

We have added convenience methods to FoldingFeature so that apps can tell if the feature is separating, occluding, and determine the orientation of the hinge. We are also hiding the hinge type so that

We are removing the synchronous read methods from WindowManager. Synchronous read methods are error prone since there is an implicit race condition. Register listeners and callbacks to receive updates on the WindowLayoutInfo.

API Changes

  • Add convenience methods for working with FoldingFeatures ( Ie733f )
  • Removes synchronous read methods from WindowManager ( I96fd4 )

Version 1.0.0-alpha04

১০ মার্চ, ২০২১

androidx.window:window:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.

New Features

  • Fixes a bug where no WindowLayoutInfo is emitted if there isn't an OEM implementation. Now we emit an empty WIndowLayoutInfo.
  • Fix a bug where state would not update properly if the hinge state changed while the app was backgrounded. Now the state should be consistent.
  • Update our proguard files to ignore warnings from runtime dependencies.

Bug Fixes

  • Emit an empty value when the OEM library is missing. ( Ide935 )

Version 1.0.0-alpha03

১৮ ফেব্রুয়ারী, ২০২১

androidx.window:window:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.

New Features

  • Emit an empty value for WindowLayoutInfo when the OEM implementation is empty. This should make it easier to use the library on more devices. Since the APIs are asynchronous it is still recommended that apps write some defensive code and emit a default value after a timeout. We do not have any guarantees on OEM implementations and the initial value may be delayed.

Bug Fixes

  • Emit an empty value when the OEM library is missing. ( Ide935 )

Version 1.0.0-alpha02

January 27, 2021

androidx.window:window:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.

New Features

  • We have deprecated some APIs to help streamline the api and reduce mistakes. Some notable examples are removing the synchronous read operations from WindowManager and deprecating DeviceState. Synchronous read operations can lead to race conditions and have incorrect UI.

  • We have converted DisplayFeature to an interface that other features will implement going forward. Our first feature is FoldingFeature which is now the representation of a screen fold or a hinge. This also contains the state of the hinge replacing DeviceState.

  • WindowMetrics was introduced in Android 11 to provide developers with a simple way to query for metrics about a window, for example its position and size on screen and any system insets. We've backported the API in this release so that developers can leverage WindowMetrics and continue to support older Android versions. WindowMetrics can be obtained through the WindowManager#getCurrentWindowMetrics() and WindowManager#getMaximumWindowMetrics() APIs.

API Changes

  • Deprecate APIs that will be removed in the next alpha ( Ib7cc4 )
  • Updates ExtensionInterface to accept explicit Activity references. ( I07ded )
  • Introduces the WindowMetrics API. ( I3ccee )
  • Remove synchronous read methods from WindowManager ( I69983 )
  • Make ExtensionWindowBackend package protected. ( Ied208 )

Bug Fixes

  • Update ExtensionInterface APIs to accept visual contexts. ( I8e827 )

External Contribution

  • Merge DeviceState and WindowLayoutInfo so it is easier to access data. ( Id34f4 )

Version 1.0.0-alpha01

February 27, 2020

androidx.window:window:1.0.0-alpha01 and androidx.window:window-extensions:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits. This is the first release of the Window Manager library.

নতুন বৈশিষ্ট্য

  • DisplayFeature : This new API identifies disruptions in the continuous flat screen surfaces such as hinges or folds
  • DeviceState : This new API provides the current posture of the phone from a list of defined postures (For example, CLOSED , OPENED , HALF_OPENED , etc.)