package Ġcom . hol lab rowser . me force . preference . deleg ates Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . annotation . String Res Ċ import Ġcom . hol lab rowser . me force . Browser App Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ /** Ċ Ġ* ĠAn Ġ[ Int ] Ġdelegate Ġthat Ġis Ġbacked Ġby Ġ[ SharedPreferences ]. Ċ Ġ*/ Ċ private Ġclass ĠInt Preference Delegate ( ĊĠĠĠ Ġprivate Ġval Ġname : ĠString , ĊĠĠĠ Ġprivate Ġval ĠdefaultValue : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġpreferences : ĠSharedPreferences Ċ ) Ġ: ĠRead Write Property < Any , ĠInt > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAny , Ġproperty : ĠK Property < *> ): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġpreferences . getInt ( name , ĠdefaultValue ) ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠAny , Ġproperty : ĠK Property <* >, Ġvalue : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreferences . edit (). put Int ( name , Ġvalue ). apply () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ Int ] Ġfrom Ġ[ SharedPreferences ] Ġwith Ġthe Ġprovide Ġarguments . Ċ Ġ*/ Ċ fun ĠSharedPreferences . int Preference ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ ĠdefaultValue : ĠInt Ċ ): ĠRead Write Property < Any , ĠInt > Ġ= ĠInt Preference Delegate ( name , ĠdefaultValue , Ġthis ) ĊĊ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ Int ] Ġfrom Ġ[ SharedPreferences ] Ġwith Ġthe Ġprovide Ġarguments . Ċ Ġ*/ Ċ fun ĠSharedPreferences . int Preference ( ĊĠĠĠĠĠĠĠ Ġ@ String Res Ġstring Res : ĠInt , ĊĠĠĠĠĠĠĠ ĠdefaultValue : ĠInt Ċ ): ĠRead Write Property < Any , ĠInt > Ġ= ĠInt Preference Delegate ( Browser App . instance . resources . getString ( string Res ), ĠdefaultValue , Ġthis ) Ċ