/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 1 ĠNB CO ĠY oo Money ĠLLC Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ċ Ġ* Ġassociated Ġdocumentation Ġfiles Ġ( the ĠâĢľ Software âĢĿ ), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ċ Ġ* Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ċ Ġ* Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ċ Ġ* Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ċ Ġ* Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED ĠâĢľ AS ĠIS âĢĿ, ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , Ċ Ġ* ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR Ċ Ġ* ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE Ċ Ġ* ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT Ċ Ġ* ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR Ċ Ġ* ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġru . y oom oney . sdk . k assa . payments . config Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġorg . json . JSONObject Ċ import Ġru . y oom oney . sdk . k assa . payments . extensions . Checkout Ok HttpClient Ċ import Ġru . y oom oney . sdk . k assa . payments . extensions . execute Ċ import Ġru . y oom oney . sdk . k assa . payments . methods . Config Request Ċ import Ġru . y oom oney . sdk . k assa . payments . metrics . Error Logger Reporter Ċ import Ġru . y oom oney . sdk . k assa . payments . model . Config Ċ import Ġru . y oom oney . sdk . k assa . payments . model . Result Ċ import Ġru . y oom oney . sdk . k assa . payments . model . Sdk Exception Ċ import Ġru . y oom oney . sdk . k assa . payments . model . to Config Ċ import Ġru . y oom oney . sdk . k assa . payments . model . to JsonObject Ċ import Ġru . y oom oney . sdk . k assa . payments . utils . get Language Ċ Ċ private Ġconst Ġval ĠCONFIG _ FIELD _ NAME Ġ= Ġ" config " Ċ Ċ internal Ġclass ĠApi Config Repository ( ĊĠĠĠ Ġprivate Ġval Ġconfig Endpoint : ĠString , ĊĠĠĠ Ġprivate Ġval ĠhttpClient : ĠLazy < Checkout Ok HttpClient >, ĊĠĠĠ Ġprivate Ġval ĠgetDefault Config : ĠConfig , ĊĠĠĠ Ġprivate Ġval Ġsp : ĠSharedPreferences , ĊĠĠĠ Ġprivate Ġval Ġerror Reporter : ĠError Logger Reporter Ċ ) Ġ: ĠConfig Repository Ġ{ ĊĊĠĠ Ġprivate Ġvar Ġcached Config : ĠConfig ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsp . edit (). putString ( CONFIG _ FIELD _ NAME Ġ+ Ġ"_ ${ get Language () }", Ġvalue . to JsonObject (). toString ()). apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġget () Ġ= Ġsp . getString ( CONFIG _ FIELD _ NAME Ġ+ Ġ"_ ${ get Language () }", Ġnull )?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject ( it ). to Config () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Reporter . report ( Sdk Exception ( e )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Config ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġ?: ĠgetDefault Config ĊĊĠĠĠ Ġoverride Ġfun ĠgetConfig (): ĠConfig Ġ= Ġcached Config ĊĊĠĠĠ Ġoverride Ġfun Ġload Config (): ĠResult < Config > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Request Ġ= ĠConfig Request ( config Endpoint ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient . value . execute ( config Request ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġcached Config Ġ= Ġresponse . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Fail Ġ-> ĠUnit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} Ċ }