package Ġname . lm j 0 0 1 1 . cour ier locker . fragments Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . text . Html Compat Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . zh u inden . li ved at ac om bin et uple kt . combine Tuple Ċ import Ġname . lm j 0 0 1 1 . cour ier locker .* Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . database .* Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . databinding . Fragment Bubble Current Status Binding Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . fragments . bottom sheets . Bottom Sheet Create Trip Bubble Fragment Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . fragments . bottom sheets . Bottom Sheet Navig able Build ings Fragment Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . helpers .* Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . helpers . interfaces . Address able Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . view models . A partment ViewModel Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . view models . Gate Code ViewModel Ċ import Ġname . lm j 0 0 1 1 . cour ier locker . view models . Trip ViewModel Ċ import Ġorg . kode in . di . instance Ċ Ċ class ĠCurrent Status Bubble Fragment Ġ: ĠFragment ( R . layout . fragment _ bubble _ current _ status ) Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠCurrent Status Bubble Activity ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Bubble Current Status Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlocation Helper : ĠLocation Helper ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbottom Sheet Create Trip Bubble Fragment : ĠBottom Sheet Create Trip Bubble Fragment ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbottom Sheet Navig able Build ings Fragment : ĠBottom Sheet Navig able Build ings Fragment ĊĠĠĠ Ġlateinit Ġvar Ġgate Code ViewModel : ĠGate Code ViewModel ĊĠĠĠ Ġlateinit Ġvar Ġtrip ViewModel : ĠTrip ViewModel ĊĠĠĠ Ġlateinit Ġvar Ġap artment ViewModel : ĠA partment ViewModel ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrecent Tri ps List Iterator : ĠMutable List Iterator < Trip > ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠlistOf Recent Tri ps : ĠMutable List < Trip > ĊĠĠĠ Ġprivate Ġval Ġm Trip Ġ= ĠMutable LiveData < Trip ?> () ĊĠĠĠ Ġprivate Ġvar Ġreset Recent Tri ps Order : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrecent Address ables List Iterator : ĠMutable List Iterator < Address able > ĊĠĠĠ Ġprivate Ġvar ĠlistOf Recent Gate Codes Ġ= Ġmutable ListOf < Gate Code >() ĊĠĠĠ Ġprivate Ġvar ĠlistOf Address ables Ġ= Ġmutable ListOf < Address able >() ĊĠĠĠ Ġprivate Ġvar ĠlistOf A part ments Ġ= Ġmutable ListOf < A partment >() ĊĠĠĠ Ġprivate Ġval Ġm Address able Ġ= ĠMutable LiveData < Address able ?> () ĊĊĠĠĠ Ġprivate Ġval Ġlatitude Observer : ĠObserver < Double > Ġ= ĠObserver Ġ{ Ġpopulate Recent Address ables () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= Ġrequire NotNull ( require Context (). application Context Ġas ĠApplication ) ĊĠĠĠĠĠĠĠ Ġgate Code ViewModel Ġ= ĠGate Code ViewModel ( Courier Locker Database . getInstance ( application ). gate Code Dao , Ġapplication ) ĊĠĠĠĠĠĠĠ Ġtrip ViewModel Ġ= ĠTrip ViewModel ( Courier Locker Database . getInstance ( application ). trip Dao , Ġapplication ) ĊĠĠĠĠĠĠĠ Ġap artment ViewModel Ġ= ĠA partment ViewModel ( Courier Locker Database . getInstance ( application ). ap artment Dao , Ġapplication ) ĊĠĠĠĠĠĠĠ Ġlocation Helper Ġ= Ġ( require Context (). application Context Ġas ĠCour ier Locker Application ). kode in . instance () ĊĠĠĠĠĠĠĠ Ġbottom Sheet Create Trip Bubble Fragment Ġ= ĠBottom Sheet Create Trip Bubble Fragment Ġ{ Ġrefresh UI () Ġ} ĊĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġrequire Activity () Ġas ĠCurrent Status Bubble Activity ĊĠĠĠĠĠĠĠ Ġm Trip . post Value ( null ) ĊĠĠĠĠĠĠĠ Ġm Address able . post Value ( null ) ĊĊĠĠĠĠĠĠĠ Ġsetup Binding ( view ) ĊĠĠĠĠĠĠĠ Ġsetup Observer s () ĊĠĠĠĠĠĠĠ Ġrefresh UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch IO Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Ġ= Ġtrip ViewModel . today Total Money () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġtrip ViewModel . today Completed Tri ps () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtri ps Ġ= Ġtrip ViewModel . get Most Recent Tri ps ( Const . DEFAULT _ REC ENT _ TR IPS _ LIMIT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith UI Context Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Status TextView . text Ġ= Ġ"$ total Ġ| Ġ$ size " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate Recent Tri ps ( tri ps ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Binding ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Bubble Current Status Binding . bind ( view ) ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġbinding . recent Tri ps Container . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠDeep Link Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠMainActivity . INT ENT _ EDIT _ TR IP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Trip . value ?. let Ġ{ Ġtrip Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" edit Trip Id ", Ġtrip . id . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . new Trip Button . setOnClickListener Ġ{ Ġbtn View Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( btn View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn View . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Create Trip Bubble Fragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( child FragmentManager , Ġ" Bottom Sheet Create Trip Bubble Fragment ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn View . post Delayed ({ Ġbtn View . isEnabled Ġ= Ġtrue Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getInteger ( android . R . integer . config _ medium Anim Time ). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . add Stop Button . setOnClickListener Ġ{ Ġbtn View Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( btn View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn View . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ProgressBar () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch UI Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġlocation Helper . get From Location ( null , Ġlocation Helper . last Latitude . value !! , Ġlocation Helper . last Longitude . value !! , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( address . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstop Ġ= ĠStop ( address [ 0 ]. getAddress Line ( 0 ), Ġaddress [ 0 ]. latitude , Ġaddress [ 0 ]. longitude ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Trip . value ?. let Ġ{ Ġtrip Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrip . stops . add ( stop ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Trip Ġ= Ġwith IO Context Ġ{ Ġtrip ViewModel . update Trip ( trip ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Trip . post Value ( new Trip ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . message ?. let Ġ{ Ġmsg Ġ-> Ġactivity . show Toast Message ( msg ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn View . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn View . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide ProgressBar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . next Trip Image Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtil . simulate Pressed View ( binding . recent Tri ps Container ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrip Ġ= Ġrecent Tri ps List Iterator . with Index (). next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Trip . post Value ( trip . value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġreset Ġthe Ġiterator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! recent Tri ps List Iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Tri ps List Iterator Ġ= ĠlistOf Recent Tri ps . list Iterator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . nearest Address able Container . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Helper . last Latitude . observe ( view Lifecycle Owner , Ġlatitude Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . open Map Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf A part ments . find Ġ{ Ġapt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġaddress able Ġ= Ġm Address able . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGate Code Ġ-> Ġapt . gate Code Id Ġ== Ġaddress able . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠA partment Ġ-> Ġapt . id Ġ== Ġaddress able . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġapt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠDeep Link Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠMainActivity . INT ENT _ EDIT _ AP ART MENT _ MAP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" apt Id ", Ġapt . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . build ings Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Navig able Build ings Fragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( child FragmentManager , Ġ" Bottom Sheet Navig able Build ings Fragment ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . next Address able Image Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtil . simulate Pressed View ( binding . nearest Address able Container ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġdisable Ġthis Ġobserver Ġfor Ġund ist ur bed Ġnavig ating Ġthe Ġrecent Gate Codes List , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġuser Ġcan Ġtap Ġthe Ġcurrent Ġgate code Ġto Ġstart Ġob serving Ġnearby Ġgate codes Ġagain ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Helper . last Latitude . remove Observer ( latitude Observer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (:: recent Address ables List Iterator . isInitialized ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġrecent Address ables List Iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddr Ġ= Ġrecent Address ables List Iterator . with Index (). next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Address able . post Value ( addr . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Address ables List Iterator Ġ= ĠlistOf Address ables . list Iterator () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Address ables List Iterator . next (). let Ġ{ Ġaddress able Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Address able . post Value ( address able ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observer s () Ġ{ ĊĠĠĠĠĠĠĠ Ġlocation Helper . last Latitude . observe ( view Lifecycle Owner , Ġlatitude Observer ) ĊĊĠĠĠĠĠĠĠ Ġcombine Tuple ( gate Code ViewModel . gate Codes , Ġap artment ViewModel . ap art ments ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , Ġ{ Ġ( gate Codes , Ġapart ments ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gate Codes Ġ!= Ġnull Ġ&& Ġapart ments Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Recent Gate Codes Ġ= Ġgate Codes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf A part ments Ġ= Ġapart ments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate Recent Address ables () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġm Trip . observe ( view Lifecycle Owner , Ġ{ Ġtrip Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrip ?. run Ġ{ Ġinject Trip Into View ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġm Address able . observe ( view Lifecycle Owner , Ġ{ Ġaddress able Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress able ?. run Ġ{ Ġinject Address able Into View ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . progress Bar . isIn determinate Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbinding . progress Bar . isVisible Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . progress Bar . isVisible Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopulate Recent Tri ps ( tri ps : ĠList < Trip > ){ ĊĠĠĠĠĠĠĠ ĠlistOf Recent Tri ps Ġ= Ġtri ps . to Mutable List () ĊĠĠĠĠĠĠĠ Ġrecent Tri ps List Iterator Ġ= ĠlistOf Recent Tri ps . list Iterator () ĊĊĠĠĠĠĠĠĠ Ġif ( recent Tri ps List Iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Tri ps List Iterator . next (). let Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Trip . post Value ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopulate Recent Address ables () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Default Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Address ables Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Address ables . addAll ( listOf A part ments . filter Ġ{ Ġapt Ġ-> Ġapt . gate Code Id Ġ< Ġ 1 Ġ}) Ġ// Ġapt s Ġw / o Ġgate code Ġrelation ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Address ables . addAll ( listOf Recent Gate Codes ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Address ables Ġ= ĠlistOf Address ables . sorted By Ġ{ Ġaddress able Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Helper . calculate Approx Distance Between Map Points ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Helper . last Latitude . value !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Helper . last Longitude . value !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress able . latitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress able . longitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. take ( 5 ). to Mutable List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Address ables List Iterator Ġ= ĠlistOf Address ables . list Iterator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( recent Address ables List Iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Address ables List Iterator . next (). let Ġ{ Ġaddress able Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Address able . post Value ( address able ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinject Trip Into View ( trip : ĠTrip ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . trip Pickup Address TextView . text Ġ= ĠHtml Compat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. from Html ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"< b > start :</ b > Ġ${ Util . address Short ener ( trip . pickup Address )} ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHtml Compat . FROM _ HTML _ MODE _ LEG ACY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbinding . trip D ro po ff Address TextView . text Ġ= ĠHtml Compat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. from Html ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"< b > end :</ b > Ġ${ Util . address Short ener ( trip . drop Off Address )} ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHtml Compat . FROM _ HTML _ MODE _ LEG ACY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( trip . pay Amount . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . trip Pay TextView . visibility Ġ= ĠTextView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . trip Pay TextView . text Ġ= ĠUtil . number Format Instance . format ( trip . pay Amount . toDouble ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( trip . g ig Name . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . trip G ig TextView . visibility Ġ= ĠTextView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . trip G ig TextView . text Ġ= Ġtrip . g ig Name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinject Address able Into View ( address able : ĠAddress able ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . address able Address TextView . text Ġ= ĠUtil . address Short ener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġaddress able . address , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġwhen ( address able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGate Code Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( address able . codes . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . gate Codes TextView . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gate Ġcodes : Ġ${ address able . codes . take ( 4 ). join ToString (", Ġ" )} ". also Ġ{ Ġbinding . gate Codes TextView . text Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gate Ġcodes : Ġn / a ". also Ġ{ Ġbinding . gate Codes TextView . text Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapt Ġ= ĠlistOf A part ments . find Ġ{ Ġapt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapt . gate Code Id Ġ== Ġaddress able . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( apt Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . address able Name TextView . text Ġ= Ġapt . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . open Map Button . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( apt . build ings . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . build ings Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Navig able Build ings Fragment Ġ= ĠBottom Sheet Navig able Build ings Fragment ( apt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġbinding . build ings Button . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . address able Name TextView . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . open Map Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . build ings Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠA partment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . address able Name TextView . text Ġ= Ġaddress able . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . gate Codes TextView . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . open Map Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gate Ġcodes : Ġn / a ". also Ġ{ Ġbinding . gate Codes TextView . text Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( address able . build ings . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . build ings Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Navig able Build ings Fragment Ġ= ĠBottom Sheet Navig able Build ings Fragment ( address able ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġbinding . build ings Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }