package Ġcom . lag rad ost . shiro . ui . home Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View .* Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . lag rad ost . shiro . R Ċ import Ġcom . lag rad ost . shiro . ui . Last Episode Info Ċ import Ġcom . lag rad ost . shiro . ui . home . Home Fragment . Companion . home ViewModel Ċ import Ġcom . lag rad ost . shiro . utils . App Utils . display Card Data Ċ import Ġcom . lag rad ost . shiro . utils . Sh iro Api Ċ import Ġkotlinx . android . synt hetic . main . vertical _ grid _ view _ child . view .* ĊĊ Ċ class ĠMaster Card Adapter ( ĊĠĠĠ Ġcontext : ĠFragment Activity , Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġactivity : ĠFragment Activity ? Ġ= Ġcontext ĊĠĠĠ Ġprivate Ġvar Ġfiltered : ĠList < Pair < List < Any ?> ?, ĠString ? >> Ġ= Ġgenerate Filtered () ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Filtered (): ĠList < Pair < List < Any ?> ?, ĠString ? >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġhome ViewModel !!. api Data . value ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Pair ( data ?. search Results , Ġ" Search Ġresults "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( data ?. recent ly Seen , Ġactivity ?. getString ( R . string . continue _ watch ing )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( home ViewModel !!. favorites . value , Ġactivity ?. getString ( R . string . favorites )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( data ?. trend ing ?. data ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSh iro Api . Common An ime Page Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . poster , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . slug , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . title _ english ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġactivity ?. getString ( R . string . trend ing _ anime )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( data ?. recent s ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSh iro Api . Common An ime Page Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . anime . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . anime . poster , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . anime . slug , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. distinct By Ġ{ Ġit . slug Ġ}, Ġactivity ?. getString ( R . string . home _ recent ly _ updated )), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( data ?. data ?. ongo ing _ anime s , Ġactivity ?. getString ( R . string . home _ ongo ing )), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( data ?. data ?. latest _ anime s , Ġactivity ?. getString ( R . string . latest _ anime )) ĊĠĠĠĠĠĠĠ Ġ). filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . first Ġ!= Ġnull Ġ&& Ġit . first ?. isNotEmpty () Ġ== Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMaster Card ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . vertical _ grid _ view _ child , Ġparent , Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !! ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfiltered Ġ= Ġgenerate Filtered () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMaster Card ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( filtered [ position ], Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . item View . setOn Focus ChangeListener Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= Ġactivity ?. findViewById < LinearLayout >( R . id . tv _ menu _ bar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu ?. visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu ?. visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Re cyc led ( holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . item View . horizontal GridView ?. adapter Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġholder . item View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġsuper . on View Re cyc led ( holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfiltered . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMaster Card ViewHolder ( item View : ĠView , Ġ_ context : ĠFragment Activity ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġ_ context ĊĠĠĠĠĠĠĠ Ġval Ġcard : ĠView Ġ= ĠitemView ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( pair : ĠPair < List < Any ?> ?, ĠString ? >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard . expand _ text ?. text Ġ= Ġpair . second ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis On Top Ġ= Ġposition Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Favorite Ġ= Ġactivity . getString ( R . string . favorites ) Ġ== Ġpair . second ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpair . first Ġas ? ĠList < Sh iro Api . Common An ime Page ?> Ġ!= Ġnull Ġ&& Ġpair . second Ġ!= Ġactivity . getString ( R . string . continue _ watch ing ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . display Card Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpair . first Ġas ĠList < Sh iro Api . Common An ime Page > ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard . horizontal GridView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard . expand _ text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis On Top , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Hide D ub bed Ġ= Ġis Favorite ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpair . first Ġas ? ĠList < Last Episode Info ?> Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . display Card Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpair . first Ġas ? ĠList < Last Episode Info >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard . horizontal GridView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis On Top ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ