package Ġcom . g gu . av d . ui . home Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . g gu . av d . databinding . Fragment Home Binding Ċ import Ġcom . g gu . av d . ui . search . TypeList Adapter Ċ import Ġcom . g gu . av d . utilities . provide Drawable Repository Ċ Ċ class ĠHome Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠHome ViewModel ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlist Adapter : ĠDrawable ListAdapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtype Adapter : ĠType ListAdapter ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠHome Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Home Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġbinding . av d Title . text Ġ= Ġfind Nav Controller (). current Destination ?. label ĊĊĠĠĠĠĠĠĠ Ġcontext Ġ?: Ġreturn Ġbinding . root ĊĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= Ġprovide Drawable Repository ( require Context ()) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this , Ġobject Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrepository ?. let Ġ{ ĠHome ViewModel ( it ) Ġ} Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). get ( Home ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĊĠĠĠĠĠĠĠ Ġtype Adapter Ġ= ĠType ListAdapter () ĊĠĠĠĠĠĠĠ Ġlist Adapter Ġ= ĠDrawable ListAdapter () ĊĊĠĠĠĠĠĠĠ Ġ// ĠType ĊĠĠĠĠĠĠĠ Ġbinding . type List . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġtype Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠAv d ĊĠĠĠĠĠĠĠ Ġbinding . av d List . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġlist Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} Ċ }