package Ġcom . ste phen b ain . re listen . home . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . ste phen b ain . re listen . R Ċ import Ġcom . ste phen b ain . re listen . common . observe Ċ import Ġcom . ste phen b ain . re listen . common . ui . Base Fragment Ċ import Ġkotlinx . android . synt hetic . main . fragment _ home .* Ċ Ċ class ĠHome Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġget ViewModel < Home ViewModel >() ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . layout . fragment _ home ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel . fetch Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel . state . observe ( this , Ġ:: handle State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle State ( state : ĠHome ViewModel . Home State ) Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠ ĠHome ViewModel . Home State . Loading Ġ-> Ġshow Loading () ĊĠĠĠĠĠĠĠ Ġis ĠHome ViewModel . Home State . Error Ġ-> Ġshow Error () ĊĠĠĠĠĠĠĠ Ġis ĠHome ViewModel . Home State . Success Ġ-> Ġshow Success ( state . items ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġloading . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġhome Recycler . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġerror Text . isVisible Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Text . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġhome Recycler . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġloading . isVisible Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Success ( items : ĠList < Home Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġhome Recycler . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġerror Text . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġloading . isVisible Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġhome Recycler . set Items ( items ) Ġ{ Ġartist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( Home Fragment Directions . action Home To Artist ( artist )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ