package Ġby . ced on . sk abs . multi platform . presentation Ċ Ċ import Ġby . ced on . sk abs . multi platform . model . Main Model Ċ import Ġby . ced on . sk abs . presentation . Main View Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ class ĠMain Presenter ( ĊĠĠĠ Ġprivate Ġval Ġui Context : ĠCor outine Context , ĊĠĠĠ Ġprivate Ġval Ġmain Model : ĠMain Model Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġview : ĠMain View ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġbind ( view : ĠMain View ){ ĊĠĠĠĠĠĠĠ Ġthis . view Ġ= Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġun bind () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdo Job () Ġ{ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( ui Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmain Model . do Job () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. on Server Response ( result ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show Error ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }