package Ġcom . st x . x hb . core . mvp Ċ Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response ĊĊ Ċ /** Ċ Ġ* Ġ@ author : Ġx iao ha ib in . Ċ Ġ* Ġ@ time : Ġ 2 0 1 8 / 7 / 3 Ċ Ġ* Ġ@ mail : x hb _ 1 9 9 4 0 9 @ 1 6 3 . com Ċ Ġ* Ġ@ github : https :// github . com / xiao ha ib in Ċ Ġ* Ġ@ describe : Ċ Ġ*/ Ċ open Ġclass ĠBase Presenter < T , ĠV Ġ: ĠI Base View > Ġ: ĠIP res enter < V > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm View : ĠV ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Response Call : ĠCall < T >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġattach View ( mvp View : ĠV ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m View Ġ= Ġm vp View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdetach View () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m View Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( m Response Call Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Response Call !!. cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġrequest ( call : ĠCall < T >, Ġcallback : ĠLoad Task Callback < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Response Call Ġ= Ġcall ĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < T >, Ġresponse : ĠResponse < T >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Task Loaded ( response . body () Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Data Not Available ( response . message ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < T >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Data Not Available ( t . message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis View Bind (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm View Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget View (): ĠV ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠLoad Task Callback < T > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Task Loaded ( data : ĠT ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Data Not Available ( msg : ĠString ) ĊĠĠĠ Ġ} Ċ Ċ }