package Ġfr . o 8 0 . everything is fine . presentation . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager . VERTICAL Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġfr . o 8 0 . everything is fine . R Ċ import Ġfr . o 8 0 . everything is fine . data . model . Pokemon Ċ import Ġfr . o 8 0 . everything is fine . presentation . view model . List ViewModel Ċ import Ġfr . o 8 0 . everything is fine . presentation . view model . List ViewModel . Event . Go To Details Ċ Ċ @ Android EntryPoint Ċ class ĠList Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġadapter : ĠPokemon Adapter Ġ= ĠPokemon Adapter ( ĊĠĠĠĠĠĠĠ Ġon Pokemon Clicked Ġ= Ġ{ Ġpokemon Ġ-> ĠviewModel . on Pokemon Clicked ( pokemon ) Ġ}, ĊĠĠĠĠĠĠĠ Ġon Po ke ball Clicked Ġ= Ġ{ Ġpokemon Ġ-> ĠviewModel . on Po ke ball Clicked ( pokemon ) Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠList ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ list , Ġcontainer , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < RecyclerView >( R . id . pok em ons ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġthis @ List Fragment . adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context , ĠV ERT ICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . pok em ons . observe ( view Lifecycle Owner ) Ġ{ Ġ( pok em ons , Ġpoke dex ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . update Po ke dex ( poke dex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( pok em ons ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel . events . observe ( view Lifecycle Owner ) Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGo To Details Ġ-> Ġ( activity Ġas ? ĠPok em ons List Listener )?. goTo Details ( event . pokemon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠPok em ons List Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġgo To Details ( pokemon : ĠPokemon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠList Fragment () ĊĠĠĠ Ġ} Ċ } Ċ