package Ġdk . must ache . core lib . network Ċ Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . annotation . Nullable Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġjava . io . IOException Ċ Ċ /** Ġcustom Ġsimplified ĠRet rofit Ġcallback Ġthat Ġgives Ġus Ġa Ġcentral Ġpoint Ġto Ġdo Ġerror Ġhandling Ġ**/ Ċ Ċ abstract Ġclass ĠRet ro Callback < T > Ġ: ĠCallback < T > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Response (@ NonNull Ġcall : ĠCall < T > ?, Ġresponse : ĠResponse < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( response . body (), Ġresponse . code ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( response . code ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 1 Ġ-> Ġis Handled In Authorization Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 4 Ġ-> Ġshow Dialog ue (" Un authenticated ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 0 Ġ-> Ġshow Dialog ue (" Client Ġerror ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 Ġ-> Ġshow Dialog ue (" Server Ġerror ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġshow Dialog ue (" Unknown Ġerror : Ġ${ response . code () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( response . error Body (), Ġresponse . code ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Dialog ue ( message : ĠString ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Handled In Authorization Interceptor () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Failure (@ NonNull Ġcall : ĠCall < T > ?, Ġ@ NonNull Ġthrowable : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( throwable Ġis ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow IO Error () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Unexpected Error Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġshow On Http Error Dialog ue () ĊĠĠĠĠĠĠĠ ĠonError ( null , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Unexpected Error Dialog () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow IO Error () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow On Http Error Dialog ue () Ġ{ ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġabstract Ġfun ĠonSuccess (@ NonNull Ġresponse : ĠT ?, Ġcode : ĠInt ) ĊĠĠĠ Ġabstract Ġfun ĠonError (@ Nullable Ġbody : ĠResponse Body ?, Ġcode : ĠInt ) Ċ }