package Ġcom . ric ardo jr so usa . mov ook . presentation . person details Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ric ardo jr so usa . mov ook . core . data . Movie Ċ import Ġcom . ric ardo jr so usa . mov ook . core . data . Person Ċ import Ġcom . ric ardo jr so usa . mov ook . presentation . view Hold ers . Bind able ViewHolder Ċ import Ġcom . ric ardo jr so usa . mov ook . presentation . view Hold ers . Bio graphy ViewHolder Ċ import Ġcom . ric ardo jr so usa . mov ook . presentation . view Hold ers . Known For ViewHolder Ċ import Ġcom . ric ardo jr so usa . mov ook . presentation . view Hold ers . Other Credits ViewHolder Ċ Ċ private Ġconst Ġval ĠTYPE _ BIO Ġ= Ġ 0 Ċ private Ġconst Ġval ĠTYPE _ KNOWN _ FOR Ġ= Ġ 1 Ċ private Ġconst Ġval ĠTYPE _ OTHER _ CRED ITS Ġ= Ġ 2 Ċ Ċ class ĠPerson Details ViewPager Adapter ( val Ġon Movie ClickListener : Ġ(( view : ĠImageView ?, Ġmovie : ĠList < Movie > ?) Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġperson : ĠPerson ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ BIO Ġ-> ĠPerson ViewHolder ( Bio graphy ViewHolder (). init ( layout Inflater , Ġparent )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ KNOWN _ FOR Ġ-> ĠMovie ViewHolder ( Known For ViewHolder (). init ( layout Inflater , Ġparent )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠMovie ViewHolder ( Other Credits ViewHolder (). init ( layout Inflater , Ġparent )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Person ( person : ĠPerson ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . person Ġ= Ġperson ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( getItem ViewType ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ BIO Ġ-> Ġ( holder Ġas ĠPerson ViewHolder ). bind ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ KNOWN _ FOR Ġ-> Ġ( holder Ġas ĠMovie ViewHolder ). bind ( person ?. credits ?. get Pop ular Movies ( 9 , Ġ 1 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ( holder Ġas ĠMovie ViewHolder ). bind ( person ?. getC red its By Release Date Descending ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ= Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> ĠTYPE _ BIO ĊĠĠĠĠĠĠĠĠ 1 Ġ-> ĠTYPE _ KNOWN _ FOR ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠTYPE _ OTHER _ CRED ITS ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠPerson ViewHolder ( private Ġval Ġview : ĠBind able ViewHolder < Person >) Ġ: ĠRecyclerView . ViewHolder ( view . item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġbind ( person : ĠPerson ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . bind ( person ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠMovie ViewHolder ( private Ġval Ġview : ĠBind able ViewHolder < List < Movie >>) Ġ: ĠRecyclerView . ViewHolder ( view . item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġbind ( movies : ĠList < Movie > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . bind ( movies , Ġclick Listener Ġ= Ġon Movie ClickListener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 3 ĊĠĠĠ Ġ} Ċ }