package Ġcom . android . kit . preference Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . appcompat . app . AppCompat Delegate Ċ import Ġandroidx . core . content . edit Ċ import Ġcom . android . kit . model . Night Mode Ċ import Ġcom . google . gson . Gson Ċ Ċ object ĠKit Preference Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠP REFERENCE _ NAME Ġ= Ġ" Android Kit . Preference " ĊĠĠĠ Ġprivate Ġconst Ġval ĠD ARK _ MODE Ġ= Ġ" Pref . DARK _ MODE " ĊĊĠĠĠ Ġprivate Ġvar Ġgson Ġ= ĠGson () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpreference : ĠSharedPreferences ĊĊĠĠĠ Ġfun Ġinit ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference Ġ= Ġcontext . get SharedPreferences ( PREFER ENCE _ NAME , ĠContext . MODE _ PRIVATE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġnight Mode : ĠNight Mode ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( DARK _ MODE , Ġgson . toJson ( value , ĠNight Mode :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= ĠgetString ( DARK _ MODE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( str Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNight Mode . OFF ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( str , ĠNight Mode :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( key : ĠString , Ġvalue : ĠInt , Ġcommit : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . edit ( commit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( key : ĠString , Ġvalue : ĠFloat , Ġcommit : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . edit ( commit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Float ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( key : ĠString , Ġvalue : ĠLong , Ġcommit : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . edit ( commit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Long ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( key : ĠString , Ġvalue : ĠString , Ġcommit : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . edit ( commit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( key : ĠString , Ġvalue : ĠMutable Set < String >, Ġcommit : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . edit ( commit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String Set ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( key : ĠString , Ġvalue : ĠBoolean , Ġcommit : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . edit ( commit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Boolean ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove ( key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove ( key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcontains ( key : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreference . contains ( key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Int ( key : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreference . getInt ( key , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Long ( key : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreference . getLong ( key , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Float ( key : ĠString , Ġdef Value : ĠFloat Ġ= Ġ 0 f ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreference . get Float ( key , Ġdef Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Boolean ( key : ĠString , Ġdef Value : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreference . getBoolean ( key , Ġdef Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetString ( key : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreference . getString ( key , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetString Set ( key : ĠString ): ĠMutable Set < String >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreference . getString Set ( key , Ġnull ) ĊĠĠĠ Ġ} Ċ }