package Ġfr . az hot . re ale state manager . view . fragment Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Context Ċ import Ġandroid . location . Geo coder Ċ import Ġandroid . location . Location Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Looper Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Navigation Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . google . android . gms . common . Connection Result Ċ import Ġcom . google . android . gms . common . Google Api Availability Ċ import Ġcom . google . android . gms . location .* Ċ import Ġcom . google . android . gms . maps . Camera Update Factory Ċ import Ġcom . google . android . gms . maps . Google Map Ċ import Ġcom . google . android . gms . maps . On Map Ready Callback Ċ import Ġcom . google . android . gms . maps . Support Map Fragment Ċ import Ġcom . google . android . gms . maps . model .* Ċ import Ġfr . az hot . re ale state manager . R Ċ import Ġfr . az hot . re ale state manager . Real E state Manager Application Ċ import Ġfr . az hot . re ale state manager . databinding . Fragment Map Binding Ċ import Ġfr . az hot . re ale state manager . model . Property Ċ import Ġfr . az hot . re ale state manager . utils .* Ċ import Ġfr . az hot . re ale state manager . view model . Map Fragment ViewModel Ċ import Ġfr . az hot . re ale state manager . view model . Map Fragment ViewModel Factory Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlinx . coroutines . Dispatch ers . IO Ċ import Ġkotlinx . coroutines . Dispatch ers . Main ĊĊ Ċ class ĠMap Fragment Ġ: ĠFragment (), ĠOn Map Ready Callback Ġ{ ĊĊĊĠĠĠ Ġ// Ġvariables ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Map Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnav Controller : ĠNav Controller ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgoogle Map : ĠGoogle Map ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġf used Location Provider Client : ĠF used Location Provider Client ĊĠĠĠ Ġprivate Ġvar Ġlocation Callback : ĠLocation Callback ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdevice Location : ĠLocation ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠMap Fragment ViewModel Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠ ĠMap Fragment ViewModel Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity ?. application Ġas ĠReal E state Manager Application ). property Repository ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġoverridden Ġfunctions ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Google Services () ĊĠĠĠĠĠĠĠ Ġcheck And Request Location Permission () ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Map Binding . inflate ( in flater ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġnav Controller Ġ= ĠNavigation . find Nav Controller ( view ) ĊĠĠĠĠĠĠĠ Ġstart Map () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( google Map Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġthis . google Map Ġ= Ġgoogle Map ĊĠĠĠĠĠĠĠ Ġthis . google Map . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Map Style ( Map Style Options . load Raw Resource Style ( context , ĠR . raw . map style )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmove Camera ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Update Factory . new LatLng Zoom ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( CENTER _ F RAN CE _ LAT , ĠC ENTER _ F RAN CE _ LONG ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINIT _ ZO OM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Location Permission () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget Device Location Updates () ĊĠĠĠĠĠĠĠ Ġobserve Property List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġif Ġ( this :: f used Location Provider Client . isInitialized ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf used Location Provider Client . remove Location Updates ( location Callback ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġfunctions ĊĠĠĠ Ġprivate Ġfun Ġcheck Google Services () Ġ{ ĊĠĠĠĠĠĠĠ ĠGoogle Api Availability . getInstance (). is Google Play Services Available ( activity ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ== ĠConnection Result . SUCCESS Ġ-> Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGoogle Api Availability . getInstance (). is User Res olvable Error ( this ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGoogle Api Availability . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getError Dialog ( activity , Ġthis , ĠRC _ GOOGLE _ SERVICES _ DIALOG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . cannot _ make _ map _ requests ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck And Request Location Permission () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! check Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRC _ LOCATION _ PERMISSION S ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Location Permission () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! check Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate Up () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( child FragmentManager . find Fragment ById ( binding . map Fragment . id ) Ġas ĠSupport Map Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getMap Async ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Device Location Updates () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Request Ġ= ĠLocation Request (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= ĠDEFAULT _ INTERVAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfast est Interval Ġ= ĠFAST EST _ INTERVAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpriority Ġ= ĠLocation Request . PRIORITY _ HIGH _ AC CUR ACY ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( location Callback Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Callback Ġ= Ġobject Ġ: ĠLocation Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location Result ( result : ĠLocation Result ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Location Result ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ?. last Location ?. let Ġ{ Ġlocation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( device Location Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove Camera To ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Location Ġ= Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location Availability ( availability : ĠLocation Availability ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Location Availability ( availability ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Location Permission () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( availability ?. is Location Available Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . is My Location Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . is My Location Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Location Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . location _ not _ available ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf used Location Provider Client Ġ= ĠLocation Services . getF used Location Provider Client ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Location Updates ( location Request , Ġlocation Callback , ĠL ooper . my Looper ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove Camera To ( location : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgoogle Map . animate Camera ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Update Factory . new LatLng Zoom ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( location . latitude , Ġlocation . longitude ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ ZO OM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve Property List () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . getProperty List (). observe ( view Lifecycle Owner ) Ġ{ Ġproperty List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgeo Coder Ġ= ĠGeo coder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( IO ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( property Ġin Ġproperty List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretrieve Location And Load Marker ( property , Ġgeo Coder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġretrieve Location And Load Marker ( property : ĠProperty , Ġgeo Coder : ĠGeo coder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgeo Coder . get From Location Name ( property . address . toString (), Ġ 1 ). run Ġaddress @{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Marker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( this @ address [ 0 ]. latitude , Ġthis @ address [ 0 ]. longitude ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . exception OrNull ()?. let Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( this @ Map Fragment :: class . simple Name , Ġ" observe Property List ", Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Marker ( property : ĠProperty , Ġlat Lng : ĠLat Lng , Ġcontext : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġcreate Bitmap With G lide ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Options (). override ( MAP _ PH OTO _ WIDTH , ĠMAP _ PH OTO _ HEIGHT ). circle Crop (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( property . photo List [ 0 ]. uri ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbitmap Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMarker Options (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( property . detail . property Type ?. toString () Ġ?: ĠgetString ( R . string . not _ provided )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsnippet ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( property . address . toString (). isNotEmpty ()) Ġproperty . address . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠgetString ( R . string . not _ provided ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon ( Bitmap Descriptor Factory . from Bitmap ( bitmap )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition ( lat Lng ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . add Marker ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }