package Ġcom . test . b cha is orn . mission se attle Ċ Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġcom . google . android . gms . maps .* Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ import Ġcom . test . b cha is orn . mission se attle . models . Venue Ċ import Ġcom . test . b cha is orn . mission se attle . R . string . se attle _ marker _ title Ċ import Ġcom . test . b cha is orn . mission se attle . storage . Favorite Venue Store Ċ import Ġkotlinx . android . synt hetic . main . activity _ venue _ detail .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠV en ue Detail Activity Ġ: ĠAppCompatActivity (), ĠOn Map Ready Callback Ġ{ ĊĊĠ Ġprivate Ġlateinit Ġvar Ġven ue : ĠV en ue ĊĊĠ Ġlateinit Ġvar Ġmap : ĠGoogle Map ĊĊĠ Ġ@ Inject ĊĠ Ġlateinit Ġvar Ġfavorite Venue Store : ĠF avorite Venue Store ĊĊĠ Ġprivate Ġlateinit Ġvar Ġmap View : ĠMap View ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ ĠsetContentView ( R . layout . activity _ venue _ detail ) ĊĊĠĠĠ Ġ( application Ġas ĠMain Application ). application Component (). inject ( this ) ĊĊĠĠĠ Ġmap View Ġ= Ġthis . findViewById ( R . id . map _ detail ) ĊĠĠĠ Ġmap View . onCreate ( savedInstanceState ) ĊĠĠĠ Ġmap View . getMap Async ( this ) ĊĊĠĠĠ Ġven ue Ġ= Ġ Ġintent . extras . get Parcelable ( VEN UE _ EXTRA ) Ġas ĠV en ue ĊĊĠĠĠ Ġven ue _ detail _ name . text Ġ= Ġven ue . name ĊĠĠĠ Ġven ue _ detail _ distance . text Ġ= ĠgetString ( R . string . venue _ detail _ distance _ text , Ġven ue . location . distance To Se attle ) ĊĠĠĠ Ġven ue _ detail _ url . text Ġ= Ġven ue . url ĊĠĠĠ Ġven ue _ detail _ address . text Ġ= ĠgetString ( R . string . venue _ detail _ address _ text , Ġven ue . location . address ) ĊĊĠĠĠ Ġif Ġ(! venue . categories . isEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġven ue _ detail _ category . text Ġ= ĠgetString ( R . string . venue _ detail _ category _ text , Ġven ue . categories [ 0 ]. name ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ) Ġ{ ĊĠĠĠ Ġ// ĠNote Ġthat Ġlite Mode Ġwas Ġused Ġfor Ġthe Ġdetail Ġmap . ĠSince Ġit 's Ġa Ġstatic Ġimage Ġthe Ġmap Ġloads Ġmuch Ġfaster Ġthis Ġway , Ġthough ĊĠĠĠ Ġ// Ġthere Ġare Ġmissing Ġfeatures Ġsuch Ġas Ġzoom Ġand Ġp anning . ĊĠĠĠ Ġmap Ġ= Ġgoogle Map ĊĊĠĠĠ Ġval Ġse attle Ġ= ĠLat Lng ( SE ATT LE _ LAT , ĠSE ATT LE _ L NG ) ĊĠĠĠ Ġmap . add Marker ( Marker Options (). position ( se attle ). title ( getString ( se attle _ marker _ title ))) ĊĠĠĠ Ġmap . add Marker ( Marker Options (). position ( venue . location . lat Lng ). title ( venue . name )). show Info Window () ĊĠĠĠ Ġ// ĠJust Ġsetting Ġthe Ġzoom Ġto Ġa Ġlevel Ġof Ġ 1 4 Ġhere Ġbecause Ġit Ġhandles Ġmost Ġcases . ĠIde ally ĠI Ġwould Ġhave Ġzoom Ġcontrols ĊĠĠĠ Ġ// Ġand Ġgive Ġthe Ġuser Ġthat Ġflexibility . ĊĠĠĠ Ġmap . move Camera ( Camera Update Factory . new LatLng Zoom ( se attle , Ġ 1 4 f )) ĊĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġtoggle Favorite Venue (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ(! favorite Venue Store . contains Venue ( venue . id )) Ġ{ ĊĠĠĠĠĠ Ġfavorite Venue Store . add Venue ( venue . id ) ĊĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġfavorite Venue Store . remove Venue ( venue . id ) ĊĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠ Ġmenu Inflater . inflate ( R . menu . detail _ menu , Ġmenu ) ĊĠĠĠ Ġval Ġitem Ġ= Ġmenu . find Item ( R . id . favorite _ icon ) ĊĊĠĠĠ Ġif Ġ( favorite Venue Store . contains Venue ( venue . id )) Ġ{ ĊĠĠĠĠĠ Ġitem . icon Ġ= Ġget Drawable ( R . drawable . ic _ baseline _ favorite _ 2 4 px ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġoverride Ġ Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( item . itemId Ġ== ĠR . id . favorite _ icon ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( toggle Favorite Venue ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem . setIcon ( R . drawable . ic _ baseline _ favorite _ 2 4 px ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġitem . setIcon ( R . drawable . ic _ baseline _ favorite _ border _ 2 4 px ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠV EN UE _ EXTRA Ġ= Ġ" venue " ĊĠĠĠ Ġprivate Ġconst Ġval ĠSE ATT LE _ LAT Ġ= Ġ 4 7 . 6 0 6 2 0 0 ĊĠĠĠ Ġprivate Ġconst Ġval ĠSE ATT LE _ L NG Ġ= Ġ- 1 2 2 . 3 3 2 1 0 0 ĊĠ Ġ} Ċ } Ċ