package Ġcom . mem fault . b ort . settings Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġcom . mem fault . b ort . B ort Json Ċ import Ġcom . mem fault . b ort . PREFER ENCE _ FETCH ED _ SDK _ SETTINGS Ċ import Ġcom . mem fault . b ort . shared . Logger Ċ import Ġcom . mem fault . b ort . shared . Preference Key Provider Ċ import Ġkotlinx . serialization . Serialization Exception Ċ Ċ private Ġconst Ġval ĠINVALID _ MARKER Ġ= Ġ"__ NA __ " Ċ Ċ interface ĠReadonly F etched Settings Provider Ġ{ ĊĠĠĠ Ġfun Ġget (): ĠF etched Settings Ċ } Ċ Ċ interface ĠStored Settings Preference Provider Ġ: ĠReadonly F etched Settings Provider Ġ{ ĊĠĠĠ Ġfun Ġset ( settings : ĠF etched Settings ) ĊĠĠĠ Ġfun Ġreset () Ċ } Ċ Ċ class ĠReal Stored Settings Preference Provider ( ĊĠĠĠ Ġshared Preferences : ĠSharedPreferences , ĊĠĠĠ Ġprivate Ġval Ġget Bund led Config : Ġ() Ġ-> ĠString , Ċ ) Ġ: ĠStored Settings Preference Provider , ĠPreference Key Provider < String >( ĊĠĠĠ Ġshared Preferences Ġ= Ġshared Preferences , ĊĠĠĠ ĠdefaultValue Ġ= ĠINVALID _ MARKER , ĊĠĠĠ ĠP REFERENCE _ FETCH ED _ SDK _ SETTINGS , Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget (): ĠF etched Settings Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġsuper . getValue () ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( content Ġ== ĠINVALID _ MARKER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF etched Settings . from ( getB und led Config ()) Ġ{ ĠB ort Json Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF etched Settings . from ( content ) Ġ{ ĠB ort Json Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSerialization Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . w (" Unable Ġto Ġdeserialize Ġsettings , Ġfalling Ġback Ġto Ġbundled Ġconfig ", Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF etched Settings . from ( getB und led Config ()) Ġ{ ĠB ort Json Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset ( settings : ĠF etched Settings ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setValue ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB ort Json . encode ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF etched Settings . F etched Settings Container . serializer (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF etched Settings . F etched Settings Container ( settings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġset ( F etched Settings . from ( getB und led Config ()) Ġ{ ĠB ort Json Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ