package Ġjp . mi h ails ku z mins . s ug oin ih ongo app . helpers . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . f 2 pr ate ek . rx . preferences 2 . Preference Ċ import Ġcom . f 2 pr ate ek . rx . preferences 2 . Rx SharedPreferences Ċ import Ġio . reactivex . Observable Ċ import Ġjp . mi h ails ku z mins . s ug oin ih ongo app . Build Config Ċ import Ġjp . mi h ails ku z mins . s ug oin ih ongo app . extensions . invoke If Ċ Ċ class ĠSharedPreferences Util ( context : ĠContext ) Ġ{ ĊĊ ĉ private Ġval Ġm Rx Preferences : ĠRx SharedPreferences Ġ= Ġcontext Ċĉ ĉ . get SharedPreferences ( Build Config . APPLICATION _ ID , ĠContext . MODE _ PRIVATE ) Ċĉ ĉ . run ( Rx SharedPreferences :: create ) ĊĊ ĉ // ĠInt Ċ ĉ fun Ġget Int ( key : ĠString ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getInteger ( key ) Ċĉĉ ĉ . get () ĊĊ ĉ fun Ġset Int ( key : ĠString , Ġvalue : ĠInt ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getInteger ( key ) Ċĉĉ ĉ . set ( value ) ĊĊ ĉ fun Ġset Int IfNot Set ( key : ĠString , Ġvalue : ĠInt ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getInteger ( key ) Ċĉĉ ĉ . set IfNot Set ( value ) ĊĊ ĉ fun Ġobserve Int ( key : ĠString ): ĠObservable < Int > Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getInteger ( key ) Ċĉĉ ĉ . as Observable () Ċĉĉ ĉ . distinct Until Changed () ĊĊ ĉ // ĠBoolean Ċ ĉ fun Ġget Boolean ( key : ĠString ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getBoolean ( key ) Ċĉĉ ĉ . get () ĊĊ ĉ fun Ġset Boolean ( key : ĠString , Ġvalue : ĠBoolean ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getBoolean ( key ) Ċĉĉ ĉ . set ( value ) ĊĊ ĉ fun Ġset Boolean IfNot Set ( key : ĠString , Ġvalue : ĠBoolean ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getBoolean ( key ) Ċĉĉ ĉ . set IfNot Set ( value ) ĊĊ ĉ fun Ġobserve Bool ( key : ĠString ): ĠObservable < Boolean > Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getBoolean ( key ) Ċĉĉ ĉ . as Observable () Ċĉĉ ĉ . distinct Until Changed () ĊĊ ĉ // ĠLong Ċ ĉ fun Ġget Long ( key : ĠString ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getLong ( key ) Ċĉĉ ĉ . get () ĊĊ ĉ fun Ġset Long ( key : ĠString , Ġvalue : ĠLong ) Ġ= Ċĉ ĉ m Rx Preferences Ċĉĉ ĉ . getLong ( key ) Ċĉĉ ĉ . set ( value ) ĊĊ ĉ private Ġfun Ġ< T > ĠPreference < T >. set IfNot Set ( value : ĠT ) Ġ= Ċĉ ĉ invoke If ({ Ġ! it . isSet Ġ}, Ġ{ Ġit . set ( value ) Ġ}) Ċ }