package Ġcom . z ys . base library . net Ċ Ċ import Ġandroid . app . Activity Ċ import Ġcom . z ys . base library . base . Base Presenter Impl Ċ import Ġcom . z ys . base library . base . I Base View Ċ import Ġcom . z ys . base library . utils . Dialog Utils Ċ import Ġcom . z ys . base library . utils . Log Util Ċ import Ġcom . z ys . base library . utils . SP Util Ċ import Ġcom . z ys . base library . utils . Util Tools Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ Ċ abstract Ġclass ĠBase Other Observer < T > Ġ: ĠObserver < T > Ġ{ ĊĠĠĠ Ġprivate Ġvar ĠmContext : ĠActivity ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġis Show Loading Ġ= Ġfalse ĊĠĠĠ Ġ// æĺ¯åĲ¦ åı¯ä»¥ æīĭåĬ¨ åıĸæ¶Ī ç½ĳç»ľ è¯·æ±Ĥ ï¼Ī åıĸæ¶Ī è®¢ éĺħ ï¼ī ĊĠĠĠ Ġvar Ġis Can Dispose Ġ= Ġfalse ĊĠĠĠ Ġval Ġloading Msg Ġ= Ġ" åĬłè½½ ä¸Ń " ĊĠĠĠ Ġprivate Ġvar Ġm Disposable : ĠDis posable ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġis Ref ers h Or Load more Ġ= Ġfalse ĊĠĠĠ Ġvar Ġis Show Error Toast Ġ= Ġtrue ĊĠĠĠ Ġ// ç¼ĵåŃĺ key ä¸º - 1 æĹ¶ ï¼Į ä¸į ä½¿çĶ¨ ç¼ĵåŃĺ ĊĠĠĠ Ġvar Ġcache Key Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar Ġpresenter : ĠBase Presenter Impl < *> ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠActivity ?, Ġpresenter : ĠBase Presenter Impl < *> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mContext Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . presenter Ġ= Ġpresenter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Subscribe ( d : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Disposable Ġ= Ġd ĊĠĠĠĠĠĠĠ Ġif Ġ( mContext Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Over (" context ä¸įèĥ½ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! Util Tools . is Net Work Connected ( mContext )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cacheKey Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠSP Util . getObject ( mContext !! , Ġcache Key . toString () Ġ+ Ġ"") Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Over (" è¯· æ£ĢæŁ¥ æĤ¨çļĦ ç½ĳç»ľ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Over (" è¯· æ£ĢæŁ¥ æĤ¨çļĦ ç½ĳç»ľ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonStart ( d ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Ref ers h Or Load more ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Show Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Can Dispose ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Utils . show ( mContext !! , Ġloading Msg ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éļı çĿĢ dialog æ¶Ī å¤± ï¼Į å¦Ĥæŀľ è®¢ éĺħ äºĨ å°± åıĸæ¶Ī è®¢ éĺħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( d . is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . dispose () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e (" on Dismiss - Base Observer - dispose ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Utils . show ( mContext !! , Ġloading Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġerror Over ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġm Disposable Ġ&& Ġ! m Disposable !!. is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Disposable !!. dispose () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠonError ( msg ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Next ( value : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog Util . e (" onNext -$ value ") ĊĠĠĠĠĠĠĠ Ġif Ġ( is Show Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Utils . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( value ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe 1 . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Show Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Utils . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ ĠDialog Utils . dismiss () ĊĠĠĠĠĠĠĠ Ġvar Ġerr Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ(! Util Tools . is Net Work Connected ( mContext )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerr Ġ= Ġ" è¯· æ£ĢæŁ¥ æĤ¨çļĦ ç½ĳç»ľ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerr Ġ= ĠException Helper . handle Exception ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! err . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( err ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe 1 . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( e 1 . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġm Disposable Ġ&& Ġ! m Disposable !!. is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Disposable !!. dispose () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprotected Ġfun ĠonStart ( dis posable : ĠDis posable ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog Util . e (" onStart ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun ĠonSuccess ( m Data : ĠT ?) ĊĊĠĠĠ Ġprotected Ġopen Ġfun ĠonError ( msg : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠDialog Utils . dismiss () ĊĠĠĠĠĠĠĠ Ġif Ġ( presenter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( presenter !!. is View Attached ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( presenter !!. getView () Ġas ĠI Base View ). on Http Error ( msg !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon End () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( presenter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( presenter !!. is View Attached ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( presenter !!. getView () Ġas ĠI Base View ). on Request End () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }