package Ġcom . gar min . g arm ink apt ain . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . gar min . g arm ink apt ain . R Ċ import Ġcom . gar min . g arm ink apt ain . data . Point Of Interest Ċ import Ġcom . gar min . g arm ink apt ain . data . poi List Ċ Ċ class ĠPo i List Fragment Ġ: ĠFragment ( R . layout . poi _ list _ fragment ) Ġ{ ĊĊĠĠĠ Ġinner Ġclass ĠPo i ListItem ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġname View Ġ= ĠitemView . findViewById < TextView >( R . id . poi _ item _ name _ view ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtype View Ġ= ĠitemView . findViewById < TextView >( R . id . poi _ item _ type _ view ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( poi : ĠPoint Of Interest ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname View . text Ġ= Ġpo i . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype View . text Ġ= Ġpo i . poi Type ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPo i List Fragment Directions . action Poi List Fragment To Poi Details Fragment ( poi . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠPo i ListAdapter Ġ: ĠRecyclerView . Adapter < Poi ListItem ViewHolder >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠPo i ListItem ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPo i ListItem ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater . inflate ( R . layout . poi _ list _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPo i ListItem ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoints Of Interest . get OrNull ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġpoints Of Interest . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġpoints Of Interest Ġ= Ġpo i List ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . findViewById < RecyclerView >( R . id . poi _ list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠPo i ListAdapter () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }