package Ġcom . key op ste ch . city . presentation . city list Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . widget . ListView Ċ import Ġcom . key op ste ch . city . dom aine . model . City Ċ import Ġcom . key op ste ch . city . dom aine . use case . Get City List UseCase Ċ import Ġcom . key op ste ch . utils . Utils Ċ import Ġcom . key op ste ch . weather . R Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠCity List Presenter Ġ@ Inject Ġconstructor ( private Ġval Ġget City List UseCase : ĠGet City List UseCase ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġview : ĠCity ListView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcontext : Context ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcities : ArrayList < City >? Ġ= Ġnull ĊĊĊĠĠĠ Ġfun Ġload Data (){ ĊĠĠĠĠĠĠĠ Ġthis . cities Ġ= Ġget City List UseCase . execute () ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. let Ġ{ Ġview NonNull Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlistView : ListView ? Ġ= Ġview NonNull . get ListView () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistView ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcities ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcity Adapter Ġ= ĠCity Adapter ( cities !! , Ġcontext !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistView . adapter Ġ= Ġcity Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistView . setOn ItemClickListener Ġ{ Ġ_, Ġ_, Ġposition , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGo ĠTo ĠWeather ĠDetail ĠActivity ( Screen ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! Utils . is Online ( context !! )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . show Toast ( context !! , ĠR . string . error _ no _ internet ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcity Selected : City ? Ġ= Ġcity Adapter . getItem ( position ) Ġas ĠCity Ġ// ĠThe Ġitem Ġthat Ġwas Ġclicked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Selected ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name ?. let Ġ{ Ġname Ġ-> Ġview !!. goTo Detail ( name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġon View Created ( view : ĠCity ListView , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . view Ġ= Ġview ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon View Destroyed () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget City List (): ArrayList < City >? { ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . cities ĊĠĠĠ Ġ} Ċ }