package Ġcom . n 2 k sp . expense _ tracker . data . shared preference Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroid . text . TextUtils Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠShared Pref Util Ġ@ Inject Ġconstructor ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINT RO _ SCREEN _ KEY Ġ= Ġ" intro _ screen _ shown " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠADD _ FAB _ INT RO Ġ= Ġ" add _ fab _ intro " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSELECT _ CATEGORY _ TYPE _ AND _ CATEGORY Ġ= Ġ" select _ category _ type _ and _ category " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATA _ ENTRY Ġ= Ġ" data _ entry " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġpreferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĊĊĠĠĠ Ġfun Ġintro Screen Shown (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreferences . getBoolean ( INT RO _ SCREEN _ KEY , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset intro Screen Shown () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Boolean Preference ( INT RO _ SCREEN _ KEY , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Fab Intro Shown () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Boolean Preference ( ADD _ FAB _ INT RO , Ġvalue Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Fab Intro Screen Shown (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreferences . getBoolean ( ADD _ FAB _ INT RO , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset String Preference ( key : ĠString , Ġvalue : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( preferences Ġ!= Ġnull Ġ&& Ġ! TextUtils . isEmpty ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġeditor . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Boolean Preference ( key : ĠString , Ġvalue : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( preferences Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . put Boolean ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġeditor . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Category Type And Category Selection Intro Shown () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Boolean Preference ( SELECT _ CATEGORY _ TYPE _ AND _ CATEGORY , Ġvalue Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Category Type And Category Selection Intro Shown (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreferences . getBoolean ( SELECT _ CATEGORY _ TYPE _ AND _ CATEGORY , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Date Entry Intro Shown () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Boolean Preference ( DATA _ ENTRY , Ġvalue Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Date Entry Intro Shown (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreferences . getBoolean ( DATA _ ENTRY , Ġfalse ) ĊĠĠĠ Ġ} ĊĊ Ċ }