package Ġcom . mach ade v . android . sdl projection Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . location . Location Ċ import Ġandroid . location . Location Listener Ċ import Ġandroid . location . Location Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroid . view . Display Ċ import Ġcom . smart dev ic el ink . streaming . video . S dl Remote Display Ċ import Ġorg . os md roid . config . Configuration Ċ import Ġorg . os md roid . util . Geo Point Ċ import Ġorg . os md roid . views . MapView Ċ import Ġorg . os md roid . views . overlay . Item ized Icon Overlay Ċ import Ġorg . os md roid . views . overlay . Overlay Item Ċ import Ġjava . util . ArrayList Ċ Ċ /** Ċ Ġ* Ġ ãĥĹãĥŃ ãĤ¸ãĤ§ ãĤ¯ ãĤ·ãĥ§ãĥ³ çĶ¨ ãģ® çĶ» éĿ¢ Ċ Ġ*/ Ċ class ĠRemote Display Ġ: ĠS dl Remote Display Ġ{ ĊĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġdisplay : ĠDisplay ?) Ġ: Ġsuper ( context , Ġdisplay ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmap View : ĠMap View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlocation Manager : ĠLocation Manager ĊĠĠĠ Ġprivate Ġvar Ġitems Location Ġ= ĠArrayList < Overlay Item >() ĊĠĠĠ Ġprivate Ġvar Ġoverlay Location Ġ: ĠItem ized Icon Overlay < Overlay Item >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . remote _ display ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠMap View ãĤĴåıĸå¾Ĺ ĊĠĠĠĠĠĠĠ Ġmap View Ġ= ĠfindViewById < MapView >( R . id . map View ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠZoom ãĥ¬ ãĥĻ ãĥ«ãģ® è¨Ńå®ļ ĊĠĠĠĠĠĠĠ Ġmap View . controller . zoom To ( 1 7 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġãĥ Ń ãĤ±ãĥ¼ãĤ·ãĥ§ãĥ³ ãĥŀ ãĥį ãĥ¼ãĤ¸ ãĥ£ çĶŁæĪĲ ĊĠĠĠĠĠĠĠ Ġlocation Manager Ġ= Ġcontext . getSystem Service ( Context . LOCATION _ SERVICE ) Ġas ĠLocation Manager ĊĠĠĠĠĠĠĠ ĠConfiguration . getInstance (). load ( context . application Context , ĠPreference Manager . getDefault SharedPreferences ( context . application Context )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġstart Location Update () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġstop Location Update () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ------------------------------ ĊĠĠĠ Ġ// Ġ ä½įç½® æĥħåł± Listener ĊĠĠĠ Ġ// ------------------------------ ĊĠĠĠ Ġprivate Ġval Ġlocation Listener Ġ= Ġobject Ġ: ĠLocation Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location Changed ( location : ĠLocation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ çı¾åľ¨ ä½įç½® ãģ® ãĤ¢ ãĤ¤ ãĤ³ãĥ³ ãĤĴ ãĤª ãĥ¼ãĥĲ ãĥ¼ãĥ ¬ ãĤ¤ è¡¨ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgeo Ġ= ĠGeo Point ( location . latitude , Ġlocation . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Overlay Location ( geo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ çı¾åľ¨ ä½įç½® ãĤĴ ãĥŀ ãĥĥãĥĹ ä¸Ńå¿ĥ ãģ« è¨Ńå®ļ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap View . controller . set Center ( geo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Status Changed ( provider : ĠString ?, Ġstatus : ĠInt , Ġextras : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Enabled ( provider : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Disabled ( provider : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ ä½įç½® æĥħåł± ãģ® åıĸå¾Ĺ ãĤĴ éĸĭå§ĭ ĊĠĠĠ Ġprivate Ġfun Ġstart Location Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ä½įç½® æĥħåł± åıĸå¾Ĺ Permission ãģĮ è¨± åı¯ æ¸ Ī ãĤĴ ç¢ºèªį ãģĹãģ¦ ä½įç½® æĥħåł± åıĸå¾Ĺ ãĤĴ çĻ»éĮ² ĊĠĠĠĠĠĠĠ Ġif Ġ( context . check Self Permission ( android . Manifest . permission . ACCESS _ F INE _ LOCATION ) Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager . request Location Updates ( Location Manager . GPS _ PROVIDER , Ġ 5 0 0 , Ġ 2 f , Ġlocation Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ ä½įç½® æĥħåł± ãģ® åıĸå¾Ĺ ãĤĴ åģľæŃ¢ ĊĠĠĠ Ġprivate Ġfun Ġstop Location Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġlocation Manager . remove Updates ( location Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ çı¾åľ¨ ä½įç½® ãģ® ãĤ¢ ãĤ¤ ãĤ³ãĥ³ ãĤĴ ãĤª ãĥ¼ãĥĲ ãĥ¼ãĥ ¬ ãĤ¤ è¡¨ç¤º ĊĠĠĠ Ġprivate Ġfun Ġset Overlay Location ( geo : Geo Point ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay Location ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Location . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View . overlay s . remove ( overlay Location ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ çı¾åľ¨ ä½įç½® ãģ® ãĤ¢ ãĤ¤ ãĤ³ãĥ³ çĶŁæĪĲ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġresources . get Drawable ( R . drawable . car ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠOverlay Item ("", Ġ"", Ġgeo ) ĊĠĠĠĠĠĠĠ Ġitem . set Marker ( icon ) ĊĠĠĠĠĠĠĠ Ġitems Location . add ( item ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠãĤ ª ãĥ¼ãĥĲ ãĥ¼ãĥ ¬ ãĤ¤ çĶŁæĪĲ ĊĠĠĠĠĠĠĠ Ġoverlay Location Ġ= ĠItem ized Icon Overlay ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems Location , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠItem ized Icon Overlay . On Item Gesture Listener < Overlay Item > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Single Tap Up ( index : ĠInt , Ġitem : ĠOverlay Item ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Long Press ( index : ĠInt , Ġitem : ĠOverlay Item ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġãĥ ŀ ãĥĥãĥĹ ãģ¸ ãĤª ãĥ¼ãĥĲ ãĥ¬ ãĤ¤ è¿½åĬł ĊĠĠĠĠĠĠĠ Ġmap View . overlay s . add ( overlay Location ) ĊĠĠĠ Ġ} Ċ } Ċ