/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠLite K ite ĠStartup . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . lite k ite . client . preference Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠA ĠShared ĠPreference ĠController Ġthat Ġuses ĠCredential ĠProtected ĠStorage Ġand Ġit Ġcan Ġbe Ġonly Ċ Ġ* Ġaccessed Ġafter Ġcredentials Ġfor Ġlock - screen Ġbeing Ġentered Ġand Ġun locked . Ċ Ġ* Ċ Ġ* ĠThese Ġpreferences Ġare Ġstored Ġin Ġ/ data / user [ release - version ] Ġor Ġin Ġ/ data / user - de [ debug - version ] Ċ Ġ* Ċ Ġ* Ġ@ author ĠV ign esh ĠS Ċ Ġ* Ġ@ version Ġ 1 . 0 , Ġ 0 9 / 0 4 / 2 0 2 0 Ċ Ġ* Ġ@ since Ġ 1 . 0 Ċ Ġ*/ Ċ @ Suppress (" UNUSED ") Ċ @ Singleton Ċ class ĠPreference Controller Ġ@ Inject Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĊ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ const Ġval ĠP REFER ENCES _ CLIENT _ APP Ġ= Ġ" preferences _ client _ app " ĊĊĉ ĉ const Ġval ĠP REFERENCE _ LOGIN _ COMPLETE _ STATE Ġ= Ġ" preference _ login _ complete _ state " ĊĊĉ ĉ const Ġval ĠP REFERENCE _ LOG GED _ IN _ USER _ ID Ġ= Ġ" preference _ logged _ in _ user _ id " Ċ ĉ } ĊĊ ĉ private Ġval Ġpreferences Ġ= Ġget Preferences () Ċ ĉ private Ġval Ġeditor Ġ= Ġget Editor () ĊĊ ĉ fun Ġget Boolean ( key : ĠString ): ĠBoolean Ġ{ Ċĉ ĉ return Ġpreferences . getBoolean ( key , Ġfalse ) Ċ ĉ } ĊĊ ĉ fun Ġget Int ( key : ĠString ): ĠInt Ġ{ Ċĉ ĉ return Ġpreferences . getInt ( key , Ġ 0 ) Ċ ĉ } ĊĊ ĉ fun Ġget Long ( key : ĠString ): ĠLong Ġ{ Ċĉ ĉ return Ġpreferences . getLong ( key , Ġ 0 ) Ċ ĉ } ĊĊ ĉ fun Ġget Float ( key : ĠString ): ĠFloat Ġ{ Ċĉ ĉ return Ġpreferences . get Float ( key , Ġ 0 F ) Ċ ĉ } ĊĊ ĉ fun Ġget Double ( key : ĠString ): ĠDouble Ġ{ Ċĉ ĉ return Ġjava . lang . Double . long Bits ToDouble ( Ċĉĉ ĉ preferences . getLong ( key , Ġ 0 ) Ċĉ ĉ ) Ċ ĉ } ĊĊ ĉ fun ĠgetString ( key : ĠString ): ĠString Ġ{ Ċĉ ĉ return Ġpreferences . getString ( key , Ġ"") Ġ?: Ġ"" Ċ ĉ } ĊĊ ĉ fun Ġstore ( key : ĠString , Ġvalue : ĠBoolean ) Ġ{ Ċĉ ĉ editor . put Boolean ( key , Ġvalue ). apply () Ċ ĉ } ĊĊ ĉ fun Ġstore ( key : ĠString , Ġvalue : ĠInt ) Ġ{ Ċĉ ĉ editor . put Int ( key , Ġvalue ). apply () Ċ ĉ } ĊĊ ĉ fun Ġstore ( key : ĠString , Ġvalue : ĠLong ) Ġ{ Ċĉ ĉ editor . put Long ( Ċĉĉ ĉ key , Ċĉĉ ĉ value Ċĉ ĉ ). apply () Ċ ĉ } ĊĊ ĉ fun Ġstore ( key : ĠString , Ġvalue : ĠFloat ) Ġ{ Ċĉ ĉ editor . put Float ( key , Ġvalue ). apply () Ċ ĉ } ĊĊ ĉ fun Ġstore ( key : ĠString , Ġvalue : ĠDouble ) Ġ{ Ċĉ ĉ editor . put Long ( Ċĉĉ ĉ key , Ċĉĉ ĉ java . lang . Double . double To Raw Long Bits (( value )) Ċĉ ĉ ). apply () Ċ ĉ } ĊĊ ĉ fun Ġstore ( key : ĠString , Ġvalue : ĠString ) Ġ{ Ċĉ ĉ editor . putString ( key , Ġvalue ). apply () Ċ ĉ } ĊĊ ĉ private Ġfun Ġget Editor (): ĠSharedPreferences . Editor Ġ{ Ċĉ ĉ return Ġpreferences . edit () Ċ ĉ } ĊĊ ĉ private Ġfun Ġget Preferences (): ĠSharedPreferences Ġ{ Ċĉ ĉ return Ġcontext . create Credential Protected Storage Context (). get SharedPreferences ( Ċĉĉ ĉ PREFER ENCES _ CLIENT _ APP , Ċĉĉ ĉ Context . MODE _ PRIVATE Ċĉ ĉ ) Ċ ĉ } Ċ Ċ }