package Ġcom . ade matic i . ph arm ac ies ond uty . view . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . ade matic i . ph arm ac ies ond uty . R Ċ import Ġcom . ade matic i . ph arm ac ies ond uty . adapter . Ph arm acy Adapter Ċ import Ġcom . ade matic i . ph arm ac ies ond uty . databinding . Fragment Show Ph arm acy Binding Ċ import Ġcom . ade matic i . ph arm ac ies ond uty . model . Result Ċ import Ġcom . ade matic i . ph arm ac ies ond uty . util . Shared Pref Ċ import Ġcom . ade matic i . ph arm ac ies ond uty . view model . Show Ph arm acy ViewModel Ċ Ċ class ĠShow Ph arm acy Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Show Ph arm acy Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġph arm acy Adapter : ĠPh arm acy Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġph arm acy List : ĠList < Result > ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠShow Ph arm acy ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy Shared Pref : ĠShared Pref ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Show Ph arm acy Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġbinding . root ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar . inflate Menu ( R . menu . show _ parm acy _ menu ) ĊĠĠĠĠĠĠĠ Ġmy Shared Pref Ġ= ĠShared Pref ( require Context ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġprovince Ġ= Ġmy Shared Pref . getLocation Province () ĊĠĠĠĠĠĠĠ Ġval Ġdistrict Ġ= Ġmy Shared Pref . getLocation District () ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġ"$ province Ġ- Ġ$ district " ĊĊĠĠĠĠĠĠĠ Ġbinding . toolbar . title Ġ= Ġtitle ĊĊĠĠĠĠĠĠĠ Ġbinding . toolbar . setOn MenuItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings _ button Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ show Ph arm acy Fragment _ to _ select Location Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . swipe Refresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re cyclerView . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Error . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . get Ph arm acy Data ( province , Ġdistrict ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . swipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( require Activity ()). get ( Show Ph arm acy ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . get Ph arm acy Data ( province , Ġdistrict ) ĊĊĠĠĠĠĠĠĠ Ġobserve LiveData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve LiveData () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . variables . observe ( view Lifecycle Owner , Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġph arm acy List Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġph arm acy Adapter Ġ= ĠPh arm acy Adapter ( ph arm acy List , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re cyclerView . adapter Ġ= Ġph arm acy Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Error . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re cyclerView . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . progress Bar State . observe ( view Lifecycle Owner , Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Error . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re cyclerView . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . errorMessage State . observe ( view Lifecycle Owner , Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Error . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re cyclerView . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Error . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . show _ parm acy _ menu , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ Ċ }