package Ġcom . nn n . foot ball club . pages . main . match Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . nn n . foot ball club . model . Event Ċ import Ġcom . nn n . foot ball club . model . db . Favorite Event DB Ċ import Ġcom . nn n . foot ball club . model . responses . Event Response Ċ import Ġcom . nn n . foot ball club . model . responses . Team Response Ċ import Ġcom . nn n . foot ball club . pages . main . Main Contract Ċ import Ġcom . nn n . foot ball club . utils . Global Ċ import Ġcom . nn n . foot ball club . utils . network . S ports DB Api An ko Ċ import Ġcom . nn n . foot ball club . utils . provider . Coroutine Context Provider Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġrid h aaaa az is Ġon Ġ 2 1 / 0 5 / 1 8 . Ċ Ġ*/ Ċ Ċ open Ġclass ĠMatch List Presenter ( ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ: ĠMain Contract ._ Match ListView , ĊĠĠĠĠĠĠĠ Ġvar Ġcoroutine Context : ĠCor outine Context Provider Ġ= ĠCor outine Context Provider () Ċ ) Ġ: ĠMain Contract ._ Match List Presenter () Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠTYPE Ġ{ ĊĠĠĠĠĠĠĠ ĠP AST , NEXT , FA V OR ITE , SEARCH ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġfavorite Event DB : ĠF avorite Event DB ĊĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġcontext Ġ: ĠContext ĊĊĠĠĠ Ġlateinit Ġvar Ġtype Ġ: ĠTYPE ĊĠĠĠ Ġvar Ġid League Ġ: ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġlateinit Ġvar Ġquery Ġ: ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġstart ( context Ġ: ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite Event DB Ġ= ĠF avorite Event DB ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( type == ĠTYPE . FA V OR ITE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlist Ġ= Ġfavorite Event DB . getAll () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( list . size != view . data . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Favorite () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Team ( response : ĠTeam Response , Ġi Ġ: ĠInt , Ġis Home : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġteam Ġ= Ġresponse . teams [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġview . data . get ( i ) ĊĊĠĠĠĠĠĠĠ Ġif ( is Home ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . home Team = team ĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . away Team Ġ= Ġteam ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . data . set ( i , d ) ĊĠĠĠĠĠĠĠ ĠGlobal . log (" Team Ġ: Ġ${ view . data . get ( i )} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Load Event ( i Ġ: ĠInt ){ ĊĠĠĠĠĠĠĠ ĠGlobal . log (" check Load Event Ġ-> Ġi Ġ: Ġ${ i }") ĊĠĠĠĠĠĠĠ Ġif ( i >= view . data . size - 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal . log (" GET ĠTE AM ĠDET AIL ĠALL ĠCOMP LETED Ġ: Ġsize Ġ-> Ġ${ view . data . size }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . loading ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Data () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġreq : ĠString ĊĊĠĠĠĠĠĠĠ ĠGlobal . log (" T TYPE Ġ: Ġ${ type }") ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE . NEXT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreq Ġ= ĠS ports DB Api An ko . getNext ( id League . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE . P AST Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreq Ġ= ĠS ports DB Api An ko . get Past ( id League . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE . FA V OR ITE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE . SEARCH Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreq Ġ= ĠS ports DB Api An ko . search Match ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( coroutine Context . main ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠGlobal . gson . fromJson ( S ports DB Api An ko ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do Request ( req ). await (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Response :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Event ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Favorite () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġfavorite Event DB . getAll () ĊĊĠĠĠĠĠĠĠ ĠGlobal . log (" Fav ĠFrom ĠDB Ġ(${ list . size }") ĊĊĠĠĠĠĠĠĠ Ġif ( list . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . empty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . data . clear () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( Ġf Ġin Ġlist ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . data . add ( Event . copy ( f )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . loading ( false ) ĊĊĠĠĠĠĠĠĠ Ġview . adapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Event ( response : ĠEvent Response ) Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġif ( Global . null OrEmpty ( response . events )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . empty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . data . addAll ( response . events ) ĊĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. ( view . data . size - 1 )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġview . data . get ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal . log (" EVENT Ġ: Ġ${ d . name }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Scope . launch Ġ( coroutine Context . main ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠGlobal . gson . fromJson ( S ports DB Api An ko ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do Request ( S ports DB Api An ko . get Team ( d . home Id )). await (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTeam Response :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Team ( data , Ġi , Ġtrue ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( coroutine Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠGlobal . gson . fromJson ( S ports DB Api An ko ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do Request ( S ports DB Api An ko . get Team ( d . away Id )). await (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTeam Response :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Team ( data , Ġi , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Load Event ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }