Ċ package Ġcom . android po et . met aph or demo . ui . home Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . navigation . fragment . Fragment Navigator Extras Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . android po et . met aph or . Met aph or Animation Ċ import Ġcom . android po et . met aph or . hold Ċ import Ġcom . android po et . met aph or . met aph or Fragment Ċ import Ġcom . android po et . met aph or . met aph or Window Ċ import Ġcom . android po et . met aph or demo . R Ċ import Ġcom . android po et . met aph or demo . databinding . Fragment List Binding Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ Ċ class ĠArtist List Fragment Ġ: ĠFragment () Ġ{ ĊĊĠ Ġprivate Ġlateinit Ġvar Ġartist Grid ListAdapter : ĠArtist Grid ListAdapter ĊĠ Ġprivate Ġlateinit Ġvar Ġartist Linear ListAdapter : ĠArtist Linear ListAdapter ĊĠ Ġprivate Ġlateinit Ġvar Ġview Binding : ĠFragment List Binding ĊĊĠ Ġprivate Ġvar Ġis Grid : ĠBoolean Ġ= Ġtrue ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĊĠĠĠ Ġval Ġmeta Ġ= Ġmet aph or Fragment ( this ) Ġ{ ĊĠĠĠĠĠ Ġset Exit Animation ( Met aph or Animation . Elevation Scale Grow ) ĊĠĠĠĠĠ Ġset Re enter Animation ( Met aph or Animation . Elevation Scale ) ĊĊĠĠĠĠĠ Ġbuild () ĊĠĠĠ Ġ} ĊĠĠĠ Ġmeta . animate () ĊĊĊĊĊĠĠĠ Ġartist Grid ListAdapter Ġ= ĠArtist Grid ListAdapter ( require Context (), ĠG lide . with ( require Context ())) ĊĠĠĠ Ġartist Linear ListAdapter Ġ= ĊĠĠĠĠĠ ĠArtist Linear ListAdapter ( require Context (), ĠG lide . with ( require Context ())) ĊĠĠĠ Ġartist Grid ListAdapter . callback Ġ= Ġobject Ġ: ĠArtist Grid ListAdapter . Callback Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView , Ġitem : ĠSample Response , ĠimageUrl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** this Ġmethod Ġis Ġused Ġfor ĠMaterial Container Transform Ġit Ġadd ĠMaterial Elevation Scale ĊĠĠĠĠĠĠĠĠ Ġ* Ġto Ġcomponents ] Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= ĠFragment Navigator Extras ( view Ġto Ġitem . pos . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠArtist List Fragment Directions . nav To Character Detail Fragment ( item ) ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( action , Ġextras ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġartist Linear ListAdapter . callback Ġ= Ġobject Ġ: ĠArtist Linear ListAdapter . Callback Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView , Ġitem : ĠSample Response , ĠimageUrl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** this Ġmethod Ġis Ġused Ġfor ĠMaterial Container Transform Ġit Ġadd ĠMaterial Elevation Scale ĊĠĠĠĠĠĠĠĠ Ġ* Ġto Ġcomponents ] Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= ĠFragment Navigator Extras ( view Ġto Ġitem . pos . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠArtist List Fragment Directions . nav To Character Detail Fragment ( item ) ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( action , Ġextras ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsample Response (): ĠList < Sample Response > Ġ{ ĊĠĠĠ Ġval Ġresponse Ġ= Ġresources . open Raw Resource ( R . raw . grid ). buffered Reader () ĊĠĠĠĠĠ Ġ. use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠ Ġreturn ĠGson (). fromJson ( response , Ġobject Ġ: ĠType Token < List < Sample Response >>() Ġ{} . type ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView Ġ{ ĊĠĠĠ Ġview Binding Ġ= ĠFragment List Binding . inflate ( in flater , Ġcontainer , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġview Binding . root ĊĠ Ġ} ĊĊĠ Ġ@ Requires Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġ/** this Ġmethod Ġis Ġused Ġfor ĠMaterial Container Transform Ġit Ġadd Ġsome Ġdelay Ġto Ġload Ġanimation Ġbasically Ġit Ġwill Ġwait Ġfor Ġre cycler view Ġto Ġbe Ġdrawn ĠĠ Ġ*/ ĊĠĠĠ Ġhold () ĊĊĠĠĠ Ġload RecyclerView ( is Grid ) ĊĠĠĠ Ġview Binding . reorder . setOnClickListener Ġ{ ĊĊĠĠĠĠĠ Ġif Ġ( is Grid ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Grid Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġload RecyclerView ( is Grid ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġis Grid Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġload RecyclerView ( is Grid ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġload RecyclerView ( is Grid : ĠBoolean ) Ġ{ ĊĊĠĠĠ Ġif Ġ( is Grid ) Ġ{ ĊĠĠĠĠĠ Ġview Binding . rcv . apply Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( require Context (), Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġartist Grid ListAdapter . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit List ( sample Response ()) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġview Binding . rcv . apply Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġartist Linear ListAdapter . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit List ( sample Response ()) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ