package Ġbr . com . ais digital . ret rofit 2 . mock . example . ui . home . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġbr . com . ais digital . ret rofit 2 . mock . example . R Ċ import Ġbr . com . ais digital . ret rofit 2 . mock . example . ui . home . view model . Home ViewModel Ċ import Ġbr . com . ais digital . ret rofit 2 . mock . example . databinding . Activity Home Binding Ċ import Ġbr . com . ais digital . ret rofit 2 . mock . example . network . Api Result Ċ import Ġorg . k oin . android . view model . ext . android . viewModel Ċ Ċ class ĠHome Activity Ġ: Ġbr . com . ais digital . ret rofit 2 . mock . example . base . Base Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun ĠstartActivity ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠHome Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby ĠviewModel < Home ViewModel >() ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Home Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ home ) ĊĊĠĠĠĠĠĠĠ Ġinit Observer () ĊĠĠĠĠĠĠĠ Ġinit OnClick () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit OnClick () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . logout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Logout () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Logout () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Loading () ĊĠĠĠĠĠĠĠ ĠviewModel . logout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Observer () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . logout Result . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠApi Result . Success Ġ&& Ġit . data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . data . logout Text ?. let Ġ{ Ġlogout Text Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Sn ackBar Message ( binding . root , Ġlogout Text , Ġon Dis missed Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Sn ackBar Message ( binding . root , ĠgetString ( R . string . logout _ failed ), Ġon Dis missed Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . loading . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . loading . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} Ċ } Ċ