package Ġcom . example . hot pop corn . view . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . hot pop corn . R Ċ import Ġcom . example . hot pop corn . databinding . Item Tile Binding Ċ import Ġcom . example . hot pop corn . model . Person Ċ import Ġcom . example . hot pop corn . view model . Person ViewModel Ċ Ċ class ĠPeople In Movie And TV Show Adapter ( private Ġval Ġperson VM : ĠPerson ViewModel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmovie Or TV Show Ġ: ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcast Or Cre w Ġ: ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontext Ġ: ĠContext ) Ġ: ĠRecyclerView . Adapter < People In Movie And TV Show Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠItem Tile Binding . inflate ( LayoutInflater . from ( parent . context )) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ= Ġholder . bind ( people [ position ]) ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġpeople . size ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( private Ġval Ġbinding : ĠItem Tile Binding ) Ġ: ĠAbstract Tile ViewHolder ( binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item Ġ: ĠPerson ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDisplay ing Ġdata : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Title Or Name ( item . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Character Or Department ( if Ġ( cast Or Cre w Ġ== Ġ" cast ") Ġitem . character Ġelse Ġitem . department ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Post er Or Photo ( item . profile _ path , Ġwhen ( item . gender ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠR . drawable . ic _ person _ 2 4 _ man ĠĠĠĠĠĠĠ Ġ// Ġman ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠR . drawable . ic _ person _ 2 4 _ w oman ĠĠĠĠĠ Ġ// Ġwoman ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . drawable . ic _ person _ 2 4 _ human ĠĠ Ġ// Ġunknown ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNavigation : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tile Background . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmake If Connected ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGo ing Ġto Ġnew Ġpage : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson VM . setCurrent Person ( item . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( movie Or TV Show Ġ== Ġ" movie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . find Nav Controller (). navigate ( R . id . action _ movie Details Fragment _ to _ person Details Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . find Nav Controller (). navigate ( R . id . action _ TV Show Details Fragment _ to _ person Details Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠStored Ġdata : ĊĠĠĠ Ġprivate Ġvar Ġpeople Ġ= Ġempty List < Person >() ĊĠĠĠ Ġfun ĠsetData ( new List Ġ: ĠList < Person >) Ġ{ ĊĠĠĠĠĠĠĠ Ġpeople Ġ= Ġnew List ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }