package Ġcom . yan . location mock gen ius Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . baidu . location . BD Abstract Location Listener Ċ import Ġcom . baidu . location . BD Location Ċ import Ġcom . baidu . mapapi . map . Map Status Update Factory Ċ import Ġcom . baidu . mapapi . map . My Location Data Ċ import Ġcom . baidu . mapapi . model . LatLng Ċ import Ġcom . yan . location mock gen ius . constant . Mock Data Ċ import Ġcom . yan . location mock gen ius . entity . L MG Location Ċ import Ġcom . yan . location mock gen ius . entity . L MG Poi Ċ import Ġcom . yan . location mock gen ius . location . L MG Location Client Ċ import Ġcom . yan . location mock gen ius . location . L MG Location Listener Ċ import Ġcom . yan . location mock gen ius . search . L MG Search Client Ċ import Ġcom . yan . location mock gen ius . search . L MG Search Listener Ċ Ċ class ĠMain Presenter ( private Ġval Ġview : ĠMain View ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsearch Client Ġ= ĠL MG Search Client () ĊĊĠĠĠ Ġvar Ġlocation Listener Ġ= Ġobject Ġ: ĠL MG Location Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location ( location : ĠL MG Location ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( 0 . 0 . equals ( Mock Data . lat ) Ġ|| Ġ 0 . 0 . equals ( Mock Data . lon )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Data . lat Ġ= Ġit . lat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Data . lon Ġ= Ġit . lon ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// map View Ġ éĶĢ æ¯ ģ åĲİ ä¸į åľ¨ å¤ĦçĲĨ æĸ° æİ¥æĶ¶ çļĦ ä½įç½® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( location Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" temp ", Ġlocation . address Str ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset MapView Location ( location . bd Location ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset My Location ( location . bd Location ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Loc ate () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// æ³¨åĨĮ Location Listener çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠĠĠĠ ĠL MG Location Client . getInstance (). register Location Listener ( location Listener ) ĊĠĠĠĠĠĠĠ ĠL MG Location Client . getInstance (). start Loc ate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Loc ate () Ġ{ ĊĠĠĠĠĠĠĠ ĠL MG Location Client . getInstance (). unregister Location Listener ( location Listener ) ĊĠĠĠĠĠĠĠ ĠL MG Location Client . getInstance (). stop Loc ate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset My Location ( location : ĠBD Location ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġloc Data Ġ= ĠMy Location Data . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accuracy ( location . radius ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæŃ¤ å¤Ħ è®¾ç½® å¼Ģåıĳ èĢħ èİ·åıĸ åĪ°çļĦ æĸ¹åĲĳ ä¿¡æģ¯ ï¼Į é¡º æĹ¶ éĴĪ 0 - 3 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. direction ( location . direction ). latitude ( location . latitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. longitude ( location . longitude ). build () ĊĠĠĠĠĠĠĠ Ġview . getMap (). set My Location Data ( loc Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset MapView Location ( location : ĠBD Location ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlat Lng Ġ= ĠLat Lng ( location . latitude , Ġlocation . longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠMap Status Update Factory . new LatLng ( lat Lng ) ĊĠĠĠĠĠĠĠ Ġview . getMap (). set Map Status ( status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch Poi ( keyword : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Client . search ( keyword , Ġobject Ġ: ĠL MG Search Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Search ( poi List : ĠList < L MG Poi >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show SearchResult List ( poi List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpo i List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" temp ", Ġit . key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ