package Ġcom . br ast le war . kotlin . mvp Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġn icol as Ġon Ġ 1 1 / 9 / 1 7 . Ċ Ġ*/ Ċ open Ġclass ĠBase Presenter < T Ġ: ĠM vp View > Ġ: ĠPres enter < T > Ġ{ ĊĊĊĠĠĠ Ġvar Ġm vp View : ĠT ? Ġ= Ġnull Ċ Ċ // ĠĠĠ Ġprotected Ġlateinit Ġvar Ġlist : ĠMutable List < Deferred < Any >> ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġview State : ĠView State ĊĊĠĠĠ Ġoverride Ġfun Ġattach M vp View ( mvp View : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mvp View Ġ= Ġm vp View Ċ // ĠĠĠĠĠĠĠ Ġlist Ġ= ĠArrayList ( 0 ) ĊĠĠĠĠĠĠĠ Ġview State Ġ= ĠView State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdetach M vp View () Ġ{ ĊĠĠĠĠĠĠĠ Ġm vp View Ġ= Ġnull Ċ Ċ // ĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġit . cancel () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġlist . clear () ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġfun Ġadd ( pe pe : ĠAny ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġlist . add ( pe pe Ġas ĠDeferred < Any >) Ċ // Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis View Attached () Ġ= Ġm vp View Ġ!= Ġnull ĊĊĊĠĠĠ Ġfun ĠsetCurrent State ( newState : ĠView State . State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview State . currentState Ġ= ĠnewState ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠisLoading () Ġ= Ġview State . currentState Ġ=== ĠView State . State . LOADING ĊĊĊĠĠĠ Ġfun Ġis Idle () Ġ= Ġview State . currentState Ġ!= ĠView State . State . FIN ISH Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . currentState Ġ== ĠView State . State . IDLE ĊĊĠĠĠ Ġfun Ġis Finished () Ġ= Ġview State . currentState Ġ!== ĠView State . State . ERROR Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . currentState Ġ!== ĠView State . State . IDLE Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . currentState Ġ!== ĠView State . State . LOADING Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . currentState Ġ=== ĠView State . State . FIN ISH ĊĊĊĠĠĠ Ġfun Ġhas Failed () Ġ= Ġview State . currentState Ġ!== ĠView State . State . FIN ISH Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . currentState Ġ!== ĠView State . State . IDLE Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . currentState Ġ!== ĠView State . State . LOADING Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . currentState Ġ=== ĠView State . State . ERROR ĊĊ Ċ }