package Ġcom . example . b ik est ations Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġcom . example . b ik est ations . databinding . Fragment Station Detail Binding Ċ import Ġcom . example . b ik est ations . model . Main ViewModel Ċ import Ġcom . google . android . gms . maps . Camera Update Factory Ċ import Ġcom . google . android . gms . maps . Google Map Ċ import Ġcom . google . android . gms . maps . MapView Ċ import Ġcom . google . android . gms . maps . On Map Ready Callback Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ Ċ class ĠStation Detail Fragment Ġ: ĠFragment (), ĠOn Map Ready Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmap View : ĠMap View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Station Detail Binding ĊĊĠĠĠ Ġprivate Ġval Ġshared ViewModel : ĠMain ViewModel Ġby Ġactivity ViewModels () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Station Detail Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmap View Bundle Ġ= ĠsavedInstanceState ?. get Bundle ( MAP VIEW _ B UNDLE _ KEY ) ĊĠĠĠĠĠĠĠ Ġmap View Ġ= Ġbinding . map View ĊĠĠĠĠĠĠĠ Ġmap View . onCreate ( map View Bundle ) ĊĠĠĠĠĠĠĠ Ġmap View . getMap Async ( this ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstation Ġ= Ġshared ViewModel . station . value !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( shared ViewModel . station . value !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstation Ġ= ĠLat Lng ( lat , Ġlng ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . add Marker ( Marker Options (). position ( station ). title ( s na )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . move Camera ( Camera Update Factory . new LatLng Zoom ( station , Ġ 1 5 f )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġval Ġmap View Bundle Ġ= Ġout State . get Bundle ( MAP VIEW _ B UNDLE _ KEY ) Ġ?: ĠBundle (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout State . put Bundle ( MAP VIEW _ B UNDLE _ KEY , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmap View . on Save InstanceState ( map View Bundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġmap View . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġmap View . onStart () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġmap View . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġmap View . on Pause () ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġmap View . on Destroy () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Low Memory () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Low Memory () ĊĠĠĠĠĠĠĠ Ġmap View . on Low Memory () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMAP VIEW _ B UNDLE _ KEY Ġ= Ġ" MapView Bundle Key " ĊĠĠĠ Ġ} Ċ }