package Ġcom . ab by ber kers . app home . storage Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġcom . ab by ber kers . app home . communication . User Preferences Ċ import Ġcom . google . gson . Gson Ċ Ċ /** Ċ Ġ* ĠClass Ġto Ġhandle Ġall Ġ' communication ' Ġwith Ġthe Ġshared Ġpreferences . Ċ Ġ*/ Ċ class ĠShared Preference Helper ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĊĠĠĠ Ġval Ġshared Pref : ĠSharedPreferences Ġby Ġlazy Ġ{ ĠPreference Manager . getDefault SharedPreferences ( context ) Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSave Ġa Ġuser Ġpreference Ġto Ġthe Ġshared Ġpreferences . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġuser Ġthe Ġuser Ġto Ġsave . ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġ( optional ) Ġthe Ġkey Ġto Ġsave Ġthe Ġuser Ġto . ĠThis Ġis Ġ" user " Ġby Ġdefault ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsave User Preference ( user : ĠUser Preferences , Ġkey : ĠString Ġ= Ġ" user ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Pref . edit () ĊĠĠĠĠĠĠĠ Ġ// ĠConvert Ġthe ĠUser Preferences Ġobject Ġto Ġa Ġstring . ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġgson . toJson ( user ) ĊĠĠĠĠĠĠĠ Ġ// ĠPut Ġthe Ġstring Ġin Ġthe Ġshared Ġpreferences . ĊĠĠĠĠĠĠĠ Ġeditor . putString ( key , Ġjson ) ĊĠĠĠĠĠĠĠ Ġ// ĠSave Ġthe Ġshared Ġpreferences . ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġuser Ġpreference Ġfrom Ġthe Ġshared Ġpreferences . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġ( optional ) Ġthe Ġkey Ġfrom Ġthe Ġpreference Ġto Ġget . ĠThis Ġis Ġ" user " Ġby Ġdefault . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ User Preferences ] Ġif Ġthey Ġwere Ġset , Ġnull Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetUser Preference ( key : ĠString Ġ= Ġ" user ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser : ĠUser Preferences Ġ= ĠUser Preferences . AB BY ): ĠUser Preferences ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġshared Pref . getString ( key , Ġ"") ĊĠĠĠĠĠĠĠ Ġ// ĠConvert Ġthe Ġstring Ġto Ġa ĠUser Preference Ġobject . ĊĠĠĠĠĠĠĠ Ġreturn ĠGson (). fromJson ( json , Ġuser :: class . java ) ĊĠĠĠ Ġ} Ċ } ĊĊ