/* Ċ Ġ* ĠCreated Ġby ĠE du ard ĠZ ay del Ġon Ġ 1 / 4 / 2 0 1 9 Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 9 ĠW aves ĠPlatform . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ package Ġcom . waves platform . wallet . v 2 . data . manager Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . waves platform . sdk . net . Network Exception Ċ import Ġcom . waves platform . wallet . v 2 . data . Events Ċ import Ġcom . waves platform . wallet . v 2 . data . local . Preferences Helper Ċ import Ġcom . waves platform . wallet . v 2 . ui . base . view . Base Activity Ċ import Ġcom . waves platform . wallet . v 2 . util . Rx EventBus Ċ import Ġio . reactivex . subjects . Publish Subject Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠError Manager Ġ@ Inject Ġconstructor ( val Ġm Rx EventBus : ĠRx EventBus , Ġval Ġm Preferences Helper : ĠPreferences Helper ) Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Activity : ĠBase Activity ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġretry Subject : ĠPublish Subject < Events . Retry Event > ĊĊĠĠĠ Ġfun Ġhandle Error ( response : ĠNetwork Exception , Ġretry Subject : ĠPublish Subject < Events . Retry Event >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Rx EventBus . post ( Events . Error Event ( response , Ġretry Subject )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Error ( context : ĠContext , Ġretrofit Exception : ĠNetwork Exception , Ġretry Subject : ĠPublish Subject < Events . Retry Event >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Activity Ġ= Ġcontext Ġas ĠBase Activity ĊĠĠĠĠĠĠĠ Ġthis . retry Subject Ġ= Ġretry Subject ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ret rofit Exception . kind Ġ=== ĠNetwork Exception . Kind . NETWORK Ġ|| Ġretrofit Exception . response !!. code () Ġ== Ġ 5 0 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Network Error ( ret rofit Exception ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ret rofit Exception . kind Ġ=== ĠNetwork Exception . Kind . HTTP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Http Error ( ret rofit Exception ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ret rofit Exception . kind Ġ=== ĠNetwork Exception . Kind . UN EXPECTED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Unexpected Error ( ret rofit Exception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Network Error ( ret rofit Exception : ĠNetwork Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġcall Ġmethod Ġfrom Ġactivity Ġor Ġshow Ġhere ĊĠĠĠĠĠĠĠ Ġ// Ġm Activity . show Network Error () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Http Error ( error : ĠNetwork Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( error . response !!. code ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 1 Ġ-> Ġhandle Unauthorized Exception () ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhandle Unauthorized Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġredirect Ġto Ġstart Ġscreen Ġand Ġclear Ġsession Ġ( m Preferences Helper ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhandle Unexpected Error ( exception : ĠNetwork Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠSomething Ġwent Ġwrong ... ĊĠĠĠ Ġ} Ċ } Ċ