package Ġcom . pl ata forma . cr pg . ui . transport s Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . activity . On Back Pressed Callback Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment Transaction Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . pl ata forma . cr pg . R Ċ import Ġcom . pl ata forma . cr pg . databinding . Fragment Custom Transport Binding Ċ import Ġcom . pl ata forma . cr pg . ui . MainActivity Ċ import Ġcom . pl ata forma . cr pg . ui . agenda . Shared ViewModel Ċ import Ġkotlinx . android . synt hetic . main . fragment _ custom _ transport .* ĊĊ Ċ class ĠCustom Transport s Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġshared ViewModel : ĠShared ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtransport s ViewModel : ĠTransport s ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?, ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmod ality Preferences Ġ= Ġthis . require Activity (). get SharedPreferences (" MOD AL ITY ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġt ts Flag Ġ= Ġmod ality Preferences . getBoolean (" TT S ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġsr Flag Ġ= Ġmod ality Preferences . getBoolean (" SR ", Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Custom Transport Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġbinding . root ĊĊĠĠĠĠĠĠĠ Ġshow Back Button () ĊĠĠĠĠĠĠĠ Ġval Ġon Back Pressed Callback Ġ= Ġobject Ġ: ĠOn Back Pressed Callback ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle On Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment Ġ= ĠTransport s Selection Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Manager : ĠFragment Manager Ġ= Ġrequire Activity (). support FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Transaction : ĠFragment Transaction Ġ= Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . replace ( R . id . nav _ host _ fragment , Ġfragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequire Activity (). on Back Pressed Dispatcher . add Callback ( view Lifecycle Owner , Ġon Back Pressed Callback ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). support ActionBar ?. title Ġ= Ġ" C ARR IN HA ĠDO ĠC RP G " ĊĊĠĠĠĠĠĠĠ Ġtransport s ViewModel Ġ= ĠViewModel Provider ( this ). get ( Transport s ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġshared ViewModel Ġ= ĠViewModel Provider ( activity Ġas ĠAppCompatActivity ). get ( Shared ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġselected Date Ġ= Ġshared ViewModel . selected Date ĊĠĠĠĠĠĠĠ Ġval Ġcustom Text Ġ= Ġtransport s ViewModel . get Custom Text ( selected Date ) ĊĠĠĠĠĠĠĠ Ġcustom _ transport s _ text . text Ġ= Ġcustom Text ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbutton _ return _ transport s . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment Ġ= ĠTransport s Selection Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Manager : ĠFragment Manager Ġ= Ġrequire Activity (). support FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Transaction : ĠFragment Transaction Ġ= Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . replace ( R . id . nav _ host _ fragment , Ġfragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Back Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġis ĠMainActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMainActivity ?) ?. support ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // return Ġinflater . inflate ( R . layout . fragment _ custom _ transport , Ġcontainer , Ġfalse ) Ċ // ĠHandle Ġthe Ġback Ġbutton Ġevent Ċ // println ("> Handle on Back Button Pressed ") Ċ // Ġprintln (" Custom Ġtext : Ġ$ custom Text ") Ċ // ĠĠĠĠĠĠĠ Ġ// view ?. findViewById < TextView >( R . id . custom _ transport s _ text )?. text Ġ= Ġcustom Text Ċ // ĠĠĠĠĠĠĠ Ġ// println (" Custom Ġtext Ġview : Ġ" Ġ+ Ġview ?. findViewById < TextView >( R . id . custom _ transport s _ text ))