package Ġvs u . cs f . pro cat . ui . rent stations list Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . result . Activity Result Launcher Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts . Start Activity For Result Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġcom . google . firebase . analytics . Firebase Analytics Ċ import Ġcom . google . firebase . analytics . k tx . analytics Ċ import Ġcom . google . firebase . analytics . k tx . log Event Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġtim ber . log . Tim ber Ċ import Ġvs u . cs f . pro cat . R Ċ import Ġvs u . cs f . pro cat . databinding . Activity Rent St ations List Binding Ċ import Ġvs u . cs f . pro cat . model . Rent Station Ċ import Ġvs u . cs f . pro cat . ui . profile . Profile Activity Ċ import Ġvs u . cs f . pro cat . ui . rent inventory detail . Rent Inventory Detail Activity Ċ import Ġvs u . cs f . pro cat . ui . rent inventory list . Rent Inventory List Activity Ċ import Ġvs u . cs f . pro cat . ui . scanner . Scanner Activity Ċ Ċ @ Android EntryPoint Ċ class ĠR ent St ations List Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Rent St ations List Binding ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠR ent St ations List ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġval Ġadapter : ĠR ent St ations ListAdapter Ġ= ĊĠĠĠĠĠĠĠ ĠR ent St ations ListAdapter Ġ{ Ġrent Station Ġ-> Ġon Rent Station Click ( rent Station ) Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġresult Launcher : ĠActivity Result Launcher < Intent > ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġresult Launcher Ġ= Ġthis . register For Activity Result ( Start Activity For Result ()) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= Ġresult . data ?. extras ?. getString ( Scanner Activity . ITEM _ UUID _ RESULT _ EXTRA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Uuid Sc anned ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠTim ber . e (" Intent Ġdata Ġis Ġnull Ġbut Ġresult Ġis Ġok ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ rent _ stations _ list ) ĊĠĠĠĠĠĠĠ Ġbinding . vm Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġbinding . rent St ations Rv . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġbinding . activity Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġobserve ViewModel () ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( binding . rent St ations Toolbar ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . update Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . rent St ations . observe ( this , Ġ{ Ġadapter . set Items ( it ) Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . network Error . observe ( this , Ġ{ Ġis Error Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isError ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠgetString ( R . string . update _ error ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ profile _ toolbar , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . profile _ item Ġ-> ĠProfile Activity . start ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Scanner Button Click () Ġ{ ĊĠĠĠĠĠĠĠ ĠScanner Activity . start For Result ( this , Ġresult Launcher ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Uuid Sc anned ( uuid : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠR ent Inventory Detail Activity . start ( this , Ġuuid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Rent Station Click ( rent Station : ĠR ent Station ) Ġ{ ĊĠĠĠĠĠĠĠ ĠR ent Inventory List Activity . start ( this , Ġrent Station . id ) ĊĠĠĠĠĠĠĠ ĠFirebase . analytics . log Event (" station _ items _ view ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam ( Firebase Analytics . Param . ITEM _ ID , Ġrent Station . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam ( Firebase Analytics . Param . ITEM _ NAME , Ġrent Station . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent ( context , ĠR ent St ations List Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }