package Ġcom . and rew ow ens . rocket stores . ui . detail Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ Ċ import Ġcom . and rew ow ens . rocket stores . R Ċ import Ġcom . and rew ow ens . rocket stores . internal . G lide App Ċ import Ġcom . and rew ow ens . rocket stores . ui . base . Scoped Fragment Ċ import Ġkotlinx . android . synt hetic . main . stores _ detail _ fragment .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . kode in . di . K ode in Ċ import Ġorg . kode in . di . K ode in Aware Ċ import Ġorg . kode in . di . android . x . closest K ode in Ċ import Ġorg . kode in . di . generic . factory Ċ Ċ class ĠStores Detail Fragment Ġ: ĠScoped Fragment (), ĠK ode in Aware Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġk ode in : ĠK ode in Ġby Ġclosest K ode in () ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Factory : Ġ(( String ) Ġ-> ĠStores Detail ViewModel Factory ) Ġby Ġfactory () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠStores Detail ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . stores _ detail _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsafe Args Ġ= Ġarguments ?. let Ġ{ ĠStores Detail Fragment Args . from Bundle ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstore Id Ġ= Ġsafe Args ?. store Id Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġstore Name Ġ= Ġsafe Args ?. store Name Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġset Store Title ( store Name ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this , ĠviewModel Factory ( store Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Stores Detail ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġbind UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind UI () Ġ= Ġlaunch ( Dispatch ers . Main ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġstore Ġ= ĠviewModel . store . await () ĊĊĠĠĠĠĠĠĠ Ġstore . observe ( this @ Stores Detail Fragment , ĠObserver Ġ{ Ġstore Entry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( store Entry Ġ== Ġnull ) Ġreturn @ Observer ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup _ loading . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView _ address . text Ġ= Ġstore Entry . address ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView _ phoneNumber . text Ġ= Ġstore Entry . phone ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView _ bottom Address Line . text Ġ= Ġbuild Bottom Line ( store Entry . city , Ġstore Entry . state , Ġstore Entry . zip code ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress _ container . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Map Activity ( store Entry . latitude , Ġstore Entry . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView _ phoneNumber . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Phone Activity ( store Entry . phone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide App . with ( this @ Stores Detail Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( store Entry . store Logo URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView _ store Logo ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Bottom Line ( city : ĠString , Ġstate : ĠString , Ġzip code : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"$ city , Ġ$ state Ġ$ zip code " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Store Title ( store Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ? ĠAppCompatActivity )?. support ActionBar ?. title Ġ= Ġstore Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch Map Activity ( lat : ĠString , Ġlng : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġg mm Intent Uri Ġ= ĠUri . parse (" geo :$ lat ,$ lng ") ĊĠĠĠĠĠĠĠ Ġval Ġmap Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW , Ġg mm Intent Uri ) ĊĠĠĠĠĠĠĠ Ġmap Intent . set Package (" com . google . android . apps . maps ") ĊĠĠĠĠĠĠĠ ĠstartActivity ( map Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch Phone Activity ( number : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnumber Uri Ġ= ĠUri . parse (" tel :${ number . replace ("- ", Ġ"", Ġtrue )} ") ĊĠĠĠĠĠĠĠ Ġval Ġphone Intent Ġ= ĠIntent ( Intent . ACTION _ DI AL , Ġnumber Uri ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( phone Intent ) ĊĠĠĠ Ġ} Ċ } Ċ