package Ġcom . sh ash ov . drug s . features . drug s . presentation . views Ċ Ċ import Ġandroid . arch . lifecycle . Lifecycle Fragment Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . sh ash ov . drug s . R Ċ import Ġcom . sh ash ov . drug s . features . drug s . data . local . Dr ug s Ċ import Ġcom . sh ash ov . drug s . features . drug s . presentation . Analog s ViewModel Ċ import Ġcom . sh ash ov . drug s . features . drug s . presentation . adapters . Analog s ListAdapter Ċ import Ġcom . sh ash ov . drug s . features . drug s . presentation . hide Ċ import Ġcom . sh ash ov . drug s . features . drug s . presentation . show Ċ import Ġkotlinx . android . synt hetic . main . fragment _ an alog s .* ĊĊ Ċ class ĠAn alog s Fragment Ġ: ĠLifecycle Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠAn alog s Fragment :: class . java . simple Name ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġanalog s ViewModel : ĠAn alog s ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater ?. inflate ( R . layout . fragment _ an alog s , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġanalog s ViewModel Ġ= ĠViewModel Providers . of ( activity ). get ( Analog s ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġlist . layout Manager Ġ= ĠLinearLayoutManager ( activity , ĠLinearLayout . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġlist ?. is Nested Scrolling Enabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġanalog s ViewModel . getSub stance (). observe ( this , ĠObserver < String > Ġ{ Ġsub stance Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub stance Name . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! sub stance !!. isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub stance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . no _ choice ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġanalog s ViewModel . get Loading (). observe ( this , ĠObserver < Boolean > Ġ{ Ġis loading Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is loading !! ) ĠprogressBar . show () Ġelse ĠprogressBar . hide () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġanalog s ViewModel . get Analog s (). observe ( this , ĠObserver < List < Dr ug s >> Ġ{ Ġanalog s Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" received Ġupdate Ġfor Ġanalog s ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list . adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . adapter Ġ= ĠAn alog s ListAdapter ( an alog s !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ