package Ġcom . x wq . company vx w helper . base Ċ Ċ import Ġandroid . accounts . Network ErrorException Ċ import Ġandroid . content . Context Ċ import Ġcom . google . gson . Json Syntax Exception Ċ import Ġcom . x wq . company vx w helper . Build Config Ċ import Ġcom . x wq . company vx w helper . event . Login Invalid Event Ċ import Ġcom . x wq . company vx w helper . utils . Log Util Ċ import Ġcom . x wq . company vx w helper . utils . Toast Util . show Toast Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġjava . net . Connect Exception Ċ import Ġjava . net . Unknown Host Exception Ċ import Ġjava . util . concurrent . TimeoutException Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġx wq Ġon Ġ 2 0 2 1 Ġ 0 6 Ġ 0 3 Ċ Ġ*/ Ċ abstract Ġclass ĠBase Observer < T >( var ĠmContext : ĠContext ?) Ġ: ĠObserver < Base Network Response < T >> Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Subscribe ( d : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Request Start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Next ( base Network Response : ĠBase Network Response < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! base Network Response . isError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Network Response . msg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Network Response . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( base Network Response . code Ġ== Ġ- 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Login Invalid Event ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Code Error ( base Network Response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġe . message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . log (" error ", Ġ" onError : Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠConnect Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġe Ġis ĠTimeout Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġe Ġis ĠNetwork ErrorException ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġe Ġis ĠUnknown Host Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= ĠmContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" ç½ĳç»ľ å¼Ĥå¸¸ ï¼Į è¯· ç¨ į åĲİ éĩį è¯ķ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠJson Syntax Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" Gson è§£æŀĲ åĩº éĶĻ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Failure ( e ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe 1 . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Finally () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Finally () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ æĪĲåĬŁ äºĨ , ä½Ĩæĺ¯ code éĶĻè¯¯ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġt ĊĠĠĠĠ Ġ* Ġ@ throws ĠException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġprotected Ġfun Ġon Code Error ( t : ĠBase Network Response < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġx wq Ġadd Ġ èĩªå®ļä¹ī æĺ¾ç¤º Ġä¸į è¦ģ æıĲç¤º ç»Ļ çĶ¨æĪ· ĊĠĠĠĠĠĠĠ Ġ// Toast Util . INSTANCE . show Toast ( t . get Msg ()); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ å¤±è´¥ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġe ĊĠĠĠĠ Ġ* Ġ@ throws ĠException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon Failure ( e : ĠThrowable ?) ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon Request Start () ĊĠĠĠ Ġprotected Ġabstract Ġfun ĠonSuccess ( msg Ġ: ĠString ?, Ġdata Ġ: ĠT ?) ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon Finally () Ċ }