package Ġcode _ setup . app _ util Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context Wrapper Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . SharedPreferences . Editor Ċ import Ġandroid . os . Build Ċ import Ġandroid . text . TextUtils Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġar is choice Ġon Ġ 2 0 / 1 / 2 0 1 9 . Ċ Ġ*/ Ċ object ĠP refs Ġ{ Ċ Ġprivate Ġval ĠDEFAULT _ SUFFIX Ġ= Ġ"_ preferences " Ċ Ġprivate Ġval ĠLEN GTH Ġ= Ġ"# LENGTH " Ċ Ġprivate Ġvar Ġm Prefs : ĠSharedPreferences ? Ġ= Ġnull ĊĊ Ġ/** ĊĠ Ġ* ĠReturns Ġthe Ġunderlying ĠShared Preference Ġinstance ĊĠ Ġ* ĊĠ Ġ* Ġ@ return Ġan Ġinstance Ġof Ġthe ĠShared Preference ĊĠ Ġ* Ġ@ throws ĠRuntimeException Ġif ĠShared Preference Ġinstance Ġhas Ġnot Ġbeen Ġinstantiated Ġyet . ĊĠ Ġ*/ Ċ Ġval Ġpreferences : ĠSharedPreferences ĊĠ Ġget () Ġ{ ĊĠĠ Ġif Ġ( m Prefs Ġ!= Ġnull ) Ġ{ ĊĠĠĠ Ġreturn Ġm Prefs Ġas ĠSharedPreferences ĊĠĠ Ġ} ĊĠĠ Ġthrow ĠRuntimeException ( ĊĠĠĠĠĠĠĠĠĠĠ Ġ" Prefs Ġclass Ġnot Ġcorrectly Ġinstantiated . ĠPlease Ġcall ĠBuilder . set Context (). build () Ġin Ġthe ĠApplication Ġclass ĠonCreate ." ĊĠĠ Ġ) ĊĠ Ġ} ĊĊ Ġ/** ĊĠ Ġ* Ġ@ return ĠReturns Ġa Ġmap Ġcontaining Ġa Ġlist Ġof Ġpairs Ġkey / value Ġrepresenting ĊĠ Ġ* Ġthe Ġpreferences . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . getAll ĊĠ Ġ*/ Ċ Ġval Ġall : ĠMap < String , Ġ*> ĊĠ Ġget () Ġ= Ġpreferences . all ĊĊ Ġ/** ĊĠ Ġ* ĠInitialize Ġthe ĠP refs Ġhelper Ġclass Ġto Ġkeep Ġa Ġreference Ġto Ġthe ĠShared Preference Ġfor Ġthis ĊĠ Ġ* Ġapplication Ġthe ĠShared Preference Ġwill Ġuse Ġthe Ġpackage Ġname Ġof Ġthe Ġapplication Ġas Ġthe ĠKey . ĊĠ Ġ* ĠThis Ġmethod Ġis Ġdeprecated Ġplease Ġus Ġthe Ġnew Ġbuilder . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġcontext Ġthe ĠApplication Ġcontext . ĊĠ Ġ*/ Ċ Ġ@ Deprecated ("") Ċ Ġfun Ġinit Prefs ( context : ĠContext ) Ġ{ ĊĠ ĠBuilder (). set Context ( context ). build () Ċ Ġ} ĊĊ Ġprivate Ġfun Ġinit Prefs ( context : ĠContext , Ġprefs Name : ĠString , Ġmode : ĠInt ) Ġ{ ĊĠ Ġm Prefs Ġ= Ġcontext . get SharedPreferences ( prefs Name , Ġmode ) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRetrieves Ġa Ġstored Ġint Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalue Ġif Ġit Ġexists , Ġor Ġdef Value . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot ĊĠ Ġ* Ġan Ġint . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . getInt ĊĠ Ġ*/ Ċ Ġfun Ġget Int ( key : ĠString , Ġdef Value : ĠInt ): ĠInt Ġ{ ĊĠ Ġreturn Ġpreferences . getInt ( key , Ġdef Value ) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRetrieves Ġa Ġstored Ġboolean Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalue Ġif Ġit Ġexists , Ġor Ġdef Value . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot Ġa Ġboolean . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . getBoolean ĊĠ Ġ*/ Ċ Ġfun Ġget Boolean ( key : ĠString , Ġdef Value : ĠBoolean ): ĠBoolean Ġ{ ĊĠ Ġreturn Ġpreferences . getBoolean ( key , Ġdef Value ) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRetrieves Ġa Ġstored Ġlong Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalue Ġif Ġit Ġexists , Ġor Ġdef Value . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot Ġa Ġlong . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . getLong ĊĠ Ġ*/ Ċ Ġfun Ġget Long ( key : ĠString , Ġdef Value : ĠLong ): ĠLong Ġ{ ĊĠ Ġreturn Ġpreferences . getLong ( key , Ġdef Value ) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠReturns Ġthe Ġdouble Ġthat Ġhas Ġbeen Ġsaved Ġas Ġa Ġlong Ġraw Ġbits Ġvalue Ġin Ġthe Ġlong Ġpreferences . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value Ġthe Ġdouble ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalue Ġif Ġit Ġexists , Ġor Ġdef Value . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot Ġa Ġlong . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . getLong ĊĠ Ġ*/ Ċ Ġfun Ġget Double ( key : ĠString , Ġdef Value : ĠDouble ): ĠDouble Ġ{ ĊĠ Ġreturn Ġjava . lang . Double . long Bits ToDouble ( preferences . getLong ( key , Ġjava . lang . Double . double To Long Bits ( def Value ))) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRetrieves Ġa Ġstored Ġfloat Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalue Ġif Ġit Ġexists , Ġor Ġdef Value . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot Ġa Ġfloat . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . get Float ĊĠ Ġ*/ Ċ Ġfun Ġget Float ( key : ĠString , Ġdef Value : ĠFloat ): ĠFloat Ġ{ ĊĠ Ġreturn Ġpreferences . get Float ( key , Ġdef Value ) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRetrieves Ġa Ġstored ĠString Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalue Ġif Ġit Ġexists , Ġor Ġdef Value . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot Ġa ĠString . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . getString ĊĠ Ġ*/ Ċ Ġfun ĠgetString ( key : ĠString , Ġdef Value : ĠString ): ĠString ? Ġ{ ĊĠ Ġreturn Ġpreferences . getString ( key , Ġdef Value ) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRetrieves Ġa ĠSet Ġof ĠStrings Ġas Ġstored Ġby Ġ[. putString Set ]. ĠOn ĠH oney comb Ġand ĊĠ Ġ* Ġlater Ġthis Ġwill Ġcall Ġthe Ġnative Ġimplementation Ġin ĠSharedPreferences , Ġon Ġolder ĠSDK s Ġthis Ġwill ĊĠ Ġ* Ġcall Ġ[. get Ordered String Set ]. ĊĠ Ġ* Ġ** Note Ġthat Ġthe Ġnative Ġimplementation Ġof Ġ[ SharedPreferences . getString Set ] Ġdoes Ġnot Ġreli ably Ġpreserve Ġthe Ġorder Ġof Ġthe ĠStrings Ġin Ġthe ĠSet .** ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalues Ġif Ġthey Ġexist , Ġor Ġdef Values Ġotherwise . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot Ġa ĠSet . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . getString Set ĊĠ Ġ* Ġ@ see Ġ. get Ordered String Set ĊĠ Ġ*/ Ċ Ġ@ Target Api ( Build . VERSION _ CODES . H ONE Y COMB ) Ċ Ġfun ĠgetString Set ( key : ĠString , Ġdef Value : ĠSet < String >): ĠSet < String >? Ġ{ ĊĠ Ġval Ġprefs Ġ= Ġpreferences ĊĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . H ONE Y COMB ) Ġ{ ĊĠĠ Ġprefs . getString Set ( key , Ġdef Value ) ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġ// ĠWork around Ġfor Ġpre - HC 's Ġmissing ĠgetString Set ĊĠĠ Ġget Ordered String Set ( key , Ġdef Value ) ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRetrieves Ġa ĠSet Ġof ĠStrings Ġas Ġstored Ġby Ġ[. put Ordered String Set ], ĊĠ Ġ* Ġpre serving Ġthe Ġoriginal Ġorder . ĠNote Ġthat Ġthis Ġimplementation Ġis Ġhe avier Ġthan Ġthe Ġnative ĊĠ Ġ* Ġ[. getString Set ] Ġmethod Ġ( which Ġdoes Ġnot Ġguarantee Ġto Ġpreserve Ġorder ). ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġretrieve . ĊĠ Ġ* Ġ@ param Ġdef Value ĠValue Ġto Ġreturn Ġif Ġthis Ġpreference Ġdoes Ġnot Ġexist . ĊĠ Ġ* Ġ@ return ĠReturns Ġthe Ġpreference Ġvalue Ġif Ġit Ġexists , Ġor Ġdef Values Ġotherwise . ĊĠ Ġ* Ġ@ throws ĠClass CastException Ġif Ġthere Ġis Ġa Ġpreference Ġwith Ġthis Ġname Ġthat Ġis Ġnot Ġa ĠSet Ġof ĊĠ Ġ* ĠStrings . ĊĠ Ġ* Ġ@ see Ġ. getString Set ĊĠ Ġ*/ Ċ Ġfun Ġget Ordered String Set ( key : ĠString , Ġdef Value : ĠSet < String >): ĠSet < String > Ġ{ ĊĠ Ġval Ġprefs Ġ= Ġpreferences ĊĠ Ġif Ġ( prefs . contains ( key Ġ+ ĠLEN GTH )) Ġ{ ĊĠĠ Ġval Ġset Ġ= ĠLinked HashSet < String >() ĊĠĠ Ġval Ġstring Set Length Ġ= Ġprefs . getInt ( key Ġ+ ĠLEN GTH , Ġ- 1 ) ĊĠĠ Ġif Ġ( string Set Length Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġstring Set Length ) Ġ{ ĊĠĠĠĠ Ġset . add ( prefs . getString ("$ key [$ i ]", Ġnull ) !! ) ĊĠĠĠ Ġ} ĊĠĠ Ġ} ĊĠĠ Ġreturn Ġset ĊĠ Ġ} ĊĠ Ġreturn Ġdef Value Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġa Ġlong Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġnew Ġvalue Ġfor Ġthe Ġpreference . ĊĠ Ġ* Ġ@ see ĠEditor . put Long ĊĠ Ġ*/ Ċ Ġfun Ġput Long ( key : ĠString , Ġvalue : ĠLong ) Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠ Ġeditor . put Long ( key , Ġvalue ) ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġan Ġinteger Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġnew Ġvalue Ġfor Ġthe Ġpreference . ĊĠ Ġ* Ġ@ see ĠEditor . put Int ĊĠ Ġ*/ Ċ Ġfun Ġput Int ( key : ĠString , Ġvalue : ĠInt ) Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠ Ġeditor . put Int ( key , Ġvalue ) ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġa Ġdouble Ġvalue Ġas Ġa Ġlong Ġraw Ġbits Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġdouble Ġvalue Ġto Ġbe Ġsave Ġin Ġthe Ġpreferences . ĊĠ Ġ* Ġ@ see ĠEditor . put Long ĊĠ Ġ*/ Ċ Ġfun Ġput Double ( key : ĠString , Ġvalue : ĠDouble ) Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠ Ġeditor . put Long ( key , Ġjava . lang . Double . double To Raw Long Bits ( value )) ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġa Ġfloat Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġnew Ġvalue Ġfor Ġthe Ġpreference . ĊĠ Ġ* Ġ@ see ĠEditor . put Float ĊĠ Ġ*/ Ċ Ġfun Ġput Float ( key : ĠString , Ġvalue : ĠFloat ) Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠ Ġeditor . put Float ( key , Ġvalue ) ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġa Ġboolean Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġnew Ġvalue Ġfor Ġthe Ġpreference . ĊĠ Ġ* Ġ@ see ĠEditor . put Boolean ĊĠ Ġ*/ Ċ Ġfun Ġput Boolean ( key : ĠString , Ġvalue : ĠBoolean ) Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠ Ġeditor . put Boolean ( key , Ġvalue ) ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġa ĠString Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġnew Ġvalue Ġfor Ġthe Ġpreference . ĊĠ Ġ* Ġ@ see ĠEditor . putString ĊĠ Ġ*/ Ċ Ġfun Ġput String ( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠ Ġeditor . putString ( key , Ġvalue ) ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġa ĠSet Ġof ĠStrings . ĠOn ĠH oney comb Ġand Ġlater Ġthis Ġwill Ġcall Ġthe Ġnative Ġimplementation Ġin ĊĠ Ġ* ĠSharedPreferences . Editor , Ġon Ġolder ĠSDK s Ġthis Ġwill Ġcall Ġ[. put Ordered String Set ]. ĊĠ Ġ* Ġ** Note Ġthat Ġthe Ġnative Ġimplementation Ġof Ġ[ Editor . putString Set ] Ġdoes Ġnot Ġreli ably Ġpreserve Ġthe Ġorder Ġof Ġthe ĠStrings Ġin Ġthe ĠSet .** ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġnew Ġvalue Ġfor Ġthe Ġpreference . ĊĠ Ġ* Ġ@ see ĠEditor . putString Set ĊĠ Ġ* Ġ@ see Ġ. put Ordered String Set ĊĠ Ġ*/ Ċ Ġ@ Target Api ( Build . VERSION _ CODES . H ONE Y COMB ) Ċ Ġfun Ġput String Set ( key : ĠString , Ġvalue : ĠSet < String >) Ġ{ ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . H ONE Y COMB ) Ġ{ ĊĠĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠĠ Ġeditor . putString Set ( key , Ġvalue ) ĊĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠĠ Ġeditor . commit () ĊĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠ Ġeditor . apply () ĊĠĠ Ġ} ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġ// ĠWork around Ġfor Ġpre - HC 's Ġlack Ġof ĠString Sets ĊĠĠ Ġput Ordered String Set ( key , Ġvalue ) ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠStores Ġa ĠSet Ġof ĠStrings , Ġpre serving Ġthe Ġorder . ĊĠ Ġ* ĠNote Ġthat Ġthis Ġmethod Ġis Ġhe avier Ġthat Ġthe Ġnative Ġimplementation Ġ[. putString Set ] Ġ( which Ġdoes Ġnot Ġreli ably Ġpreserve Ġthe Ġorder Ġof Ġthe ĠSet ). ĠTo Ġpreserve Ġthe Ġorder Ġof Ġthe ĊĠ Ġ* Ġitems Ġin Ġthe ĠSet , Ġthe ĠSet Ġimplementation Ġmust Ġbe Ġone Ġthat Ġas Ġan Ġiterator Ġwith Ġpredict able ĊĠ Ġ* Ġorder , Ġsuch Ġas Ġ[ Linked HashSet ]. ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠĠ ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġmodify . ĊĠ Ġ* Ġ@ param Ġvalue ĠThe Ġnew Ġvalue Ġfor Ġthe Ġpreference . ĊĠ Ġ* Ġ@ see Ġ. putString Set ĊĠ Ġ* Ġ@ see Ġ. get Ordered String Set ĊĠ Ġ*/ Ċ Ġfun Ġput Ordered String Set ( key : ĠString , Ġvalue : ĠSet < String >) Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠ Ġvar Ġstring Set Length Ġ= Ġ 0 ĊĠ Ġif Ġ( m Prefs !!. contains ( key Ġ+ ĠLEN GTH )) Ġ{ ĊĠĠ Ġ// ĠFirst Ġread Ġwhat Ġthe Ġvalue Ġwas ĊĠĠ Ġstring Set Length Ġ= Ġm Prefs !!. getInt ( key Ġ+ ĠLEN GTH , Ġ- 1 ) ĊĠ Ġ} ĊĠ Ġeditor . put Int ( key Ġ+ ĠLEN GTH , Ġvalue . size ) ĊĠ Ġvar Ġi Ġ= Ġ 0 ĊĠ Ġfor Ġ( a Value Ġin Ġvalue ) Ġ{ ĊĠĠ Ġeditor . putString ("$ key [$ i ]", Ġa Value ) ĊĠĠ Ġi ++ ĊĠ Ġ} ĊĠ Ġwhile Ġ( i Ġ< Ġstring Set Length ) Ġ{ ĊĠĠ Ġ// ĠRemove Ġany Ġremaining Ġvalues ĊĠĠ Ġeditor . remove ("$ key [$ i ]") ĊĠĠ Ġi ++ ĊĠ Ġ} ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRemoves Ġa Ġpreference Ġvalue . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġremove . ĊĠ Ġ* Ġ@ see ĠEditor . remove ĊĠ Ġ*/ Ċ Ġfun Ġremove ( key : ĠString ) Ġ{ ĊĠ Ġval Ġprefs Ġ= Ġpreferences ĊĠ Ġval Ġeditor Ġ= Ġprefs . edit () ĊĠ Ġif Ġ( prefs . contains ( key Ġ+ ĠLEN GTH )) Ġ{ ĊĠĠ Ġ// ĠWork around Ġfor Ġpre - HC 's Ġlack Ġof ĠString Sets ĊĠĠ Ġval Ġstring Set Length Ġ= Ġprefs . getInt ( key Ġ+ ĠLEN GTH , Ġ- 1 ) ĊĠĠ Ġif Ġ( string Set Length Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠ Ġeditor . remove ( key Ġ+ ĠLEN GTH ) ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġstring Set Length ) Ġ{ ĊĠĠĠĠ Ġeditor . remove ("$ key [$ i ]") ĊĠĠĠ Ġ} ĊĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġeditor . remove ( key ) ĊĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠChecks Ġif Ġa Ġvalue Ġis Ġstored Ġfor Ġthe Ġgiven Ġkey . ĊĠ Ġ* ĊĠ Ġ* Ġ@ param Ġkey ĠThe Ġname Ġof Ġthe Ġpreference Ġto Ġcheck . ĊĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġthe Ġstorage Ġcontains Ġthis Ġkey Ġvalue , Ġ` false ` Ġotherwise . ĊĠ Ġ* Ġ@ see ĠSharedPreferences . contains ĊĠ Ġ*/ Ċ Ġoperator Ġfun Ġcontains ( key : ĠString ): ĠBoolean Ġ{ ĊĠ Ġreturn Ġpreferences . contains ( key ) Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠRemoved Ġall Ġthe Ġstored Ġkeys Ġand Ġvalues . ĊĠ Ġ* ĊĠ Ġ* Ġ@ return Ġthe Ġ[ Editor ] Ġfor Ġchaining . ĠThe Ġchanges Ġhave Ġalready Ġbeen Ġcommitted / applied ĊĠ Ġ* Ġthrough Ġthe Ġexecution Ġof Ġthis Ġmethod . ĊĠ Ġ* Ġ@ see ĠEditor . clear ĊĠ Ġ*/ Ċ Ġfun Ġclear (): ĠEditor Ġ{ ĊĠ Ġval Ġeditor Ġ= Ġpreferences . edit (). clear () ĊĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . GING ER B READ ) Ġ{ ĊĠĠ Ġeditor . commit () ĊĠ Ġ} Ġelse Ġ{ ĊĠĠ Ġeditor . apply () ĊĠ Ġ} ĊĠ Ġreturn Ġeditor Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠReturns Ġthe ĠEditor Ġof Ġthe Ġunderlying ĠSharedPreferences Ġinstance . ĊĠ Ġ* ĊĠ Ġ* Ġ@ return ĠAn ĠEditor ĊĠ Ġ*/ Ċ Ġfun Ġedit (): ĠEditor Ġ{ ĊĠ Ġreturn Ġpreferences . edit () Ċ Ġ} ĊĊ Ġ/** ĊĠ Ġ* ĠBuilder Ġclass Ġfor Ġthe ĠEasy Prefs Ġinstance . ĠYou Ġonly Ġhave Ġto Ġcall Ġthis Ġonce Ġin Ġthe ĠApplication ĊĠ Ġ* ĠonCreate . ĠAnd Ġin Ġthe Ġrest Ġof Ġthe Ġcode Ġbase Ġyou Ġcan Ġcall ĠP refs . method Ġname . ĊĠ Ġ*/ Ċ Ġclass ĠBuilder Ġ{ ĊĊĠ Ġprivate Ġvar Ġm Key : ĠString ? Ġ= Ġnull ĊĠ Ġprivate Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġm Mode Ġ= Ġ- 1 ĊĠ Ġprivate Ġvar Ġm Use Default Ġ= Ġfalse ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSet Ġthe Ġfilename Ġof Ġthe ĠShared Preference Ġinstance . ĠUsually Ġthis Ġis Ġthe Ġapplication 's ĊĠĠ Ġ* Ġpack ag ename . xml Ġbut Ġit Ġcan Ġbe Ġmodified Ġfor Ġmigration Ġpurposes Ġor Ġcustomization . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġprefs Name Ġthe Ġfilename Ġused Ġfor Ġthe ĠShared Preference ĊĠĠ Ġ* Ġ@ return Ġthe Ġ[ com . pix p licity . eas yp refs . library . Prefs . Builder ] Ġobject . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġset Prefs Name ( prefs Name : ĠString ): ĠBuilder Ġ{ ĊĠĠ Ġm Key Ġ= Ġprefs Name ĊĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSet Ġthe ĠContext Ġused Ġto Ġinstantiate Ġthe ĠSharedPreferences ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġcontext Ġthe Ġapplication Ġcontext ĊĠĠ Ġ* Ġ@ return Ġthe Ġ[ com . pix p licity . eas yp refs . library . Prefs . Builder ] Ġobject . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġset Context ( context : ĠContext ): ĠBuilder Ġ{ ĊĠĠ ĠmContext Ġ= Ġcontext ĊĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSet Ġthe Ġmode Ġof Ġthe ĠShared Preference Ġinstance . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġmode ĠOperating Ġmode . Ġ ĠUse Ġ 0 Ġor Ġ[ Context . MODE _ PRIVATE ] Ġfor Ġthe ĊĠĠ Ġ* Ġdefault Ġoperation , Ġ[ Context . MODE _ WORLD _ READ ABLE ] ĊĠĠ Ġ* Ġ@ return Ġthe Ġ[ com . pix p licity . eas yp refs . library . Prefs . Builder ] Ġobject . ĊĠĠ Ġ* Ġ@ see ĠContext . get SharedPreferences ĊĠĠ Ġ*/ ĊĠ Ġfun Ġset Mode ( mode : ĠInt ): ĠBuilder Ġ{ ĊĠĠ Ġif Ġ( mode Ġ== ĠContext Wrapper . MODE _ PRIVATE Ġ|| Ġmode Ġ== ĠContext Wrapper . MODE _ WORLD _ READ ABLE Ġ|| Ġmode Ġ== ĠContext Wrapper . MODE _ WORLD _ WRITE ABLE Ġ|| Ġmode Ġ== ĠContext Wrapper . MODE _ MULTI _ PROCESS ) Ġ{ ĊĠĠĠ Ġm Mode Ġ= Ġmode ĊĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠ Ġthrow ĠRuntimeException (" The Ġmode Ġin Ġthe ĠShared Preference Ġcan Ġonly Ġbe Ġset Ġtoo ĠContext Wrapper . MODE _ PRIVATE , ĠContext Wrapper . MODE _ WORLD _ READ ABLE , ĠContext Wrapper . MODE _ WORLD _ WRITE ABLE Ġor ĠContext Wrapper . MODE _ MULTI _ PROCESS ") ĊĠĠ Ġ} ĊĊĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSet Ġthe Ġdefault ĠShared Preference Ġfile Ġname . ĠO ft en Ġthe Ġpackage Ġname Ġof Ġthe Ġapplication Ġis ĊĠĠ Ġ* Ġused , Ġbut Ġif Ġthe Ġ[ android . preference . Preference Activity ] Ġor Ġ[ Ġ] Ġis Ġused Ġthe Ġsystem Ġwill Ġappend Ġthat Ġwith ĊĠĠ Ġ* Ġ_ preference . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġdefault Shared Preference Ġtrue Ġif Ġdefault ĠShared Preference Ġname Ġshould Ġused . ĊĠĠ Ġ* Ġ@ return Ġthe Ġ[ com . pix p licity . eas yp refs . library . Prefs . Builder ] Ġobject . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġset Use Default Shared Preference ( default Shared Preference : ĠBoolean ): ĠBuilder Ġ{ ĊĠĠ Ġm Use Default Ġ= Ġdefault Shared Preference ĊĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠInitialize Ġthe ĠShared Preference Ġinstance Ġto Ġused Ġin Ġthe Ġapplication . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ throws ĠRuntimeException Ġif ĠContext Ġhas Ġnot Ġbeen Ġset . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġbuild () Ġ{ ĊĠĠ Ġif Ġ( mContext Ġ== Ġnull ) Ġ{ ĊĠĠĠ Ġthrow ĠRuntimeException (" Context Ġnot Ġset , Ġplease Ġset Ġcontext Ġbefore Ġbuilding Ġthe ĠP refs Ġinstance .") ĊĠĠ Ġ} ĊĊĠĠ Ġif Ġ( TextUtils . isEmpty ( m Key )) Ġ{ ĊĠĠĠ Ġm Key Ġ= ĠmContext !!. packageName ĊĠĠ Ġ} ĊĊĠĠ Ġif Ġ( m Use Default ) Ġ{ ĊĠĠĠ Ġm Key Ġ+= ĠDEFAULT _ SUFFIX ĊĠĠ Ġ} ĊĊĠĠ Ġif Ġ( m Mode Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠ Ġm Mode Ġ= ĠContext Wrapper . MODE _ PRIVATE ĊĠĠ Ġ} ĊĊĠĠ ĠP refs . init Prefs ( mContext !! , Ġthis !!. m Key !! , Ġm Mode ) ĊĠ Ġ} Ċ Ġ} Ċ } ĊĊ