package Ġdev . har old j ose . om in ibus . android . Pages ĊĊ Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġdev . har old j ose . om in ibus . android . Pages . ui . theme . O min ibus Theme Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . Component Activity Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Directions Bus Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . remember Coroutine Scope Ċ import Ġandroidx . compose . runtime . save able . remember Save able Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . view interop . Android View Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . compose . Nav Host Ċ import Ġandroidx . navigation . compose . comp osable Ċ import Ġandroidx . navigation . compose . navigate Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġcom . google . android . libraries . maps . Camera Update Factory Ċ import Ġcom . google . android . libraries . maps . MapView Ċ import Ġcom . google . android . libraries . maps . model . LatLng Ċ import Ġcom . google . maps . android . k tx . add Marker Ċ import Ġcom . google . maps . android . k tx . await Map Ċ import Ġkotlinx . coroutines . launch ĊĊĊ Ċ // import Ġdev . har old j ose . om in ibus . G reeting Ċ // Ċ // fun Ġg reet (): ĠString Ġ{ Ċ // ĠĠĠ Ġreturn ĠG reeting (). greeting () Ċ //} Ċ // Ċ //@ Composable Ċ // fun ĠG reeting ( name : ĠString ) Ġ{ Ċ // ĠĠĠ ĠColumn Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġname ) Ċ // ĠĠĠĠĠĠĠ ĠTest View (" test e ") Ċ // ĠĠĠ Ġ} Ċ //} Ċ Ċ private Ġconst Ġval ĠInitial Zoom Ġ= Ġ 1 5 f Ċ const Ġval ĠMin Zoom Ġ= Ġ 2 f Ċ const Ġval ĠMax Zoom Ġ= Ġ 2 0 f Ċ Ċ object ĠMain Dest inations Ġ{ ĊĠĠĠ Ġconst Ġval ĠMAP _ PAGE Ġ= Ġ" MAP _ PAGE " ĊĠĠĠ Ġconst Ġval ĠGET _ IN _ PAGE Ġ= Ġ" GET _ IN _ PAGE " Ċ } Ċ Ċ class ĠMap Page Ġ: ĠComponent Activity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠO min ibus Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠA Ġsurface Ġcontainer Ġusing Ġthe Ġ' background ' Ġcolor Ġfrom Ġthe Ġtheme ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( color Ġ= ĠMaterial Theme . colors . background ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġremember Nav Controller () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNav Host ( nav Controller , Ġstart Destination Ġ= ĠMain Dest inations . MAP _ PAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp osable ( Main Dest inations . MAP _ PAGE ) Ġ{ ĠMap Page Content ( nav Controller ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp osable ( Main Dest inations . GET _ IN _ PAGE ) Ġ{ ĠGet In Page Content ( nav Controller ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ @ Composable Ċ fun ĠMap Page Content ( ĊĠĠĠ Ġnav Controller : ĠNav Controller , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ ĠScaffold ( top Bar Ġ= Ġ{ ĠTop AppBar ( title Ġ= Ġ{ Text (" O mn ibus ") }) Ġ Ġ}, ĊĠĠĠĠĠĠĠ Ġfloating ActionButton Position Ġ= ĠF ab Position . End , ĊĠĠĠĠĠĠĠ Ġfloating ActionButton Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFloating ActionButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( Main Dest inations . GET _ IN _ PAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠMaterial Theme . colors . primary , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Directions Bus ," ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ, Ġcontent Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCity MapView ( latitude . toString (), Ġlongitude . toString ()) ĊĠĠĠĠĠĠĠ Ġ}) Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠCity MapView ( latitude : ĠString , Ġlongitude : ĠString ) Ġ{ ĊĠĠĠ Ġ// ĠThe ĠMap View Ġlifecycle Ġis Ġhandled Ġby Ġthis Ġcomp osable . ĠAs Ġthe ĠMap View Ġalso Ġneeds Ġto Ġbe Ġupdated ĊĠĠĠ Ġ// Ġwith Ġinput Ġfrom ĠCompose ĠUI , Ġthose Ġupdates Ġare Ġencaps ulated Ġinto Ġthe ĠMap View Container ĊĠĠĠ Ġ// Ġcomp osable . ĠIn Ġthis Ġway , Ġwhen Ġan Ġupdate Ġto Ġthe ĠMap View Ġhappens , Ġthis Ġcomp osable Ġwon 't ĊĠĠĠ Ġ// Ġre compose Ġand Ġthe ĠMap View Ġwon 't Ġneed Ġto Ġbe Ġre created . ĊĠĠĠ Ġval Ġmap View Ġ= Ġremember MapView With Lifecycle () ĊĠĠĠ ĠMap View Container ( map View , Ġlatitude , Ġlongitude ) Ċ } ĊĊ Ċ const Ġval Ġlatitude Ġ= Ġ 4 0 . 7 5 7 7 3 Ċ const Ġval Ġlongitude Ġ= Ġ- 7 3 . 9 8 5 7 0 8 Ċ Ċ const Ġval Ġlatitude 1 Ġ= Ġ 4 0 . 7 5 5 5 6 0 5 7 8 4 5 6 7 4 5 Ċ const Ġval Ġlongitude 1 Ġ= Ġ- 7 3 . 9 8 2 2 9 7 3 9 3 0 5 7 1 8 Ċ Ċ @ Composable Ċ private Ġfun ĠMap View Container ( ĊĠĠĠ Ġmap : ĠMap View , ĊĠĠĠ Ġlatitude : ĠString , ĊĠĠĠ Ġlongitude : ĠString , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġmap Zoom Ġby Ġremember Save able ( map ) Ġ{ Ġmutable State Of ( Initial Zoom )} ĊĠĠĠ Ġvar Ġmap Initialized Ġby Ġremember ( map ) Ġ{ Ġmutable State Of ( false ) Ġ} ĊĠĠĠ ĠLa unched Effect ( map , Ġmap Initialized ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! map Initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgoogle Map Ġ= Ġmap . await Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . set Zoom ( map Zoom ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠLat Lng ( latitude . toDouble (), Ġlongitude . toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . add Marker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle (" Marker ĠTitle Ġ 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition 1 Ġ= ĠLat Lng ( latitude 1 . toDouble (), Ġlongitude 1 . toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . add Marker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition ( position 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle (" Marker ĠTitle Ġ 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . move Camera ( Camera Update Factory . new LatLng ( position )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Initialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcoroutine Scope Ġ= Ġremember Coroutine Scope () ĊĠĠĠ ĠAndroid View ({ Ġmap Ġ}) Ġ{ Ġmap View Ġ-> ĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View . await Map () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview ( show Background Ġ= Ġtrue ) Ċ @ Composable Ċ fun ĠMap Page Preview () Ġ{ ĊĠĠĠ ĠMap Page Content ( remember Nav Controller ()) Ċ }