সেভডস্টেট

এমন প্লাগেবল কম্পোনেন্ট লিখুন যা কোনো প্রসেস বন্ধ হয়ে গেলে UI-এর অবস্থা সংরক্ষণ করে এবং প্রসেসটি পুনরায় চালু হলে তা পুনরুদ্ধার করে।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ রিলিজ প্রার্থী বিটা রিলিজ আলফা রিলিজ
২৫ মার্চ, ২০২৬ ১.৪.০ - - ১.৫.০-আলফা০২

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

SavedState-এর উপর নির্ভরতা যোগ করতে হলে, আপনাকে আপনার প্রজেক্টে গুগল মেভেন রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য গুগলের মেভেন রিপোজিটরি পড়ুন।

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

গ্রোভি

dependencies {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.4.0"

    // Kotlin
    implementation "androidx.savedstate:savedstate-ktx:1.4.0"
}

কোটলিন

dependencies {
    // Java language implementation
    implementation("androidx.savedstate:savedstate:1.4.0")

    // Kotlin
    implementation("androidx.savedstate:savedstate-ktx:1.4.0")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, 'বিল্ড নির্ভরতা যোগ করুন ' দেখুন।

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

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

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

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

সংস্করণ ১.৫

সংস্করণ 1.5.0-alpha02

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

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

সংস্করণ 1.5.0-alpha01

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

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

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

  • SavedState অবজেক্টগুলির জন্য জেনেরিক সিরিয়ালাইজেশন সক্ষম করুন, যার ফলে সেগুলিকে সমস্ত প্ল্যাটফর্মে CBOR বা JSON-এর মতো স্ট্যান্ডার্ড ফরম্যাট ব্যবহার করে এনকোড এবং ডিকোড করা যাবে। ( Iafda4 , b/425919375 )

এপিআই পরিবর্তন

  • SavedStateWriter এবং SavedStateReaderputKotlinSerializable এবং getKotlinSerializable এক্সটেনশন ফাংশন যোগ করুন, যা কী (key) ব্যবহার করে সরাসরি Kotlin Serializable অবজেক্ট সংরক্ষণ ও পুনরুদ্ধার করার সুযোগ দেবে এবং SavedState API-এর সাথে ইন্টিগ্রেশনকে আরও সহজ করবে। ( Iba02e )
  • কাস্টম ওনার কম্পোনেন্ট তৈরি করার সময় বয়লারপ্লেট কমাতে LifecycleOwner , ViewModelStoreOwner , এবং SavedStateRegistryOwner এর জন্য ফ্যাক্টরি ফাংশন যোগ করুন। ( I9682c )
  • rememberSerializable মাধ্যমে SnapshotStateSet (যা mutableStateSetOf() এর মাধ্যমে তৈরি করা হয়) সংরক্ষণ এবং পুনরুদ্ধার করা সক্ষম করুন। এখন আপনি কোনো কাস্টম সেভার ছাড়াই rememberSerializableSnapshotStateSet ব্যবহার করতে পারবেন। ( I9a4ed , b/449498367 )

সংস্করণ ১.৪

সংস্করণ ১.৪.০

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

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

সংস্করণ 1.4.0-rc01

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

androidx.savedstate:savedstate-*:1.4.0-rc01 1.4.0-beta01-এর পর থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.4.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

সংস্করণ 1.4.0-beta01

০৮ অক্টোবর, ২০২৫

শেষ আলফার পর থেকে কোনো উল্লেখযোগ্য পরিবর্তন ছাড়াই androidx.savedstate:savedstate-*:1.4.0-beta01 প্রকাশ করা হয়েছে। সংস্করণ 1.4.0-beta01-এ এই কমিটগুলো রয়েছে।

সংস্করণ 1.4.0-alpha03

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

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

এপিআই পরিবর্তন

  • encodeToSavedState এবং decodeFromSavedState এ নাল টাইপের জন্য সমর্থন যোগ করা হয়েছে। ( I79062 , b/439527454 )
  • Compose 1.9.0 সংস্করণে আপডেট করুন। ( I2b9de )

সংস্করণ 1.4.0-alpha02

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

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

সংস্করণ 1.4.0-alpha01

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

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

এপিআই পরিবর্তন

  • SavedStateRegistryOwner.saved এ নালযোগ্য টাইপের জন্য নেটিভ সাপোর্ট যোগ করা হয়েছে, যা নালযোগ্য প্রোপার্টি সংরক্ষণ এবং পুনরুদ্ধার করাকে সহজ করে। ( Ia632 , b/421325690 )

সংস্করণ ১.৩

সংস্করণ ১.৩.৩

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

androidx.savedstate:savedstate-*:1.3.3 প্রকাশিত হয়েছে। সংস্করণ 1.3.3-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • কম্পোজ কম্পাইলার প্লাগইন প্রয়োগ না হওয়ার একটি ত্রুটি সংশোধন করা হয়েছে, যার কারণে SavedState কেএমপি আর্টিফ্যাক্টগুলো নষ্ট হয়ে যাচ্ছিল। ( Id2290 , b/443965665 )

সংস্করণ ১.৩.২

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

androidx.savedstate:savedstate-*:1.3.2 প্রকাশিত হয়েছে। সংস্করণ 1.3.2-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

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

  • SavedState *-compose আর্টিফ্যাক্টে নতুন Kotlin Multiplatform (KMP) টার্গেট যোগ করা হয়েছে। লাইফসাইকেল এখন মোট নিম্নলিখিত প্ল্যাটফর্মগুলিকে সমর্থন করে: JVM (অ্যান্ড্রয়েড এবং ডেস্কটপ), নেটিভ (লিনাক্স, iOS, watchOS, macOS, MinGW), এবং ওয়েব (জাভাস্ক্রিপ্ট, WasmJS)। ( /Idcf26 )

সংস্করণ ১.৩.১

১৬ জুলাই, ২০২৫

androidx.savedstate:savedstate-*:1.3.1 প্রকাশিত হয়েছে। সংস্করণ 1.3.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

বাগ সংশোধন

  • অ্যানোটেশন দ্বারা সমর্থিত সমস্ত KMP টার্গেট SavedState আর্টিফ্যাক্টে যোগ করুন।
  • SavedState আর্টিফ্যাক্টে নতুন Kotlin Multiplatform (KMP) টার্গেট যোগ করা হয়েছে। SavedState এখন মোট নিম্নলিখিত প্ল্যাটফর্মগুলো সমর্থন করে: JVM (Android এবং Desktop), Native (Linux, iOS, watchOS, macOS, MinGW), এবং Web (JavaScript, WasmJS)। উল্লেখ্য যে, *-compose আর্টিফ্যাক্টে কোনো নতুন KMP টার্গেট যোগ করা হয়নি, কারণ এটি Compose 1.9-এর স্থিতিশীল রিলিজের উপর নির্ভরশীল। ( I062f4 )।

সংস্করণ ১.৩.০

৭ মে, ২০২৫

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

১.২.০ সংস্করণ থেকে গুরুত্বপূর্ণ পরিবর্তনসমূহ

  • LocalSavedStateRegistryOwner Compose UI থেকে নতুন savedstate-compose মডিউলে স্থানান্তর করা হয়েছে, যাতে এর Compose-ভিত্তিক হেল্পার API-গুলো Compose UI-এর বাইরেও ব্যবহার করা যায়। Compose UI 1.9.0-alpha02 এবং এর উচ্চতর সংস্করণ ব্যবহার করার সময় এটি সর্বদা ব্যবহার করা উচিত, তবে এটি ব্যাকওয়ার্ড কম্প্যাটিবল হওয়ায় Compose-এর সকল সংস্করণের সাথেই ব্যবহার করা যাবে।
  • savedstate-ktx কোটলিন এক্সটেনশনগুলো এখন মূল savedstate মডিউলে স্থানান্তর করা হয়েছে।
  • findViewTreeSavedStateRegistryOwner এর মাধ্যমে প্রাপ্ত SavedStateRegistryOwner ইনস্ট্যান্সগুলো এখন একটি ভিউ-এর ডিসজয়েন্ট প্যারেন্ট, যেমন একটি ViewOverlay মাধ্যমেও রিজলভ করা যাবে। ডিসজয়েন্ট ভিউ প্যারেন্ট সম্পর্কে আরও তথ্যের জন্য core-এর রিলিজ নোট অথবা ViewTree.setViewTreeDisjointParent এর ডকুমেন্টেশন দেখুন।

কোটলিন মাল্টিপ্ল্যাটফর্ম

  • SavedState মডিউলটি এখন KMP-এর সাথে সামঞ্জস্যপূর্ণ। সমর্থিত প্ল্যাটফর্মগুলোর মধ্যে এখন রয়েছে Android, iOS, Linux, Mac এবং JVM ডেস্কটপ এনভায়রনমেন্ট।
  • KMP-তে অ্যাপ্লিকেশন স্টেট সংরক্ষণ ও পুনরুদ্ধার করার একটি সামঞ্জস্যপূর্ণ উপায় প্রদানের জন্য একটি অ্যাবস্ট্রাকশন হিসেবে SavedState ওপেগ টাইপ চালু করা হয়েছে। এতে সংরক্ষিতব্য স্টেট পরিবর্তন করার জন্য একটি SavedStateReader এবং SavedStateWriter অন্তর্ভুক্ত রয়েছে। অ্যান্ড্রয়েডে, SavedState হলো Bundle এর একটি টাইপ অ্যালিয়াস, যা বাইনারি সামঞ্জস্যতা নিশ্চিত করে এবং বিদ্যমান API-গুলোকে একটি সাধারণ সোর্স সেটে স্থানান্তরে সহায়তা করে। অন্যান্য প্ল্যাটফর্মে, SavedState হলো একটি Map<String, Any> ইনস্ট্যান্স।

      // Create a new SavedState object using the savedState DSL:
      val savedState = savedState {
        putInt("currentPage", 1)
        putString("filter", "favorites")
      }
    
      // Read from a SavedState object
      val currentPage = savedState.read { getInt("currentPage") }
    
      // Edit an existing SavedState object
      savedState.write {
        remove("currentPage")
      }
    

কোটলিনএক্স সিরিয়ালাইজেশন সাপোর্ট

  • SavedState এখন KotlinX Serialization সাপোর্ট অন্তর্ভুক্ত করা হয়েছে। আপনি encodeToSavedState এবং decodeFromSavedState মেথডগুলো ব্যবহার করে @Serializable অ্যানোটেশনযুক্ত একটি ক্লাসকে SavedState এ রূপান্তর করতে পারেন। ফেরত আসা SavedState Android-এ একটি সাধারণ Bundle হিসেবে গণ্য হয় এবং Bundle গ্রহণকারী যেকোনো API এটি ব্যবহার করতে পারে।

    @Serializable
    data class Person(val firstName: String, val lastName: String)
    
    fun main() {
        val person = Person("John", "Doe")
        val encoded: SavedState = encodeToSavedState(person)
        val decoded: Person = decodeFromSavedState(encoded)
    }
    
  • যদিও বেশিরভাগ টাইপ (যেমন প্রিমিটিভ টাইপ) কোনো কনফিগারেশন ছাড়াই সরাসরি সমর্থিত, @Serializable(with = ___:class) এর সাথে ব্যবহারযোগ্য অতিরিক্ত সিরিয়ালাইজারগুলো savedstate মডিউলের androidx.savedstate.serialization.serializers প্যাকেজে এবং savedstate-compose মডিউলের androidx.savedstate.compose.serialization.serializers প্যাকেজে পাওয়া যাবে।

  • আমরা saved একটি লেজি প্রপার্টি ডেলিগেটও অন্তর্ভুক্ত করেছি, যাতে @Serializable ক্লাসগুলোকে একটি SavedStateRegistryOwner এ (যেমন, ComponentActivity , Fragment , ইত্যাদি) সহজে সংরক্ষণ করা যায় এবং প্রসেস বন্ধ ও পুনরায় চালু হওয়ার পরেও ক্লাসগুলো স্বয়ংক্রিয়ভাবে পুনরুদ্ধার হয়। অনুগ্রহ করে মনে রাখবেন যে, saved ডেলিগেটটি লেজি এবং এটি অ্যাক্সেস না করা পর্যন্ত init ল্যাম্বডাকে কল করবে না বা SavedStateRegistry তে কিছু সংরক্ষণ করবে না।

    @Serializable
    data class Person(val firstName: String, val lastName: String)
    
    class MyActivity : ComponentActivity() {
        var person by saved { Person("John", "Doe") }
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            this.person = Person("Jane", "Doe")
        }
    }
    
  • লাইফসাইকেল 2.9.0 -তে SavedStateHandle এর জন্য একটি অনুরূপ saved প্রপার্টি ডেলিগেট যোগ করা হয়েছে।

সংস্করণ 1.3.0-rc01

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

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

সংস্করণ 1.3.0-beta01

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

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

নির্ভরতা আপডেট

  • এই লাইব্রেরিটি এখন কোটলিন ২.০ ল্যাঙ্গুয়েজ লেভেলকে টার্গেট করে এবং এর জন্য কেজিপি ২.০.০ বা তার নতুন সংস্করণ প্রয়োজন। ( Idb6b5 )

সংস্করণ 1.3.0-alpha11

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

androidx.savedstate:savedstate-*:1.3.0-alpha11 কোনো উল্লেখযোগ্য পাবলিক পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.3.0-alpha11-এ এই কমিটগুলো রয়েছে।

সংস্করণ 1.3.0-alpha10

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

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

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

  • SavedStateReaderget collections-এর জন্য non-reified method variants যোগ করুন। ( I0b641 , b/399820614 )
  • SavedStateConfigurationencodeDefaults যোগ করা হয়েছে, যার ফলে ডিফল্ট মান সহ প্রোপার্টিগুলো এনকোড করা হবে কিনা তা কাস্টমাইজ করা যাবে। ( I893cc , b/395104517 )
  • mutableStateMapOf সমর্থন করার জন্য SnapshotStateMapSerializer যোগ করা হয়েছে। ( Ie6f19 , b/378895074 )
  • mutableStateListOf সমর্থন করার জন্য SnapshotStateListSerializer যোগ করা হয়েছে। ( I4d888 , b/378895074 )
  • SavedStateReader.get ভ্যারিয়েন্টগুলোর জন্য getOrNull বিকল্প মেথড যোগ করুন। এই মেথডগুলো প্রিমিটিভ ভ্যালুগুলোকে স্বয়ংক্রিয়ভাবে বক্স করবে। ( I6228c , b/399820614 )

এপিআই পরিবর্তন

  • SavedStateReader থেকে getOrElse সরিয়ে getOrNull() ?: else() ব্যবহার করুন। ( I87317 , b/399820614 )
  • SavedStateReader এবং SavedStateWriter মেথডগুলো থেকে inline মডিফায়ার অপসারণ করুন। ( If2a02 , b/399820614 )
  • পাবলিক এপিআই থেকে অ্যান্ড্রয়েড-এর বিল্ট-ইন লিস্ট এবং অ্যারে সিরিয়ালাইজারগুলো সরিয়ে ফেলুন ( Ida293 )
  • SparseParcelableArraySerializer SparseArraySerializer দিয়ে প্রতিস্থাপন করুন ( I91de8 )
  • ভ্যালু টাইপ রিটার্ন টাইপের সাথে না মিললে থ্রো করে সমস্ত SavedStateReader.get সামঞ্জস্যপূর্ণ আচরণ করান ( I78c4a , b/399317598 )
  • SavedState*Delegates SavedState*Delegate এ পুনঃনামকরণ করুন। ( I8589b , b/399629301 )
  • SavedStateConfig SavedStateConfiguration এ পুনঃনামকরণ করুন। ( I043a5 , b/399629301 )

সংস্করণ 1.3.0-alpha09

২৬ ফেব্রুয়ারি, ২০২৫

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

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

  • বিল্ট-ইন টাইপগুলির জন্য ফলব্যাক যোগ করুন, যাতে Bundle দ্বারা সমর্থিত সমস্ত টাইপ ডিফল্টরূপে encodeAsSavedState / decodeFromSavedState এর সাথে অথবা, @Serializable ক্লাসের প্রোপার্টিগুলির জন্য, @Contextual অ্যানোটেশনের মাধ্যমে ব্যবহার করা যায়। ( Ic01d2 )
  • SavedStateConfigclassDiscriminator এবং classDiscriminatorMode এর জন্য সমর্থন অন্তর্ভুক্ত করুন। ( I69b66 , b/395104517 )

এপিআই পরিবর্তন

  • saved() ডেলিগেটগুলিতে SavedStateConfig প্যারামিটার যোগ করুন ( I39b3a )
  • বিল্ট-ইন সিরিয়ালাইজারগুলোকে সিঙ্গেলটন অবজেক্টে পরিণত করে ( Ifeee4 )
  • SavedStateConfig প্রোপার্টিগুলো এখন পাবলিক, ফলে অন্যান্য মডিউলগুলো এই কনফিগারেশনগুলো ব্যবহার করতে পারবে। ( Ie5f49 , b/378897438 )
  • MutableStateFlowSerializer এবং MutableStateSerializer জন্য @Serializer(with = ...) সমর্থন ( I90953 )
  • SavedStateReadercontentDeepToString যোগ করুন ( I14d10 )

সংস্করণ 1.3.0-alpha08

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

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

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

  • MutableStateSerializer lifecycle-viewmodel-compose থেকে savedstate-compose এ স্থানান্তর করা হয়েছে, যার ফলে আপনি Compose-এর MutableState এর সাথে SavedState Serialization API ব্যবহার করতে পারবেন। ( I4f690 , b/378895074 )

এপিআই পরিবর্তন

  • বিদ্যমান SavedState থেকে SavedState তৈরি করার জন্য একটি ফ্যাক্টরি ফাংশন যোগ করুন। ( I39f9a )
  • androidx.savedstateArray<SavedState> এবং List<SavedState> এর জন্য সমর্থন যোগ করা হয়েছে। ( Idd8a5 )
  • SavedState এনকোডিং/ডিকোডিং ( I6c4c0 ) এর জন্য SavedStateConfig ঐচ্ছিক প্যারামিটার যোগ করুন

সংস্করণ 1.3.0-alpha07

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

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

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

  • kotlinx.coroutines.flow.MutableStateFlow কে সিরিয়ালাইজ করার জন্য MutableStateFlowSerializer যোগ করা হয়েছে। ( I6a892 , b/378895070 )

এপিআই পরিবর্তন

  • ডিফল্ট প্যারামিটার সহ ওভারলোডেড SavedStateRegistryOwner.saved() ডেলিগেট ফাংশনগুলি প্রতিস্থাপন করুন ( Icd1c1 )
  • JavaSerializableSerializer এবং ParcelableSerializer অ্যাবস্ট্রাক্ট করুন ( I268f6 )
  • CharSequenceSerializer থেকে জেনেরিক T : CharSequence অপসারণ করুন ( Ib40bd )

সংস্করণ 1.3.0-alpha06

১১ ডিসেম্বর, ২০২৪

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

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

  • SavedState KMP এখন সমর্থন করে: IBinder , Size , SizeF , Array<Parcelable> , SparseArray<Parcelable> এবং Serializable (Android)। ( I1ba94 , b/334076622 )
  • আপনার ক্লাসের প্রাসঙ্গিক ফিল্ডটিকে @Serializable(with = ParcelableSerializer::class) দিয়ে চিহ্নিত করে KSerializer ইনস্ট্যান্স যোগ করুন, যা Bundle দ্বারা সমর্থিত জাভা এবং অ্যান্ড্রয়েড টাইপ এনকোড/ডিকোড করতে ব্যবহার করা যেতে পারে। ( I8c10f , I28caf , b/376026712 )
  • findViewTreeSavedStateRegistryOwner এর মাধ্যমে প্রাপ্ত SavedStateRegistryOwner ইনস্ট্যান্সগুলো এখন একটি ভিউ-এর ডিসজয়েন্ট প্যারেন্ট, যেমন একটি ViewOverlay মাধ্যমে রিজলভ করা যাবে। ডিসজয়েন্ট ভিউ প্যারেন্ট সম্পর্কে আরও তথ্যের জন্য core-এর রিলিজ নোট অথবা ViewTree.setViewTreeDisjointParent এর ডকুমেন্টেশন দেখুন। ( Iccb33 )

এপিআই পরিবর্তন

  • SavedStateRegistryOwnerDelegate ( I8c135 , b/376026744 ) এর সাথে নামকরণ এবং প্যাকেজ সংগঠনকে আরও সামঞ্জস্যপূর্ণ করুন।

সংস্করণ 1.3.0-alpha05

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

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

কোটলিনএক্স সিরিয়ালাইজেশন সাপোর্ট

  • SavedState এখন KotlinX Serialization সাপোর্ট অন্তর্ভুক্ত করা হয়েছে। আপনি encodeToSavedState এবং decodeFromSavedState মেথডগুলো ব্যবহার করে @Serializable অ্যানোটেশনযুক্ত একটি ক্লাসকে SavedState এ রূপান্তর করতে পারেন। ফেরত আসা SavedState Android-এ একটি সাধারণ Bundle এবং Bundle গ্রহণকারী যেকোনো API এটি ব্যবহার করতে পারে। ( I6f59f , b/374102924 )

    @Serializable
    data class Person(val firstName: String, val lastName: String)
    
    fun main() {
        val person = Person("John", "Doe")
        val encoded: SavedState = encodeToSavedState(person)
        val decoded: Person = decodeFromSavedState(encoded)
    }
    
  • আমরা saved একটি লেজি প্রপার্টি ডেলিগেটও অন্তর্ভুক্ত করেছি, যাতে @Serializable ক্লাসগুলোকে একটি SavedStateRegistryOwner এ (যেমন, ComponentActivity , Fragment , ইত্যাদি) সহজে সংরক্ষণ করা যায় এবং প্রসেস বন্ধ ও পুনরায় চালু হওয়ার পরেও ক্লাসগুলো স্বয়ংক্রিয়ভাবে পুনরুদ্ধার হয়। অনুগ্রহ করে মনে রাখবেন যে saved ডেলিগেটটি লেজি এবং এটি অ্যাক্সেস না করা পর্যন্ত init ল্যাম্বডা কল করবে না বা SavedStateRegistry তে কিছু সংরক্ষণ করবে না। ( I66739 , b/376027806 )

    @Serializable
    data class Person(val firstName: String, val lastName: String)
    
    class MyActivity : ComponentActivity() {
        var person by saved { Person("John", "Doe") }
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            this.person = Person("Jane", "Doe")
        }
    }
    
  • Lifecycle 2.9.0-alpha07SavedStateHandle এর জন্য একটি অনুরূপ saved প্রপার্টি ডেলিগেট যোগ করা হয়েছে।

এপিআই পরিবর্তন

  • SavedStatetoMap যোগ করা হয়েছে, যার ফলে যেকোনো SavedState একটি সাধারণ Map (শেলো কপি)-তে রূপান্তর করা যাবে। ( I487b9 , b/334076622 )
  • SavedState KMP এখন অ্যারে সমর্থন করে। ( Ic0552 , b/334076622 )

সংস্করণ 1.3.0-alpha04

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

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

এপিআই পরিবর্তন

  • SavedState KMP এখন Char সমর্থন করে। ( I9ac2f , b/334076622 )
  • SavedState KMP-তে putNull এবং isNull যোগ করুন। ( Iea71d , b/334076622 )
  • একটি প্রাথমিক Map<String, Any> সমর্থনকারী অতিরিক্ত savedState ফ্যাক্টরি প্যারামিটার যোগ করুন ( I9b37d , b/334076622 )
  • SavedState KMP এখন contentDeepEquals তুলনা সমর্থন করে। ( Ia515c , b/334076622 )
  • SavedState KMP এখন Long সমর্থন করে। ( I4c180 , b/334076622 )

সংস্করণ 1.3.0-alpha03

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

androidx.savedstate:savedstate-*:1.3.0-alpha03 কোনো উল্লেখযোগ্য পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.3.0-alpha03-এ এই কমিটগুলো রয়েছে।

সংস্করণ 1.3.0-alpha02

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

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

কোটলিন মাল্টিপ্ল্যাটফর্ম

  • SavedState মডিউলটি এখন KMP-উপযোগী। সমর্থিত প্ল্যাটফর্মগুলোর মধ্যে এখন রয়েছে Android, iOS, Linux, Mac, এবং JVM ডেস্কটপ এনভায়রনমেন্ট। ( I26305 , b/334076622 )

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

  • KMP-তে অ্যাপ্লিকেশন স্টেট সংরক্ষণ এবং পুনরুদ্ধার করার জন্য একটি সামঞ্জস্যপূর্ণ উপায় প্রদানের লক্ষ্যে একটি অ্যাবস্ট্রাকশন হিসেবে SavedState অপেক টাইপ চালু করা হয়েছে। এতে সংরক্ষিতব্য স্টেট পরিবর্তন করার জন্য একটি SavedStateReader এবং SavedStateWriter অন্তর্ভুক্ত রয়েছে। অ্যান্ড্রয়েডে, SavedState হলো Bundle এর একটি টাইপ অ্যালিয়াস, যা বাইনারি সামঞ্জস্যতা নিশ্চিত করে এবং বিদ্যমান API-গুলোকে একটি সাধারণ সোর্স সেটে স্থানান্তরে সহায়তা করে। অন্যান্য প্ল্যাটফর্মে, SavedState হলো একটি Map<String, Any> ইনস্ট্যান্স। ( I18575 , b/334076622 )
  // Create a new SavedState object using the savedState DSL:
  val savedState = savedState {
    putInt("currentPage", 1)
    putString("filter", "favorites")
  }

  // Read from a SavedState object
  val currentPage = savedState.read { getInt("currentPage") }

  // Edit an existing SavedState object
  savedState.write {
    remove("currentPage")
  }

এপিআই পরিবর্তন

  • SavedStateRegistry এবং SavedStateRegistryController এখন KMP সামঞ্জস্যপূর্ণ। ( Id7bb8 , b/334076622 )
  • SavedState , SavedStateWriter এবং SavedStateReader এখন KMP সামঞ্জস্যপূর্ণ। ( I26305 , b/334076622 )

সংস্করণ 1.3.0-alpha01

৭ আগস্ট, ২০২৪

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

এপিআই পরিবর্তন

  • savedstate-ktx কোটলিন এক্সটেনশনগুলো এখন মূল savedstate মডিউলে স্থানান্তরিত করা হয়েছে। ( I1cc18 , b/274803094 )

দ্রষ্টব্য

  • compileSdk 35 ( 5dc41be ) এ আপডেট করুন

সংস্করণ ১.২.১

সংস্করণ ১.২.১

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

androidx.savedstate:savedstate:1.2.1 এবং androidx.savedstate:savedstate-ktx:1.2.1 রিলিজ করা হয়েছে। ভার্সন ১.২.১-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

নির্ভরতা আপডেট

সংস্করণ ১.২.০

সংস্করণ ১.২.০

২৯ জুন, ২০২২

androidx.savedstate:savedstate:1.2.0 এবং androidx.savedstate:savedstate-ktx:1.2.0 প্রকাশ করা হয়েছে। সংস্করণ 1.2.0-তে এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

১.১.০ সংস্করণ থেকে গুরুত্বপূর্ণ পরিবর্তনসমূহ

  • SavedStateRegistryController এখন performAttach() এর মাধ্যমে SavedStateRegistry এর আগাম সংযুক্তি (early attachment) করার সুযোগ দেয়।
  • এখন আপনি getSavedStateProvider() এর মাধ্যমে একটি SavedStateRegistry থেকে পূর্বে নিবন্ধিত একটি SavedStateProvider পুনরুদ্ধার করতে পারবেন।
  • SavedState লাইব্রেরিটি কোটলিনে নতুন করে লেখা হয়েছে।
    • SavedStateRegistryOwner ক্ষেত্রে, Kotlin-এ লেখা ক্লাসগুলোর জন্য এটি একটি সোর্স-অসামঞ্জস্যপূর্ণ পরিবর্তন — এখন আপনাকে আগের getSavedStateRegistry() ফাংশনটি ইমপ্লিমেন্ট করার পরিবর্তে savedStateRegistry প্রপার্টিটি ওভাররাইড করতে হবে।
    • ViewTreeSavedStateRegistryOwner ক্ষেত্রে, Kotlin-এ লেখা ক্লাসগুলোর জন্য এটি একটি সোর্স androidx.savedstate.setViewTreeSavedStateRegistryOwner অসামঞ্জস্যপূর্ণ পরিবর্তন — পূর্বে সেট করা ওনারকে সেট ও ফাইন্ড করার জন্য আপনাকে এখন সরাসরি View এবং androidx.savedstate.findViewTreeSavedStateRegistryOwner এর Kotlin এক্সটেনশন মেথডগুলো ইম্পোর্ট ও ব্যবহার করতে হবে। এটি findViewTreeSavedStateRegistryOwner এর savedstate-ktx API-কে প্রতিস্থাপন করে।

আচরণগত পরিবর্তন

  • সংরক্ষণ করার মতো কোনো স্টেট না থাকলে SavedStateRegistry এখন আর একটি খালি বান্ডেল সংরক্ষণ করে না।

সংস্করণ 1.2.0-rc01

১১ মে, ২০২২

androidx.savedstate:savedstate:1.2.0-rc01 এবং androidx.savedstate:savedstate-ktx:1.2.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

ডকুমেন্টেশন পরিবর্তন

  • SavedStateRegistryOwner Kdocs আপডেট করা হয়েছে, যাতে মালিকের দায়িত্ব এবং চুক্তি স্পষ্ট করা যায় যে কীভাবে সে ইন্টারফেসটি ইমপ্লিমেন্ট করবে বা কখন SavedStateRegistryController এর মেথডগুলো কল করবে। ( Iefc95 , b/228887344 )

সংস্করণ 1.2.0-beta01

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

androidx.savedstate:savedstate:1.2.0-beta01 এবং androidx.savedstate:savedstate-ktx:1.2.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

এপিআই পরিবর্তন

  • SavedStateRegistry এবং ViewTreeSavedStateRegistryOwner ক্লাস দুটিকে কোটলিনে নতুন করে লেখা হয়েছে। ViewTreeSavedStateRegistryOwner ক্ষেত্রে, কোটলিনে লেখা ক্লাসগুলোর জন্য এটি একটি সোর্স-অসামঞ্জস্যপূর্ণ পরিবর্তন - পূর্বে সেট করা কোনো মালিককে সেট করতে এবং খুঁজে বের করতে, আপনাকে এখন সরাসরি androidx.savedstate.setViewTreeSavedStateRegistryOwner এবং androidx.savedstate.findViewTreeSavedStateRegistryOwner এর কোটলিন এক্সটেনশন মেথডগুলো View এবং ব্যবহার করতে হবে। এটি findViewTreeSavedStateRegistryOwner এর savedstate-ktx API-কে প্রতিস্থাপন করে। এটি বাইনারি সামঞ্জস্যপূর্ণ এবং জাভা প্রোগ্রামিং ভাষায় লেখা ইমপ্লিমেন্টেশনগুলোর জন্য সোর্স সামঞ্জস্যপূর্ণ থাকে। ( b/220191285 )

সংস্করণ 1.2.0-alpha02

৬ এপ্রিল, ২০২২

androidx.savedstate:savedstate:1.2.0-alpha02 এবং androidx.savedstate:savedstate-ktx:1.2.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha02-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

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

  • এখন আপনি getSavedStateProvider() এর মাধ্যমে একটি SavedStateRegistry থেকে পূর্বে নিবন্ধিত একটি SavedStateProvider পুনরুদ্ধার করতে পারবেন। ( I7ea47 , b/215406268 )

এপিআই পরিবর্তন

  • SavedStateRegistryOwner , SavedStateRegistryController , এবং Recreator ক্লাসগুলো কোটলিনে নতুন করে লেখা হয়েছে। SavedStateRegistryOwner ক্ষেত্রে, কোটলিনে লেখা ক্লাসগুলোর জন্য এটি একটি সোর্স-অসামঞ্জস্যপূর্ণ পরিবর্তন — এখন আপনাকে আগের getSavedStateRegistry() ফাংশনটি ইমপ্লিমেন্ট করার পরিবর্তে savedStateRegistry প্রপার্টিটি ওভাররাইড করতে হবে। জাভা প্রোগ্রামিং ভাষায় লেখা ইমপ্লিমেন্টেশনগুলোর জন্য এটি বাইনারি এবং সোর্স উভয় ক্ষেত্রেই সামঞ্জস্যপূর্ণ। ( b/220191285 )

সংস্করণ 1.2.0-alpha01

২৬ জানুয়ারী, ২০২২

androidx.savedstate:savedstate:1.2.0-alpha01 এবং androidx.savedstate:savedstate-ktx:1.2.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

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

  • SavedStateRegistryController এখন performAttach() এর মাধ্যমে SavedStateRegistry এর আগাম সংযুক্তি (early attachment) করার সুযোগ দেয়। ( Ice4bf )

আচরণগত পরিবর্তন

  • সংরক্ষণ করার মতো কোনো স্টেট না থাকলে SavedStateRegistry আর কোনো খালি বান্ডেল সংরক্ষণ করে না। ( aosp/1896865 , b/203457956 )

সংস্করণ ১.১.০

সংস্করণ ১.১.০

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

androidx.savedstate:savedstate:1.1.0 এবং androidx.savedstate:savedstate-ktx:1.1.0 প্রকাশ করা হয়েছে। সংস্করণ 1.1.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

১.০.০ সংস্করণ থেকে বড় পরিবর্তনসমূহ

  • ViewTreeSavedStateRegistryOwner API : একটি নতুন ViewTreeSavedStateRegistryOwner.get(View) API আপনাকে একটি View ইনস্ট্যান্সের সাপেক্ষে এর অন্তর্ভুক্ত SavedStateRegistry পুনরুদ্ধার করার সুযোগ দেয়। এটি সঠিকভাবে পূরণ করার জন্য আপনাকে অবশ্যই Activity 1.2.0 , Fragment 1.3.0 , এবং AppCompat 1.3.0-alpha01 বা উচ্চতর সংস্করণে আপগ্রেড করতে হবে।
  • savedstate-ktx আর্টিফ্যাক্ট : ViewTreeSavedStateRegistryOwner নিয়ে কাজ করার জন্য findViewTreeSavedStateRegistryOwner() নামক একটি কোটলিন এক্সটেনশনসহ নতুন savedstate-ktx আর্টিফ্যাক্টটি যোগ করা হয়েছে।

সংস্করণ 1.1.0-rc01

১৬ ডিসেম্বর, ২০২০

androidx.savedstate:savedstate:1.1.0-rc01 এবং androidx.savedstate:savedstate-ktx:1.1.0-rc01 1.1.0-beta01 এর পর থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.1.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

সংস্করণ 1.1.0-beta01

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

androidx.savedstate:savedstate:1.1.0-beta01 এবং androidx.savedstate:savedstate-ktx:1.1.0-beta01 সংস্করণ দুটি 1.1.0-alpha01 পর থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.1.0-beta01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

সংস্করণ 1.1.0-alpha01

২০ মে, ২০২০

androidx.savedstate:savedstate:1.1.0-alpha01 এবং androidx.savedstate:savedstate-ktx:1.1.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।

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

  • একটি নতুন ViewTreeSavedStateRegistryOwner.get(View) API আপনাকে একটি View ইনস্ট্যান্সের সাপেক্ষে এর অন্তর্ভুক্ত SavedStateRegistry পুনরুদ্ধার করার সুযোগ দেয়। এটি সঠিকভাবে পূরণ করার জন্য আপনাকে অবশ্যই Activity 1.2.0-alpha05 , Fragment 1.3.0-alpha05 , এবং AppCompat 1.3.0-alpha01 এ আপগ্রেড করতে হবে। ( aosp/1298679 )
  • ViewTreeSavedStateRegistryOwner নিয়ে কাজ করার জন্য findViewTreeSavedStateRegistryOwner() কোটলিন এক্সটেনশনসহ নতুন savedstate-ktx আর্টিফ্যাক্টটি যোগ করা হয়েছে। ( aosp/1299434 )

সংস্করণ ১.০.০

সংস্করণ ১.০.০

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

androidx.savedstate:savedstate:1.0.0 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলো এখানে পাওয়া যাবে।

SavedState 1.0.0-এর প্রধান বৈশিষ্ট্যসমূহ

androidx.savedstate এখন একটি স্থিতিশীল সংস্করণে পরিণত হয়েছে। এটি এমন একগুচ্ছ এপিআই যা ডেভেলপারদের রিস্টোর / সেভইনস্ট্যান্সস্টেট প্রক্রিয়ায় কম্পোনেন্ট প্লাগইন করার সুযোগ দেয়। এই এপিআই-এর প্রধান এন্ট্রি পয়েন্ট হলো SavedStateRegistry , যা consumeRestoredStateForKey ব্যবহার করে পূর্বে সংরক্ষিত স্টেটগুলো পুনরুদ্ধার করার একটি উপায় প্রদান করে এবং সিস্টেমের অনুরোধে একটি সংরক্ষিত স্টেট সরবরাহ করার জন্য registerSavedStateProvider এ একটি কলব্যাক রেজিস্টার করে।

সংস্করণ 1.0.0-rc01

২ জুলাই, ২০১৯

androidx.savedstate:savedstate:1.0.0-rc01 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলো এখানে পাওয়া যাবে।

বাগ সংশোধন

  • ভুল প্রোগার্ড নিয়ম সংশোধন করা হয়েছে ( b/132655499 )

সংস্করণ 1.0.0-beta01

৭ মে, ২০১৯

androidx.savedstate:savedstate:1.0.0-beta01 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলো এখানে পাওয়া যাবে।

সংস্করণ 1.0.0-alpha02

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

androidx.savedstate:savedstate:1.0.0-alpha02 প্রকাশিত হয়েছে। সেভডস্টেট পরিকাঠামোকে সরল করার এবং SavedStateRegistry থেকে জেনেরিকস অপসারণ করার সিদ্ধান্ত নেওয়ায়, androidx.savedstate:savedstate আর্টিফ্যাক্ট androidx.savedstate:savedstate-bundle এবং androidx.savedstate:savedstate-common কে একটি আর্টিফ্যাক্টে একত্রিত করা হয়েছে। ফলে, আলাদা মডিউলের কোনো প্রয়োজন নেই।

এই সংস্করণে অন্তর্ভুক্ত কমিটগুলোর সম্পূর্ণ তালিকা এখানে পাওয়া যাবে।

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

  • SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) যোগ করা হয়েছে। যখন মালিকানা কম্পোনেন্টটি পুনরায় চালু হবে, তখন প্রদত্ত ক্লাসটি ইনস্ট্যানশিয়েট করা হবে এবং AutoRecreated.onRecreated মেথডটি রান হবে।

এপিআই পরিবর্তন

  • SavedStateRegistry<T> থেকে জেনেরিকগুলো সরানো হয়েছে
  • AbstractSavedStateRegistry ও BundlableSavedStateRegistry সরিয়ে ফেলা হয়েছে, এর পরিবর্তে সাধারণ SavedStateRegistry ব্যবহার করুন।
  • BundleSavedStateRegistryOwner নাম পরিবর্তন করে SavedStateRegistryOwner রাখা হয়েছে।

সংস্করণ 1.0.0-alpha01

১৭ ডিসেম্বর, ২০১৮

এটি SavedState এর প্রথম রিলিজ।

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

androidx.savedstate হলো একগুচ্ছ নতুন আলফা এপিআই, যা ডেভেলপারদের restore / saveInstanceState প্রক্রিয়ায় কম্পোনেন্ট প্লাগইন করার সুযোগ দেয়। এই এপিআই-এর প্রধান এন্ট্রি পয়েন্ট হলো SavedStateRegistry<T> , যা consumeRestoredStateForKey মাধ্যমে পূর্বে সেভ করা স্টেট পুনরুদ্ধার করার একটি উপায় প্রদান করে এবং সিস্টেমের অনুরোধে সেভ করা স্টেট সরবরাহ করার জন্য registerSavedStateProvider এ একটি কলব্যাক রেজিস্টার করে।