package Ġcom . destruct o . s ush i . ui . anime . anime Characters Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . destruct o . s ush i . R Ċ import Ġcom . destruct o . s ush i . adapter . All Characters Adapter Ċ import Ġcom . destruct o . s ush i . databinding . Fragment All An ime Characters Binding Ċ import Ġcom . destruct o . s ush i . listener . An ime Character Listener Ċ import Ġcom . destruct o . s ush i . network . Status Ċ import Ġcom . destruct o . s ush i . ui . base . Base Fragment Ċ import Ġcom . destruct o . s ush i . util . Grid Spacing Item De co Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġtim ber . log . Tim ber Ċ Ċ @ Android EntryPoint Ċ class ĠAn ime Characters Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment All An ime Characters Binding ĊĠĠĠ Ġprivate Ġval Ġan ime Characters ViewModel : ĠAn ime Characters ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġvar Ġan ime Id Arg : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcharacter RecyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcharacter Adapter : ĠAll Characters Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtoolbar : Toolbar ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Id Arg Ġ= ĠsavedInstanceState . getInt (" anime Id ") ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Id Arg Ġ= ĠAn ime Characters Fragment Args . from Bundle ( require Arguments ()). mal Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Characters ViewModel . get An ime Characters ( anime Id Arg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Int (" anime Id ", Ġan ime Id Arg ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment All An ime Characters Binding . inflate ( in flater , Ġcontainer , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcharacter RecyclerView Ġ= Ġbinding . character Recycler ĊĠĠĠĠĠĠĠ Ġcharacter RecyclerView . layout Manager Ġ= ĠGrid LayoutManager ( context , 3 ) ĊĠĠĠĠĠĠĠ Ġcharacter RecyclerView . addItem Decoration ( Grid Spacing Item De co ( 3 , 2 5 , true )) ĊĠĠĠĠĠĠĠ Ġtoolbar Ġ= Ġbinding . toolbar ĊĊĠĠĠĠĠĠĠ Ġsetup Toolbar () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcharacter Adapter Ġ= ĠAll Characters Adapter ( An ime Character Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ Ġnavigate To Character Details ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbinding . character Recycler . adapter Ġ= Ġcharacter Adapter ĊĊĠĠĠĠĠĠĠ Ġan ime Characters ViewModel . anime Character And Staff . observe ( view Lifecycle Owner ) Ġ{ Ġresources Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( resources . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . LOADING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . data ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter Adapter . submit List ( it . characters ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e (" Error : Ġ% s ", Ġresources . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate To Character Details ( character Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . character Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle Of ( Pair (" character Id ", Ġcharacter Id )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Anim Nav Options ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsetup Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . find Nav Controller (). navigate Up () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }