package Ġcom . gp ill aca . map a 1 9 . ui . map Ċ Ċ import Ġcom . gp ill aca . map a 1 9 . ui . common . Base Presenter Ċ import Ġcom . gp ill aca . map a 1 9 . ui . common . Scope Ċ import Ġcom . gp ill aca . map a 1 9 . data . repository . Location Repository Ċ import Ġcom . gp ill aca . map a 1 9 . data . repository . Map Repository Ċ import Ġcom . gp ill aca . map a 1 9 . ui . map . cluster . Person Item Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . async Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠMap Presenter ( ĊĠĠĠ Ġprivate Ġval Ġmap Repository : ĠMap Repository , ĊĠĠĠ Ġprivate Ġval Ġlocation Repository : ĠLocation Repository Ċ ) Ġ: ĠBase Presenter < Map Contract . View >(), ĊĠĠĠ ĠMap Contract . Presenter , ĊĠĠĠ ĠScope Ġby ĠScope . Impl () Ċ { ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Scope () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Scope () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy Scope () Ġ{ ĊĠĠĠĠĠĠĠ Ġdestroy Scope () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. show Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpersons Ġ= Ġasync ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Repository . list V ulner able Pers ons () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Position Ġ= Ġasync ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Repository . my Position () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. show My Position ( my Position . await ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Markers ( persons . await ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġshow Markers ( persons : ĠList < Person Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġget View ()?. show M ak ers ( persons ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlegend Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Repository . legend () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget View ()?. show Legend ( legend ) ĊĠĠĠĠĠĠĠ Ġget View ()?. hide Loading () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow My Position () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Position Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Repository . my Position () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. show My Position ( my Position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }