/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠMu ham mad ĠU ts man Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . uts man . smart marker . mapbox Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . os . Handler Ċ import Ġandroid . util . Log Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġcom . mapbox . geojson . Feature Ċ import Ġcom . mapbox . geojson . Point Ċ import Ġcom . mapbox . mapbox sdk . geometry . LatLng Ċ import Ġcom . mapbox . mapbox sdk . maps . Style Ċ import Ġcom . mapbox . mapbox sdk . style . layers . Property Factory Ċ import Ġcom . mapbox . mapbox sdk . style . layers . Symbol Layer Ċ import Ġcom . mapbox . mapbox sdk . style . sources . Geo Json Source Ċ import Ġcom . mapbox . mapbox sdk . utils . Bitmap Utils Ċ Ċ class ĠMarker Builder ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġstyle : ĠStyle ?) Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġjson Source : ĠGeo Json Source ĊĠĠĠ Ġlateinit Ġvar Ġsymbol Layer : ĠSymbol Layer ĊĊĠĠĠ Ġprivate Ġfun Ġnew Symbol ( id : ĠString ): ĠSymbol Layer Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSymbol Layer ( id , Ġ" source -$ id ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġnew Marker ( id : ĠString , Ġlat Lng : ĠLat Lng , Ġ@ Drawable Res Ġicon Vector : ĠInt , Ġvector : ĠBoolean Ġ= Ġfalse ): ĠSymbol Layer Ġ{ ĊĠĠĠĠĠĠĠ Ġsymbol Layer Ġ= Ġnew Symbol ( id ) ĊĊĠĠĠĠĠĠĠ Ġjson Source Ġ= ĠGeo Json Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" source -$ id ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFeature . from Geometry ( Point . from Lng Lat ( lat Lng . longitude , Ġlat Lng . latitude )) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( vector ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle ?. add Image (" marker -$ id ", Ġmarker Vector ( context , Ġicon Vector )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmarker Bitmap Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap Factory . decode Resource ( context . resources , Ġicon Vector ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle ?. add Image (" marker -$ id ", Ġmarker Bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNullPointerException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Smart Marker - mapbox ", Ġ" Cannot Ġprocess Ġbitmap , Ġmaybe Ġyour Ġmarker Ġis Ġvector , Ġplease Ġadd Ġ' true ' Ġin Ġ' add Icon '") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġstyle ?. add Source ( json Source ) ĊĊĠĠĠĠĠĠĠ Ġsymbol Layer . with Properties ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Factory . icon Image (" marker -$ id "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Factory . icon Ignore Placement ( true ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Factory . icon Allow Overlap ( true ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠLog . i (" symbol Ġlayer Ġid Ġis Ġ--> Ġ", Ġid ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsymbol Layer ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun ĠStyle . add Marker ( symbol Layer : ĠSymbol Layer ) Ġ{ ĊĠĠĠ Ġadd Layer ( symbol Layer ) Ċ } Ċ Ċ internal Ġfun Ġmarker Vector ( context : ĠContext , Ġ@ Drawable Res Ġmarker : ĠInt ): ĠBitmap Ġ{ ĊĠĠĠ Ġval Ġdrawable Ġ= ĠResources Compat . get Drawable ( context . resources , ĊĠĠĠĠĠĠĠ Ġmarker , Ġnull ) ĊĠĠĠ Ġreturn ĠBitmap Utils . get Bitmap From Drawable ( drawable ) Ġ?: ĠBitmap Factory . decode Resource ( context . resources , ĊĠĠĠĠĠĠĠ ĠR . drawable . mapbox _ marker _ icon _ default ĊĠĠĠ Ġ) Ċ }