package Ġcom . hc any z . android _ kit . vendor . b map Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġby . kir ich 1 4 0 9 . view binding delegate . view Binding Ċ import Ġcom . baidu . location . BD Abstract Location Listener Ċ import Ġcom . baidu . location . BD Location Ċ import Ġcom . baidu . location . Location Client Ċ import Ġcom . baidu . location . Location Client Option Ċ import Ġcom . baidu . mapapi . Coord Type Ċ import Ġcom . baidu . mapapi . map . Dot Options Ċ 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 . baidu . mapapi . search . core . SearchResult Ċ import Ġcom . baidu . mapapi . search . poi .* Ċ import Ġcom . blank j . util code . constant . Permission Constants Ċ import Ġcom . blank j . util code . util . Permission Utils Ċ import Ġcom . hc any z . android _ kit . vendor . b map . databinding . Activity B Map Display Location Binding Ċ import Ġjava . lang . ref . Weak Reference ĊĊ Ċ class ĠB Map Display Location Activity Ġ: ĠAppCompatActivity ( R . layout . activity _ b _ map _ display _ location ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Activity B Map Display Location Binding :: bind ) ĊĊĠĠĠ Ġoverride Ġfun Ġattach Base Context ( new Base : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . attach Base Context ( new Base ) ĊĠĠĠĠĠĠĠ Ġthis . zz B Map Lazy Init () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding . b map Test . apply Lifecycle ( this ) ĊĊĠĠĠĠĠĠĠ Ġbinding . b map Test . map . set Map Status ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMap Status Update Factory . new LatLng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 2 . 6 1 6 6 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 4 . 0 6 6 6 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠPermission Utils . permission ( Permission Constants . PHONE , ĠPermission Constants . LOCATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ration ale Ġ{ Ġ_, Ġshould Request Ġ-> Ġshould Request . again ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. callback Ġ{ Ġis All Granted , Ġ_, Ġdenied Fore ver , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is All Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Location () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( den ied Fore ver . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Utils . launch App Details Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. request () ĊĊĠĠĠĠĠĠĠ Ġval Ġpo i Search Ġ= ĠPo i Search . newInstance () ĊĠĠĠĠĠĠĠ Ġpo i Search . apply Lifecycle ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlistener : ĠOn Get Poi SearchResult Listener Ġ= Ġobject Ġ: ĠOn Get Poi SearchResult Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Get Poi Result ( poi Result : ĠPo i Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . b map Test . map . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( poi Result . error Ġ=== ĠSearch Result . ERROR NO . NO _ ERROR ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpo i Result . all Poi ?. forEach Indexed Ġ{ Ġindex , Ġpo i Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . b map Test . map . set Map Status ( Map Status Update Factory . new LatLng ( poi . location )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . b map Test . map . add Overlay ( Dot Options (). center ( poi . location )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Get Poi Detail Result ( poi Detail SearchResult : ĠPo i Detail SearchResult ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Get Poi In door Result ( poi In door Result : ĠPo i In door Result ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åº Ł å¼ĥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Get Poi Detail Result ( poi Detail Result : ĠPo i Detail Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpo i Search . setOn Get Poi SearchResult Listener ( listener ) ĊĊĠĠĠĠĠĠĠ Ġbinding . et Test . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpo i Search . search In City ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPo i City Search Option () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. city (" æ·± åľ ³ ") Ġ// å¿ħ å¡« ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. keyword ( s . toString ()) Ġ// å¿ħ å¡« ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. pageNum ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. page Capacity ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . b map Test . map . is My Location Enabled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġlocation Client Ġ= ĠLocation Client ( this ) ĊĠĠĠĠĠĠĠ Ġlocation Client . apply Lifecycle ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoption Ġ= ĠLocation Client Option () ĊĠĠĠĠĠĠĠ Ġoption . isOpen G ps Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġoption . set Co or Type ( Coord Type . BD 0 9 LL . literal ) ĊĊĠĠĠĠĠĠĠ Ġoption . setLocation Purpose ( Location Client Option . BD Location Purpose . Transport ) ĊĊĠĠĠĠĠĠĠ Ġlocation Client . loc Option Ġ= Ġoption ĊĊĠĠĠĠĠĠĠ Ġval Ġmy Location Listener Ġ= ĠMy Location Listener ( this ) ĊĠĠĠĠĠĠĠ Ġlocation Client . register Location Listener ( my Location Listener ) ĊĊĠĠĠĠĠĠĠ Ġlocation Client . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠMy Location Listener ( activity : ĠB Map Display Location Activity ) Ġ: ĊĠĠĠĠĠĠĠ ĠBD Abstract Location Listener () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġreference Ġ= ĠWeak Reference ( activity ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive Location ( location : ĠBD Location ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġreference . get () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( location Ġ== Ġnull Ġ|| Ġactivity . is Destroyed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloc Data Ġ= ĠMy Location Data . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accuracy ( location . radius ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. direction ( location . direction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. latitude ( location . latitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. longitude ( location . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . binding . b map Test . map . set My Location Data ( loc Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }