/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠMatrix . org ĠFoundation ĠC . I . C . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . matrix . android . sdk . api . failure Ċ Ċ import Ġorg . matrix . android . sdk . api . extensions . try OrNull Ċ import Ġorg . matrix . android . sdk . internal . auth . registration . Registration Flow Response Ċ import Ġorg . matrix . android . sdk . internal . di . M oshi Provider Ċ import Ġjava . io . IOException Ċ import Ġjavax . net . ssl . Https URLConnection Ċ Ċ fun ĠThrowable . is 4 0 1 () Ġ= ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠFailure . ServerError ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġhttp Code Ġ== ĠHttp s URLConnection . HTTP _ UN AUTHORIZ ED Ġ/* Ġ 4 0 1 Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġerror . code Ġ== ĠMatrix Error . M _ UN AUTHORIZ ED Ċ Ċ fun ĠThrowable . is Token Error () Ġ= ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠFailure . ServerError ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ( error . code Ġ== ĠMatrix Error . M _ UNKNOWN _ TOKEN Ġ|| Ġerror . code Ġ== ĠMatrix Error . M _ MISSING _ TOKEN ) Ċ Ċ fun ĠThrowable . shouldBe Ret ried (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġis ĠFailure . Network Connection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġthis Ġis ĠIOException ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġ( this Ġis ĠFailure . ServerError Ġ&& Ġerror . code Ġ== ĠMatrix Error . M _ LIMIT _ EX CE EDED ) Ċ } Ċ Ċ fun ĠThrowable . is Invalid Password (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġis ĠFailure . ServerError ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġerror . code Ġ== ĠMatrix Error . M _ FOR BID DEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġerror . message Ġ== Ġ" Invalid Ġpassword " Ċ } Ċ Ċ /** Ċ Ġ* ĠTry Ġto Ġconvert Ġto Ġa ĠRegistration Flow Response . ĠReturn Ġnull Ġin Ġthe Ġcases Ġit 's Ġnot Ġpossible Ċ Ġ*/ Ċ fun ĠThrowable . to Registration Flow Response (): ĠRegistration Flow Response ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this Ġis ĠFailure . Other ServerError Ġ&& Ġthis . http Code Ġ== Ġ 4 0 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry OrNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM oshi Provider . provides M oshi () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. adapter ( Registration Flow Response :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fromJson ( this . error Body ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ