package Ġtop . j ow an xu . wan android client . model Ċ Ċ import ĠConstant Ċ import ĠRet rofit Helper Ċ import Ġcancel And Join By Active Ċ import Ġcancel By Active Ċ import Ġkotlinx . coroutines . experimental . Deferred Ċ import Ġkotlinx . coroutines . experimental . android . UI Ċ import Ġkotlinx . coroutines . experimental . async Ċ import Ġtop . j ow an xu . wan android client . bean . Article ListResponse Ċ import Ġtop . j ow an xu . wan android client . presenter . Type Article Presenter Ċ Ċ class ĠType Article Model Impl Ġ: ĠType Article Model Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠType ĠArticle Ġlist Ġlist Ġasync ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġtype Article List Async : ĠDeferred < Any >? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġget ĠType ĠArticle Ġlist ĊĠĠĠĠ Ġ* Ġ@ param Ġon Type Article List Listener ĠType Article Presenter . On Type Article List Listener ĊĠĠĠĠ Ġ* Ġ@ param Ġpage Ġpage ĊĠĠĠĠ Ġ* Ġ@ param Ġcid Ġcid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetType Article List ( on Type Article List Listener : ĠType Article Presenter . On Type Article List Listener , Ġpage : ĠInt , Ġcid : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync ( UI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Article List Async ?. cancel And Join By Active () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Article List Async Ġ= ĠRet rofit Helper . ret rofit Service . get Article List ( page , Ġcid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtype Article List Async ?. await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġis ĠArticle ListResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Type Article List Listener . getType Article List Success ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Type Article List Listener . getType Article List Failed ( Constant . RESULT _ NULL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Type Article List Listener . getType Article List Failed ( t . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ async ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcancel Ġrequest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcancel Request () Ġ{ ĊĠĠĠĠĠĠĠ Ġtype Article List Async ?. cancel By Active () ĊĠĠĠ Ġ} Ċ }