নেভিগেশন ইভেন্ট

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

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

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

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

গ্রোভি

dependencies {
    implementation "androidx.navigationevent:navigationevent:1.2.0-alpha01"
}

কোটলিন

dependencies {
    implementation("androidx.navigationevent:navigationevent:1.2.0-alpha01")
}

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

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

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

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

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

সংস্করণ ১.২

সংস্করণ 1.2.0-alpha01

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

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

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

  • androidx.benchmark এর minSdk এখন ২৪। ( Ic2a85 )
  • অনিয়ন্ত্রিত ফরোয়ার্ড ন্যাভিগেশন ইভেন্টগুলির ট্র্যাকিং এবং টেস্টিং সক্ষম করতে TestNavigationEventDispatcherOwner-এ onForwardCompletedFallback যোগ করুন। ( I6bbd7 )
  • টেস্টে ন্যাভিগেশন ইভেন্ট সিমুলেট করা সহজ করার জন্য TestNavigationEventDispatcherOwner-এ navigationEventInput যোগ করুন। ( I3ef48 )

বাগ সংশোধন

  • এপিআই তথ্য পরিমার্জন করে ( Ia8066 )
  • সংযোগ বিচ্ছিন্ন ইনপুটগুলিতে পাঠানো নেভিগেশন ইভেন্টগুলি উপেক্ষা করুন। পূর্বে, একটি অপসারিত ইনপুটে ইভেন্ট পাঠালে একটি IllegalStateException থ্রো হতো। ( I1a8bc , b/515890298 )
  • Compose Multiplatform 1.11.0-এ আপগ্রেড করার সময় JetBrains-এর পুরোনো ফর্ক সংস্করণগুলির সাথে প্রতীকের পুনরাবৃত্তি রোধ করুন। ( I4cc4d )

এই আর্টিফ্যাক্টটির জন্য কোনো রিলিজ নোট নেই।

সংস্করণ ১.১

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

১৭ জুন, ২০২৬

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

বাগ সংশোধন

  • Compose নির্ভরতা সংস্করণ 1.11.2-এ আপডেট করুন। ( a5e9259 )

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

০৬ মে, ২০২৬

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

বাগ সংশোধন

  • অ্যান্ড্রয়েড স্টুডিও প্রিভিউতে প্রেডিক্টিভ ব্যাক চালু করার জন্য ইন্সপেকশন মোডে থাকাকালীন নো-অপ NavigationEventHandler সরিয়ে ফেলা হয়েছে।

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

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

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

সংস্করণ 1.1.0-rc01

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

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

বাগ সংশোধন

  • Compose compileSdk এপিআই ৩৭-এ আপডেট করা হয়েছে। এর মানে হলো, Compose ব্যবহার করার জন্য ন্যূনতম এজিপি সংস্করণ ৯.২.০ প্রয়োজন। ( Id45cd , b/413674743 )

সংস্করণ 1.1.0-beta01

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

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

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

  • অনিয়ন্ত্রিত ফরোয়ার্ড নেভিগেশন ইভেন্টগুলির জন্য একটি ডিফল্ট সিস্টেম আচরণ সক্রিয় করতে, NavigationEventDispatcherOnForwardCompletedFallback যোগ করুন। ( Iac620 , b/489138116 )

সংস্করণ 1.1.0-alpha01

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

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

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

  • NavigationEvent-Compose-এ সমস্ত Kotlin Multiplatform (KMP) টার্গেট সমর্থন করুন। LocalView থেকে ওনার রেজোলিউশনকে বিচ্ছিন্ন করুন, যাতে প্ল্যাটফর্ম হোস্টগুলি একটি ডিফল্ট LocalNavigationEventDispatcherOwner প্রদান করতে পারে এবং একই সাথে Android-এ LocalView একটি নিরাপদ ফলব্যাক হিসেবে বজায় রাখতে পারে। ( Iae980 , b/434940570 , Iccf58 )

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

  • অ্যান্ড্রয়েডের BackEvent এবং NavigationEvent এর মধ্যে রূপান্তর করার জন্য NavigationEvent.toBackEvent() এবং BackEvent.toNavigationEvent() এক্সটেনশন ফাংশন যোগ করুন। ( Ie3b71 , b/477001292 )

সংস্করণ ১.০

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

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

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

বাগ সংশোধন

  • অ্যান্ড্রয়েড স্টুডিও প্রিভিউতে NavigationEventHandler ব্যবহার করার সময় ক্র্যাশ হওয়ার সমস্যাটি সমাধান করা হয়েছে। হ্যান্ডলারটি এখন ইন্সপেকশন মোড শনাক্ত করে এবং কিছুই করে না, ফলে কোনো ডিসপ্যাচার ছাড়াই প্রিভিউটি রেন্ডার হতে পারে। ( I370f2 , b/454313986 )।

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

০৩ ডিসেম্বর, ২০২৫

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

বাগ সংশোধন

  • rememberNavigationEventDispatcherOwner() দিয়ে তৈরি করা চাইল্ড NavigationEventDispatcher এর মতো ডিভাইস ডিসপোজ করার সময় একটি ConcurrentModificationException সমাধান করা হয়েছে। ( ec68a9 , b/454363524 )

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

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

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

১.০.০ এর প্রধান বৈশিষ্ট্যসমূহ:

Navigation Event লাইব্রেরি এখন স্থিতিশীল! Navigation Event হলো অ্যান্ড্রয়েডএক্স-এর একটি লাইব্রেরি, যা অ্যান্ড্রয়েড (এবং অন্যান্য প্ল্যাটফর্মে) সিস্টেম-ব্যাক এবং প্রেডিক্টিভ ব্যাক-এর মতো সিস্টেম-স্তরের ইন্টারঅ্যাকশনগুলো পরিচালনা করে।

  • To handle NavigationEvent s, you can implement your own NavigationEventHandler that overrides the desired functions. You then need to add the handler to a NavigationEventDispatcher . Starting with the Activity 1.12.0 release, ComponentActivity implements the new NavigationEventDispatcherOwner interface, which provides a dispatcher that is ready to use :

    // The NavigationEventInfo provides information about a navigation state
    object CurrentInfo : NavigationEventInfo()
    
    // you can retrieve this from any component that is a NavigationEventDispatcherOwner
    // or you can instantiate your own custom dispatcher
    val dispatcher = myActivity.navigationEventDispatcher
    
    val myHandler = object : NavigationEventHandler<NavigationEventInfo>(
                initialInfo = CurrentInfo,
                isBackEnabled = true
            ) {
                override fun onBackStarted(event: NavigationEvent) {
                    // Prepare for the back event
                }
    
                override fun onBackProgressed(event: NavigationEvent) {
                    // Use event.progress for predictive animations
                }
    
                // This is the required method for final event handling
                override fun onBackCompleted() {
                    // Complete the back event
                }
    
                override fun onBackCancelled() {
                    // Cancel the back event
                }
            }
    
    dispatcher.addHandler(myHandler)
    
  • The navigationevent:navigationevent-compose module provides a convenient compose function NavigationBackHandler that automatically hooks up the handler to the closest LocalNavigationEventDispatcherOwner 's NavigationEventDispatcher and allows developers to provide the desired behavior as parameters:

    object CurrentInfo : NavigationEventInfo()
    object PreviousInfo : NavigationEventInfo()
    
    val navEventState = rememberNavigationEventState(
      currentInfo = CurrentInfo,
      backInfo = PreviousInfo
    )
    
    // Inside composition
    NavigationBackHandler(
        State = navEventState,
        isBackEnabled = true,
        // optional
        onBackCancelled = { // Cancel the back event },
        // required
        onBackCompleted = { // Complete the back event } ,
    )
    

Compose-এ এই প্যাটার্নটি ব্যবহার করে NavigationEventState কে হোইস্ট করা খুব সহজ হয়ে যায় এবং এর ফলে বিভিন্ন Composable এটিকে পর্যবেক্ষণ করতে পারে (যেমন Navigation3-এর ক্ষেত্রে, যেখানে আপনি NavDisplay থেকে স্টেটটিকে বাইরে হোইস্ট করতে পারেন)।

  • প্রতিটি NavigationEventDispatcher একটি প্যারেন্ট ডিসপ্যাচার প্রদান করার ক্ষমতা রয়েছে, যা কম্পোজ এবং নন-কম্পোজ উভয় ক্ষেত্রেই প্রযোজ্য। এটি ডেভেলপারদের একটি শ্রেণিবদ্ধ কাঠামো তৈরি করার সুযোগ দেয়, যেখানে একাধিক ডিসপ্যাচারকে একটিমাত্র প্যারেন্ট দ্বারা পরিচালনা করা যায়। একটি প্যারেন্ট থাকার ফলে, যেসব ডিসপ্যাচারের দলকে নিষ্ক্রিয় বা ডিসপোজ করার প্রয়োজন হতে পারে, তাদের পরিচালনা করা তুলনামূলকভাবে সহজ হয়ে যায়।

    // Non-Compose
    val parentDispatcher = NavigationEventDispatcher()
    val childDispatcher = NavigationEventDispatcher(parent = parentDispatcher)
    
    // Compose
    val composeChildDispatcher = rememberNavigationEventDispatcher(
        // This defaults to `LocalNavigationEventDispatcherOwner.current`
        // Must explicitly provide null to have an unparented dispatcher created here
        parent = NavigationEventDispatch() 
    )
    
  • The library also makes it possible to provide signals directly to the NavigationEventDispatcher via a NavigationEventInput . NavigationEventInput s acts as the "input" side of the navigation system, translating platform-specific events (like system back gestures or button clicks) into standardized events that can be sent to a NavigationEventDispatcher . The navigationevent:navigationevent module currently provides 2 NavigationEventInput s: a more generic DirectNavigationEventInput to allow any event to be dispatched and an Android specific OnBackInvokedInput that allows a NavigationEventDispatcher to support system back and the predictive back gesture. If you implement your own dispatcher (instead of using the one provided by ComponentActivity ) you must manually add your input:

    val dispatcher = NavigationEventDispatcher()
    
    dispatcher.addInput(DirectNavigationEventInput())
    dispatcher.addInput(OnBackInvokedDefaultInput(invoker))
    

সংস্করণ 1.0.0-rc01

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

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

সংস্করণ 1.0.0-beta01

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

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

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

  • NavigationEvent.touchX এবং NavigationEvent.touchY এর জন্য FloatRange অ্যানোটেশনটি সংশোধন করুন। এই মানগুলি পরম পিক্সেল স্থানাঙ্ককে প্রতিনিধিত্ব করে এবং এদের কোনো 1.0 ঊর্ধ্বসীমা নেই। ( I4b205 , b/445989313 )
  • NavigationEventDispatcherOwner কম্পোজেবলটিকে rememberNavigationEventDispatcherOwner এ রিফ্যাক্টর করুন। ফাংশনটি এখন সরাসরি NavigationEventDispatcherOwner রিটার্ন করে। কোনো সাব-কম্পোজিশনে এই ওনারটি সরবরাহ করতে CompositionLocalProvider ব্যবহার করুন। ( I874b2 , b/444446629 )

সংস্করণ 1.0.0-alpha09

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

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

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

  • Idle() ইনস্ট্যানশিয়েট করার পরিবর্তে সরাসরি NavigationEventTransitionState.Idle সিঙ্গেলটন অবজেক্টটি ব্যবহার করুন। ( Ic7d9e , b/444734264 )
  • সুবিধার্থে কনস্ট্রাক্টরগুলোকে অভ্যন্তরীণ করুন; সরাসরি নির্মাণের পরিবর্তে public NavigationEventDispatcher.history এর মাধ্যমে ইনস্ট্যান্স সংগ্রহ করুন। ( I3b7e0 , b/444734264 )
  • rememberNavigationEventState এর মাধ্যমে NavigationEventState তৈরি করা আবশ্যক; কনস্ট্রাক্টরটি এখন অভ্যন্তরীণ। ( Ie143c , b/444734264 )
  • fallbackOnBackPressed ব্যবহার এবং কনস্ট্রাক্টর প্যারামিটারের পরিবর্তে onBackCompletedFallback গ্রহণ করা হয়েছে। এর আচরণ অপরিবর্তিত; এটি শুধুমাত্র সম্পন্ন হওয়া কিন্তু হ্যান্ডেল না করা ব্যাক ইভেন্টের ক্ষেত্রেই কল করা হয়। ( Idabe9 , b/444734264 )
  • The primary constructor of NavigationEventHistory(mergedHistory, currentIndex) is now internal . External consumers must use the public constructors (either the empty constructor or the partition-based constructor) to create instances. ( I1c047 , b/444734264 )
  • View.setViewTreeNavigationEventDispatcherOwner nullable owner গ্রহণ করার উপযোগী করুন ( Ic9eb6 , b/444436762 )
  • NavigationEventInfo এখন একটি interface পরিবর্তে একটি abstract class । সমস্ত কাস্টম ইমপ্লিমেন্টেশনকে এই ক্লাস থেকে ইনহেরিট করার জন্য আপডেট করুন (যেমন, data class MyInfo : NavigationEventInfo() )। ( I1e59c , b/444734264 )
  • পুরানো NavigationEventDispatcher.state প্রপার্টি এবং getState<T>() ফাংশন সরিয়ে ফেলা হয়েছে। নতুন, পৃথক dispatcher.transitionState (জেসচার অগ্রগতির জন্য) এবং dispatcher.history (ন্যাভিগেশন স্ট্যাকের জন্য) ফ্লো ব্যবহার করুন। ( Ic2ceb , b/444734264 )
  • NavigationEventInput.onInfoChanged(...) কলব্যাকটি প্রতিস্থাপিত হয়েছে। একটি একক NavigationEventHistory অবজেক্ট হিসাবে আপডেটগুলি গ্রহণ করতে নতুন onHistoryChanged(history: NavigationEventHistory) কলব্যাকটি প্রয়োগ করুন। ( I23e0b , b/444734264 )
  • Introduce a new global NavigationEventDispatcher.history StateFlow . This non-generic flow allows observers to subscribe only to changes to the navigation stack and remains stable during gesture progress. This is the counterpart to transitionState . ( I1db10 , b/444734264 )
  • একটি নতুন গ্লোবাল NavigationEventDispatcher.transitionState StateFlow চালু করুন। এই নন-জেনেরিক ফ্লো অবজারভারদেরকে হিস্ট্রি থেকে আলাদাভাবে শুধুমাত্র ফিজিক্যাল জেসচার স্টেট (Idle/InProgress)-এ সাবস্ক্রাইব করার সুযোগ দেয়। ( I171fa , b/444734264 )
  • NavigationEventHistoryState ক্লাসটি চালু করা হলো। এটি জেসচার স্টেট থেকে আলাদাভাবে নেভিগেশন তথ্যের ইতিহাস পর্যবেক্ষণের জন্য মূল এপিআই হিসেবে কাজ করবে। ( I81ca5 , b/444734264 )
  • NavigationEvent এখন @Immutable হিসেবে চিহ্নিত করা হয়েছে, যা Compose Compiler-কে রিকম্পোজিশন অপ্টিমাইজ করতে সক্ষম করে। ( If78c7 , b/444734264 )
  • navigationevent-compose হ্যান্ডলার API-গুলো আপডেট করা হয়েছে। NavigationEventHandler এবং NavigationBackHandler (এবং এর বিভিন্ন সংস্করণ) এখন একটি নতুন ওভারলোড সমর্থন করে যা একটি হোয়িস্টেড NavigationEventState গ্রহণ করে। সাধারণ ওভারলোডগুলো (যা currentInfo গ্রহণ করে) অপরিবর্তিত রাখা হয়েছে এবং এখন অভ্যন্তরীণভাবে এই নতুন স্টেট মডেলটি ব্যবহার করে। ( Ic3251 , b/444734264 )
  • Add the new @Stable NavigationEventState<T> state holder to the navigationevent-compose library. This object combines local history with local gesture state and will be the primary link between rememberNavigationEventState and NavigationEventHandler . ( Ifb69f , b/444734264 )
  • Add a new public, read-only transitionState: TransitionState property to NavigationEventHandler . Handlers now maintain their own transition state, which external systems can observe. ( I9acd2 , b/444734264 )
  • নতুন TransitionState সিলড ক্লাসটি চালু করা হলো। এটি নেভিগেশন হিস্ট্রি থেকে আলাদাভাবে জেসচার স্টেট পর্যবেক্ষণের জন্য মূল এপিআই হিসেবে কাজ করবে। ( Id4beb , b/444734264 )
  • NavigationEventHandlercurrentInfo , backInfo , এবং forwardInfo পাবলিক, রিড-অনলি প্রোপার্টি হিসেবে প্রকাশ করুন। ( Ia7636 , b/444734264 )
  • NavigationEventHandler এর ইমপ্লিমেন্টেশনগুলোকে এখন থেকে বেস কনস্ট্রাক্টরে একটি initialInfo: T ভ্যালু প্রদান করতে হবে। ( Idcfea , b/444734264 )
  • OnBackInvokedInput OnBackInvokedOverlayInput অথবা OnBackInvokedDefaultInput দ্বারা প্রতিস্থাপন করুন। ( I5323f , b/428948766 )
  • NavigationEventState @Immutable হিসেবে চিহ্নিত করুন। এটি নিশ্চিত করে যে এই স্টেট পর্যবেক্ষণকারী Composable-গুলি সঠিকভাবে রিকম্পোজিশন এড়িয়ে যেতে পারে, যার ফলে Compose-এর পারফরম্যান্স উন্নত হয়। ( I399c8 )
  • NavigationEventInfo.NotProvided কে NavigationEventInfo.None; রেফারেন্স আপডেট করুন। আচরণে কোনো পরিবর্তন হবে না। ( I5e2d4 )
  • NavigationEventInfo এখন @Immutable হিসেবে চিহ্নিত করা হয়েছে, যা Compose Compiler-কে রিকম্পোজিশন অপ্টিমাইজ করতে সক্ষম করে। ( I7c112 )
  • ব্যাক কমপ্লিশন ফলব্যাকের জন্য মজাদার ইন্টারফেসের মাধ্যমে জাভার কর্মদক্ষতা উন্নত করুন। ( I8a860 )
  • onHasEnabledHandlerChanged onHasEnabledHandlersChanged এ রিনেম করুন। এটি স্পষ্ট করে যে কলব্যাকটি শুধুমাত্র একটি হ্যান্ডলারের নয়, বরং সমস্ত হ্যান্ডলারের সম্মিলিত সক্রিয়করণ অবস্থার উপর রিপোর্ট করে। ( I1af61 , b/443711297 )
  • NavigationEventDispatcher থেকে hasEnabledHandler() সরিয়ে দিন NavigationEventDispatcher; এর পরিবর্তে NavigationEventInput.onHasEnabledHandlersChanged ব্যবহার করুন। ( Idef72 , b/443711297 )
  • ন্যাভিগেশন হিস্ট্রির পরিবর্তন সম্পর্কে লিসেনারদের অবহিত করতে NavigationEventInputonInfoChanged কলব্যাক যোগ করুন। এটি বর্তমান, পূর্ববর্তী এবং পরবর্তী স্ট্যাকের সম্পূর্ণ প্রেক্ষাপট প্রদান করে, যা ইনপুটগুলিকে প্রাসঙ্গিক তথ্যের উপর ভিত্তি করে প্রতিক্রিয়া জানাতে সক্ষম করে। ( I69a8b , b/443282983 )
  • NavigationEvent এর swipeEdge একটি @IntDef পরিণত করুন ( Icee54 , b/443950342 )
  • একটি ডিসপ্যাচারকে একটি নির্দিষ্ট প্রায়োরিটিতে সীমাবদ্ধ করতে NavigationEventDispatcher.addInput এ একটি priority প্যারামিটার যোগ করুন; এর ফলে onHasEnabledCallbacksChanged এর মতো ইভেন্টগুলো এখন কেবল তখনই ফায়ার হবে যখন সেই প্রায়োরিটির কলব্যাকগুলো পরিবর্তিত হবে। ( I3e488 , b/443711297 )
  • স্পষ্টতার জন্য NavigationEventDispatcher প্যারামিটারটির নাম parentDispatcher থেকে parent-এ পরিবর্তন করুন। ( Id4f1f , b/443801782 )
  • জাভা ব্যবহারকারীদের জন্য @IntDef এর পক্ষে NavigationEventPriority অপসারণ করুন ( I10a9f , b/440514265 )
  • Enforce navigation handler contract. If your NavigationEventHandler sets isBackEnabled or isForwardEnabled to true , you must now override onBackCompleted or onForwardCompleted respectively. The default implementations now throw an exception to prevent silent failures. ( I17c62 )
  • ন্যাভিগেশন ইভেন্ট হ্যান্ডলার যোগ করার সময় বৈধ প্রায়োরিটি মান প্রয়োগ করুন। এখন থেকে অসমর্থিত প্রায়োরিটি দিয়ে addHandler কল করলে একটি IllegalArgumentException থ্রো হবে, যা সমস্ত টার্গেট প্ল্যাটফর্মে ভুল ব্যবহারের জন্য তাৎক্ষণিক প্রতিক্রিয়া প্রদান করবে। ( I3c474 )

বাগ সংশোধন

  • addHandler আইডম্পোটেন্ট করুন; সদৃশ নিবন্ধন উপেক্ষা করুন। ( I052aa , b/444734264 )
  • পুনর্গঠনের সময় NavigationEventState প্রোপার্টিগুলো সিঙ্ক করে রাখুন। ( Ib3b4d , b/444734264 )
  • নিশ্চিত করুন যে NavigationEventInputs নিবন্ধনের সাথে সাথেই বর্তমান প্রাসঙ্গিক তথ্য (বর্তমান, পিছনে, সামনে) পায়। ( Ie65bf , b/443282983 )

সংস্করণ 1.0.0-alpha08

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

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

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

  • Introduce a lambda-based NavigationEventHandler API that replaces the Flow-based handler. Handle back and forward gestures with simple callbacks instead of collecting flows, reducing boilerplate and avoiding cancellation issues. Provide NavigationBackHandler and NavigationForwardHandler as targeted convenience APIs. Remove the Flow-based NavigationEventHandler ; migrate to the new callbacks. ( I23bac , b/436248277 )
  • প্যাসিভ লিসেনারদের সম্মিলিত ব্যাক ইনফোর মাধ্যমে সম্পূর্ণ নেভিগেশন ব্যাক স্ট্যাক অ্যাক্সেস করার অনুমতি দিন। UI-গুলিকে শুধুমাত্র শীর্ষ-স্থানীয় কলব্যাকে সীমাবদ্ধ না রেখে প্রিভিউ এবং নেস্টেড নেভিগেশন হিস্ট্রি রেন্ডার করতে সক্ষম করুন। ( I7a510 , b/436248277 )
  • ন্যাভিগেশন অবস্থা স্পষ্ট করতে এবং নেস্টেড হ্যান্ডলারের মাধ্যমে ফরোয়ার্ড ন্যাভিগেশন সমর্থন করার জন্য একটি সুস্পষ্ট ব্যাক/কারেন্ট/ফরোয়ার্ড মডেল চালু করুন। ( Ib86da , b/420443609 )
  • NavigationEventCallbackonForward* মেথড এবং isForwardEnabled যোগ করুন। ( Ic100f , b/436248290 )
  • NavigationEventInput এ ফরওয়ার্ড নেভিগেশন সাপোর্ট যোগ করুন। ( I5734b )

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

  • TestNavigationEventCallback ব্যবহার করে ফরওয়ার্ড ন্যাভিগেশন ইভেন্টগুলোর টেস্টিং সক্ষম করুন। isForwardEnabled এবং onForward* হুক ব্যবহার করুন। ( I21fb5 , b/420443609 )
  • NavEventonEvent* কলব্যাকগুলির নাম পরিবর্তন করে onBack* করা হয়েছে। ( I228b3 , b/436248290 )
  • SwipeEdge একটি ইনলাইন ক্লাসে রূপান্তর করুন। ( Id5e01 )
  • Make the navigationevent library interoperable with Java. All public APIs are now fully accessible from Java code, enabling seamless integration into mixed-language or Java-only projects. ( Ibc944 , I5465f , I9fb1e , b/440532890 b/443040294 )
  • NavigationEventCallback নাম পরিবর্তন করে NavigationEventHandler রাখার মাধ্যমে API-এর ভূমিকা স্পষ্ট করুন। এই পরিবর্তনটি বহু-পর্যায়ের নেভিগেশন জেসচার পরিচালনার জন্য ক্লাসটির উদ্দেশ্যকে আরও ভালোভাবে প্রতিফলিত করে। সংশ্লিষ্ট addCallback মেথডটির নাম এখন addHandler । ( I2492a , b/443040331 )

বাগ সংশোধন

  • ফরওয়ার্ড নেভিগেশনের সময় ব্যাক ফলব্যাক চালু হওয়া প্রতিরোধ করুন। ( I74814 , b/436248290 )
  • প্রিডিক্টিভ ফরোয়ার্ড নেভিগেশনের জন্য সমর্থন যোগ করা হয়েছে। NavigationEvent API-গুলো এখন ব্যাক এবং ফরোয়ার্ড উভয় জেসচারই পরিচালনা করতে পারে, যার ফলে উভয় নেভিগেশন দিকের জন্য সামঞ্জস্যপূর্ণ অ্যানিমেশন পাওয়া যায়। ( Idc98c , b/436248290 )
  • যখন কোনো চাইল্ড NavigationEventDispatcherOwner সরিয়ে ফেলা হয়, তখন রিকম্পোজিশনের সময় একটি IllegalStateException ক্র্যাশ প্রতিরোধ করুন। ( Iff50c , b/412629020 )
  • Passive listeners can now access the full navigation back stack through combined back info, enabling UIs to render previews and nested navigation history instead of being limited to the top-most callback. ( I7a510 , b/436248277 )

সংস্করণ 1.0.0-alpha07

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

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

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

  • NavigationEventDispatcher.onHasEnabledCallbacksChanged মুছে ফেলুন। ( I50e97 )
  • NavigationEventCallback.onEventCompleted() কে অ্যাবস্ট্রাক্ট করুন। ( I36b38 )
  • NavigationEventCallback#on* মেথডগুলোকে protected এ পরিবর্তন করুন। সেগুলোকে ওভাররাইড করার জন্য কলিং কোড আপডেট করুন। ( I6b691 )
  • DirectNavigationEventInput ফাংশনগুলোর নাম পরিবর্তন করুন। ( Iffb62 )
  • NavigationEventInput.onAttach কে onAdded এ পুনঃনামকরণ করুন। ( I2d0b8 )
  • NavigationEventInput.onDetach কে onRemoved এ পুনঃনামকরণ করুন। ( I2d0b8 )
  • NavigationEventInputHandler নাম পরিবর্তন করে NavigationEventInput রাখুন। ( I676a4 )
  • NavigationEventInput.onHasEnabledCallbacksChanged@EmptySuper যোগ করুন। ( If9853 )
  • NavigationEventInputHandleronAttach প্রয়োগ করুন। ( I03648 )
  • NavigationEventInputHandleronDetach প্রয়োগ করুন। ( I03648 )
  • তৈরির সময় ডিফল্টরূপে NavigationEventCallback সক্রিয় করা হয়। ( Ic0188 )
  • NavigationEventInput.addOnHasEnabledCallbacksChangedCallback কে NavigationEventInput.onHasEnabledCallbacksChanged দিয়ে প্রতিস্থাপন করুন। ( I64e93 )
  • NavigationEventDispatcher.addInput এর জন্য প্রধান থ্রেড প্রয়োজন। ( Ic2930 )
  • NavigationEventDispatcher.removeInput এর জন্য প্রধান থ্রেড প্রয়োজন। ( Ic2930 )
  • Remove Dispatcher.addOnHasEnabledCallbacksChangedCallback . Replace with Dispatcher.onHasEnabledCallbacksChanged . ( Ida3e3 , b/436530096 )

বাগ সংশোধন

  • একটি বাগ সংশোধন করা হয়েছে যেখানে ইতিমধ্যে সংযুক্ত একটি হ্যান্ডলার যোগ করা বা অসংযুক্ত হ্যান্ডলার অপসারণ করার ফলে ভুল লাইফসাইকেল লজিক চালু হয়ে যাচ্ছিল। ( I9e47b )

সংস্করণ 1.0.0-alpha06

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

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

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

প্যাসিভ লিসেনার এপিআই

এখন আপনি যেকোনো নেভিগেশন হোস্ট থেকে কাস্টম প্রাসঙ্গিক তথ্য পাঠাতে পারবেন এবং আপনার UI-এর যেকোনো জায়গা থেকে পরোক্ষভাবে জেসচার অবস্থার পরিবর্তন পর্যবেক্ষণ করতে পারবেন । এটি প্রেডিক্টিভ ব্যাক এবং অন্যান্য জেসচার-চালিত নেভিগেশনের জন্য কনটেক্সট-অ্যাওয়্যার অ্যানিমেশন সক্ষম করে।

এই বৈশিষ্ট্যটির দুটি অংশ রয়েছে:

  1. তথ্য প্রদান - নিজস্ব ডেটা বহন করার জন্য NavigationEventInfo ব্যবহার করুন।
  2. স্টেট ব্যবহার - জেসচারের অগ্রগতি এবং কনটেক্সট পর্যবেক্ষণ করতে dispatcher.state ( NavigationEventState ) ব্যবহার করুন।
  • NavigationEventCallback এখন এক কলে জেসচার কনটেক্সট সেট করার জন্য setInfo(currentInfo, previousInfo) মেথডটি প্রকাশ করেছে ( I1d5e7 , b/424470518 )।
  • NavigationEventHandler একটি নতুন ওভারলোড যোগ করেছে যা currentInfo এবং previousInfo গ্রহণ করে, যার ফলে এটি Compose অ্যাপে কনটেক্সট সরবরাহের জন্য প্রধান API-তে পরিণত হয়েছে ( I6ecd3 , b/424470518 )।

উদাহরণ:

  data class MyScreenInfo(val screenName: String) : NavigationEventInfo

  NavigationEventHandler(
      enabled = true,
      currentInfo = MyScreenInfo("Details Screen"),
      previousInfo = MyScreenInfo("Home Screen")
  ) { /* Handle back completion */ }
  • NavigationEventDispatcher এখন dispatcher.state এবং dispatcher.getState<T>() উন্মুক্ত করেছে ( If7fae , Ia90ca , b/424470518 )। এই StateFlow ভিত্তিক API-গুলো যেকোনো UI-কে সরাসরি ইভেন্টটি হ্যান্ডেল না করেই জেসচারের অগ্রগতি এবং প্রাসঙ্গিক ডেটা পর্যবেক্ষণ করতে দেয়।

উদাহরণ:

  val gestureState by LocalNavigationEventDispatcherOwner.current!!
      .navigationEventDispatcher
      .state
      .collectAsState()

  val progress = gestureState.progress // Returns latestEvent.progress or 0F

  when (val state = gestureState) {
      is InProgress -> {
          val toScreen = state.currentInfo as MyScreenInfo
          val fromScreen = state.previousInfo as MyScreenInfo
          println("Navigating from ${fromScreen.screenName} to ${toScreen.screenName}")
      }
      is Idle -> { /* Idle state */ }
  }
  • NavigationEventState ( I7b196 )-এ progress প্রপার্টি যোগ করুন যা ইভেন্ট চলাকালীন latestEvent.progress রিটার্ন করে, অন্যথায় 0F রিটার্ন করে:

    val progress = state.progress
    
  • Add NavigationEventDispatcherOwner composable to create, link, and dispose of NavigationEventDispatcher instances hierarchically. Enable dynamic control of the dispatcher's enabled state and automatic cleanup.

    @Composable
    fun Sample() {
        NavigationEventDispatcherOwner(enabled = true) {
            val localDispatcherOwner = LocalNavigationEventDispatcherOwner.current
        }
    }
    

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

  • NavigationEventCallback থেকে isPassthrough প্যারামিটারটি সরিয়ে ফেলা হয়েছে। ( I99028 , b/424470518 )
  • NavigationEventState কনস্ট্রাক্টরগুলো এখন ইন্টারনাল। পরীক্ষার জন্য, DirectNavigationEventInputHandler এর মাধ্যমে স্টেট আপডেট করুন (ডিফল্ট হলো Idle )। স্টেটকে InProgress এ সেট করতে handleOnStarted বা handleOnProgressed কল করুন, এবং এটিকে Idle এ ফিরিয়ে আনতে handleOnCompleted বা handleOnCancelled কল করুন। NavigationEventInfo আপডেট করতে, NavigationEventCallback.setInfo ব্যবহার করুন। ( I93dca , b/424470518 )
  • সহজ ইনস্ট্যানসিয়েশন এবং টেস্টিং সরলীকরণের জন্য NavigationEvent এ ডিফল্ট প্যারামিটার যোগ করা হয়েছে, যা TestNavigationEvent এর পরিবর্তে ব্যবহার করা উচিত। ( I5dc49 , I232f4 )
  • নির্দিষ্ট বর্তমান/পূর্ববর্তী অবস্থা সহ নেভিগেশন ইভেন্ট পরীক্ষা করার জন্য একটি TestNavigationEventCallback যোগ করা হয়েছে। ( Idd22e , b/424470518 )
  • NavigationEventInputHandler has been made into an abstract class to replace the previous AbstractNavigationEventInputHandler with an implementation in DirectNavigationEventInputHandler ( Iadde5 , Ifed40 I3897c , b/432616296 , b/435416924 )
  • NavigationEventInputHandler এর send* ফাংশনগুলোর প্রিফিক্স পরিবর্তন করে handle* রাখা হয়েছে। ( Iffcaf )
  • OnBackInvokedInputHandler এখন নতুন abstract NavigationInputHandler এক্সটেন্ড করে। ( Ib45aa )
  • NavigationEventDispatcherOwner পরিবর্তন করে এখন একটি প্যারেন্ট ডিসপ্যাচার আবশ্যক করা হয়েছে, যেখানে রুট ডিসপ্যাচার তৈরি করার জন্য আপনাকে অবশ্যই স্পষ্টভাবে null পাস করতে হবে। ( Ia6f64 , b/431534103 )

বাগ সংশোধন

  • NavigationEventDispatcher.dispose() -এ কালেকশন কপি পরিহার করে কার্যকারিতা উন্নত করা হয়েছে। ( I4ab09 )
  • একটি সমস্যার সমাধান করা হয়েছে যেখানে NavigationEventHandler তার enabled অবস্থার পরিবর্তনে সঠিকভাবে সাড়া দিচ্ছিল না। ( Ia5268 , I19bec , I5be5c , b/431534103 )

ডকস আপডেট

  • একটি সমন্বিত ইভেন্ট র‍্যাপার হিসেবে NavigationEvent এর ভূমিকা স্পষ্ট করতে এবং বিভিন্ন নেভিগেশন টাইপের (জেসচার, ক্লিক) ক্ষেত্রে এর প্রপার্টির আচরণ বিশদভাবে বর্ণনা করার জন্য KDocs-কে সম্প্রসারিত করা হয়েছে। ( I91e8d )
  • সিস্টেম ব্যাক হ্যান্ডলিং কম্পোজ এপিআই ( BackHandler , PredictiveBackHandler , NavigationEventHandler )-এর ডকুমেন্টেশন আপডেট করা হয়েছে, যাতে কলব্যাকের ক্রম সম্পর্কিত আচরণ বিশেষভাবে উল্লেখ করা যায়। ( I7ab94 )

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

  • NavigationEvent এখন Compose Runtime 1.9.0-beta03-এর উপর নির্ভরশীল, যা navigationevent-compose আর্টিফ্যাক্টকে সকল KMP টার্গেট সমর্থন করতে সক্ষম করে। ( Ia1b87 )

সংস্করণ 1.0.0-alpha05

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

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

Parent-Child Hierarchy Support:

একটি NavigationEventDispatcher এখন প্যারেন্ট এবং চাইল্ড ডিসপ্যাচার থাকতে পারে, যা একটি শ্রেণিবদ্ধ ট্রি কাঠামো তৈরি করে। এটি চেইনড ডিসপ্যাচারের মাধ্যমে UI-এর কাঠামোগত শ্রেণিবিন্যাস প্রতিফলিত করে, যার ফলে জটিল Compose UI কম্পোনেন্ট জুড়ে নেভিগেশন ইভেন্টগুলিকে আরও নমনীয়ভাবে প্রচার ও পরিচালনা করা যায়। ( I194ac )

  // Create a parent dispatcher that will manage navigation events at a higher level.
  val parentDispatcher = NavigationEventDispatcher()

  // Create a child dispatcher linked to the parent, forming a hierarchy.
  val childDispatcher = NavigationEventDispatcher(parentDispatcher)

The hierarchical isEnabled property allows for top-down control of a dispatcher. When isEnabled is set to false on a dispatcher, it automatically disables all its descendant dispatchers. This feature enables entire branches of the navigation event system to be toggled off efficiently. ( I9e985 )

  // Disabling the child dispatcher disables all its callbacks and any of its children recursively.
  childDispatcher.isEnabled = false

অধিকন্তু, NavigationEventCallback এর isEnabled প্রপার্টিটি এখন এর সংশ্লিষ্ট ডিসপ্যাচারের enabled অবস্থাকে সম্মান করে। এর মানে হলো, একটি কলব্যাককে তখনই enabled বলে গণ্য করা হবে, যখন কলব্যাকটি নিজে এবং এর ডিসপ্যাচার (এর পূর্বসূরিদের সহ) উভয়ই enabled থাকবে, যা কলব্যাক অ্যাক্টিভেশনের উপর সামঞ্জস্যপূর্ণ শ্রেণিবদ্ধ নিয়ন্ত্রণ নিশ্চিত করে। ( I1799a )

  // Create a test callback and add it to the child dispatcher.
  val callback1 = TestNavigationEventCallback(isEnabled = true)
  childDispatcher.addCallback(callback1)

  // Since the childDispatcher is disabled, the callback is effectively disabled as well.
  assertThat(callback1.isEnabled).isFalse()

ডিসপ্যাচার এবং তাদের চাইল্ডদের যথাযথ ক্লিনআপের জন্য একটি নতুন dispose() মেথড চালু করা হয়েছে। dispose() কল করলে মেমরি লিক প্রতিরোধ করার জন্য লিসেনারগুলো বন্ধ হয়ে যায়, রিকার্সিভলি সমস্ত চাইল্ড ডিসপ্যাচার ডিসপোজ হয়ে যায়, ডিসপ্যাচারে রেজিস্টার করা সমস্ত কলব্যাক মুছে যায় এবং এটি তার প্যারেন্ট থেকে আনলিঙ্ক হয়ে যায়। এটি নিশ্চিত করে যে ডিসপ্যাচারগুলোর আর প্রয়োজন না হলে রিসোর্সগুলো সঠিকভাবে রিলিজ হয়। ( I9e985 )

  // Dispose the child dispatcher to clean up resources.
  childDispatcher.dispose()

যদি কোনো ডিসপোজড ডিসপ্যাচারে কোনো পাবলিক মেথড কল করা হয়, তাহলে তাৎক্ষণিকভাবে একটি IllegalStateException থ্রো করা হয়। এটি নীরব ব্যর্থতা প্রতিরোধ করে এবং ডেভেলপারদের ডেভেলপমেন্টের সময় অনুপযুক্ত ব্যবহার শনাক্ত করতে সাহায্য করে। ( Ic2dc3 )

  val callback2 = TestNavigationEventCallback()

  // Attempting to use a disposed dispatcher will throw an exception.
  assertThrows<IllegalStateException> {
      childDispatcher.addCallback(callback2)
  }

দ্রষ্টব্য: আমরা aosp/3692572- এ একটি নতুন NavigationEventDispatcherOwner Composable চালু করব যা Compose UI-এর মধ্যে একটি চাইল্ড ডিসপ্যাচারকে স্বয়ংক্রিয়ভাবে পরিচালনা করে। তবে, এই পরিবর্তনটি বর্তমান রিলিজে অন্তর্ভুক্ত করা হয়নি এবং এটি পরবর্তী রিলিজের জন্য পরিকল্পনা করা হয়েছে।

নেভিগেশন টেস্টিং লাইব্রেরি

  • navigationevent লাইব্রেরির জন্য বিশেষ টেস্টিং ইউটিলিটি প্রদান করতে navigationevent-testing মডিউলটি যোগ করুন। ( 0e50b6 )
  • পরীক্ষার জন্য TestNavigationEventCallback নামে একটি নকল ইউটিলিটি ক্লাস যোগ করুন। এটি কলব্যাক মেথড কলগুলো রেকর্ড করে এবং যাচাইকরণের জন্য প্রাপ্ত NavigationEvent আইটেমগুলো সংরক্ষণ করে। ( 4a0246 )
  • ডিফল্ট মান সহ NavigationEvent ইনস্ট্যান্স তৈরি করতে TestNavigationEvent ফেক ইউটিলিটি ফাংশন যোগ করা হয়েছে, যা ন্যাভিগেশন ইভেন্ট প্রক্রিয়াকরণের জন্য ইউনিট টেস্টকে সহজ করে। ( 3b63f5 )
  • পরীক্ষার জন্য TestNavigationEventDispatcherOwner নামক একটি নকল ইউটিলিটি ক্লাস যোগ করা হয়েছে। এটি টেস্টে ইন্টারঅ্যাকশন যাচাইকরণকে সমর্থন করার জন্য ফলব্যাক এবং এনাবলড-স্টেট-চেঞ্জড ইভেন্টের সংখ্যা ট্র্যাক করে। ( c8753e )

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

  • Move NavigationEventInputHandler from androidMain to commonMain to make it available in KMP common code. Add new public send* methods for dispatching events. Change dispatch functions on NavigationEventDispatcher from public to internal ; users must now use NavigationEventInputHandler to send events. ( Ia7114 )
  • NavigationInputHandler নাম পরিবর্তন করে OnBackInvokedInputHandler রাখা হলো। ( I63405 )

বাগ সংশোধন

  • মধ্যবর্তী তালিকা বরাদ্দ পরিহার করে এবং কলব্যাক ডিসপ্যাচ কর্মক্ষমতা উন্নত করে ওভারহেড কমাতে NavigationEventDispatcher রিফ্যাক্টর করুন। ( I82702 , I1a9d9 )
  • কম্পাইল টাইমে বৈধ মানের পরিসীমা নিশ্চিত করতে এবং API নিরাপত্তা উন্নত করতে NavigationEvent এর touchX , touchY , এবং progress ফিল্ডগুলিতে @FloatRange অ্যানোটেশন যোগ করুন। ( Iac0ec )

সংস্করণ 1.0.0-alpha04

২ জুলাই, ২০২৫

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

বাগ সংশোধন

  • navigationevent-compose -এ implementedInJetBrainsFork ব্যবহার করা হয়েছে এবং কম্পোজ কনভেনশনের সাথে সামঞ্জস্য রাখতে একটি commonStubs টার্গেট যোগ করা হয়েছে। এই পরিবর্তনটি JetBrains-এর অনুরোধে করা হয়েছে । ( f60c79 )
  • সঠিক স্টাব জেনারেশন নিশ্চিত করার জন্য Kotlin/Native-এর জন্য Compose কম্পাইলার প্লাগইনের প্রয়োগ সংশোধন করা হয়েছে। পাবলিক API বা আচরণের উপর কোনো প্রভাব নেই। ( 1890c9 )

সংস্করণ 1.0.0-alpha03

১৮ জুন, ২০২৫

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

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

  • navigationevent লাইব্রেরিতে Jetpack Compose-এর বৈশিষ্ট্যগুলো সমর্থন করার জন্য একটি নতুন navigationevent-compose মডিউল চালু করা হয়েছে। ( 980d78 )
  • NavigationEvent Compose has added a new LocalNavigationEventDispatcherOwner local composition. It returns a nullable value to better determine whether it is available in the current composition. NavigationEventHandler will now throw an error if the underlying owner is not found. ( 62ffda )
  • NavigationEvent Compose, (প্রিডিক্টিভ ব্যাক জেসচার) ইভেন্টগুলি পরিচালনা করার জন্য একটি নতুন NavigationEventHandler Composable যুক্ত করেছে। এটি NavigationEvent অবজেক্টের একটি Flow প্রদান করে যা আপনার সরবরাহ করা সাসপেন্ডিং ল্যাম্বডাতে অবশ্যই সংগ্রহ করতে হবে c42ba6 :
NavigationEventHandler { progress: Flow<NavigationEvent> ->
  // This block is executed when the back gesture begins.
  try {
    progress.collect { backEvent ->
      // Handle gesture progress updates here.
    }
    // This block is executed if the gesture completes successfully.
  } catch (e: CancellationException) {
    // This block is executed if the gesture is cancelled
    throw e
  } finally {
    // This block is executed either the gesture is completed or cancelled
  }
}

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

  • এখন প্রতিটি NavigationEventCallback একবারে শুধুমাত্র একটি NavigationEventDispatcher সাথেই রেজিস্টার করা যাবে; এটিকে একাধিক ডিসপ্যাচারে যোগ করলে একটি IllegalStateException থ্রো হবে। উল্লেখ্য যে, এই আচরণটি OnBackPressedDispatcher থেকে ভিন্ন, যা একাধিক ডিসপ্যাচারকে অনুমতি দেয়। ( e82c19 )
  • ন্যাভিগেশনের সময় পরিবর্তন রোধ করতে isPassThrough একটি val করা হয়েছে, যা NavigationEvent এর ডিসপ্যাচিং ভেঙে দিতে পারতো। ( I0b287 )

সংস্করণ 1.0.0-alpha02

৪ জুন, ২০২৫

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

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

  • NavigationEventDispatcher এর সেকেন্ডারি কনস্ট্রাক্টরকে ডিফল্ট আর্গুমেন্ট দিয়ে প্রতিস্থাপন করুন। ( I716a0 )
  • NavigationEventCallback থেকে priority প্রপার্টিটি সরিয়ে দিন। এর পরিবর্তে NavigationEventDispatcher.addCallback() -এ priority পাস করুন। ( I13cae )

বাগ সংশোধন

  • একই সাথে ক্লোজেবল-এর অভ্যন্তরীণ তালিকা পরিবর্তন করার কারণে NavigationEventCallback.remove() কল করার সময় যে ConcurrentModificationException দেখা দিতে পারতো, তা সংশোধন করা হয়েছে। ( b/420919815 )

সংস্করণ 1.0.0-alpha01

২০ মে, ২০২৫

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

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

  • androidx.navigationevent লাইব্রেরিটি সিস্টেম ব্যাক এবং প্রেডিক্টিভ ব্যাক উভয়ই হ্যান্ডেল করার জন্য একটি KMP-ফার্স্ট API প্রদান করে। সিস্টেম ব্যাক ইভেন্ট গ্রহণ করার জন্য এক বা একাধিক NavigationEventCallback ইনস্ট্যান্স রেজিস্টার করতে NavigationEventDispatcher একটি সাধারণ API হিসেবে কাজ করে।
  • This layer sits below the previously released APIs in androidx.activity and aims to be a less opinionated replacement for using the Activity APIs in higher level components or directly using the Android framework OnBackInvokedDispatcher APIs. The androidx.activity APIs have been rewritten on top of the Navigation Event APIs as part of Activity 1.12.0-alpha01 .