package Ġcom . illi arb . t mdb client . services . t mdb . internal . error Ċ Ċ import Ġcom . illi arb . t mdb client . libs . tools . Resource Resolver Ċ import Ġcom . illi arb . t mdb client . services . t mdb . R Ċ import Ġcom . illi arb . t mdb client . services . t mdb . error . Network Exception Ċ import Ġcom . illi arb . t mdb client . services . t mdb . error . Network Exception . Kind Ċ import Ġcom . illi arb . t mdb client . services . t mdb . error . T mdb Exception Ċ import Ġcom . illi arb . t mdb client . services . t mdb . error . Unknown Exception Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġretrofit 2 . HttpException Ċ import Ġjava . io . IOException Ċ import Ġjava . net . Socket TimeoutException Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ ily a - rb Ġon Ġ 1 6 . 0 1 . 1 9 . Ċ Ġ*/ Ċ class ĠError Creator Ġ@ Inject Ġconstructor ( ĊĠ Ġprivate Ġval Ġresource Resolver : ĠResource Resolver , ĊĠ Ġprivate Ġval Ġm oshi : ĠM oshi Ċ ) Ġ{ ĊĊĠ Ġfun Ġcreate From Throwable ( throwable : ĠThrowable ): ĠThrowable Ġ= ĊĠĠĠ Ġwhen Ġ( throwable ) Ġ{ ĊĠĠĠĠĠ Ġis ĠIOException Ġ-> ĊĠĠĠĠĠĠĠ ĠNetwork Exception ( Kind . Io , Ġresource Resolver . getString ( R . string . error _ bad _ connection )) ĊĠĠĠĠĠ Ġis ĠSocket TimeoutException Ġ-> ĊĠĠĠĠĠĠĠ ĠNetwork Exception ( Kind . Timeout , Ġresource Resolver . getString ( R . string . error _ bad _ connection )) ĊĠĠĠĠĠ Ġis ĠHttp Exception Ġ-> Ġcreate Http Error ( throwable ) ĊĠĠĠĠĠ Ġelse Ġ-> ĠUnknown Exception ( resource Resolver . getString ( R . string . error _ unknown )) ĊĠĠĠ Ġ} ĊĊĠ Ġfun Ġcreate From Error Body ( body : ĠResponse Body ?): ĠThrowable Ġ= ĊĠĠĠ Ġif Ġ( body Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ ĠUnknown Exception ( resource Resolver . getString ( R . string . error _ unknown )) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġval Ġerror Ġ= Ġm oshi . adapter ( T mdb Error :: class . java ). fromJson ( body . string ()) ĊĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠUnknown Exception ( resource Resolver . getString ( R . string . error _ unknown )) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠT mdb Exception ( error . status Message ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcreate Http Error ( error : ĠHttp Exception ): ĠThrowable Ġ{ ĊĠĠĠ Ġval Ġerror Body Ġ= Ġerror . response ()?. error Body () ĊĊĠĠĠ Ġreturn Ġif Ġ( error Body Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ ĠUnknown Exception ( resource Resolver . getString ( R . string . error _ unknown )) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġcreate From Error Body ( error Body ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }