package Ġcom . power in code . question naire _ app . data . preference Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . preference . Preference Manager Ċ import Ġcom . power in code . question naire _ app . data . local . User Ċ import Ġcom . squareup . mos hi . M oshi Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġpower man 2 3 rus Ġon Ġ 1 2 / 0 2 / 2 0 1 9 . Ċ Ġ*/ Ċ class ĠPreference Provider ( context Ġ: ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġpreferences Ġ: ĠSharedPreferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠ Ġprivate Ġval Ġm oshi Ġ= ĠM oshi . Builder (). build () ĊĊĠĠĠ Ġvar Ġuser Ġ: ĠUser ? ĊĠĠĠĠĠĠĠ Ġget Ġ() Ġ= Ġfrom Json ( preferences . getString (" user ", Ġnull )) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġpreferences . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" user ", ĠtoJson ( value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġinline Ġfun ĠSharedPreferences . edit ( block Ġ: ĠSharedPreferences . Editor . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġthis . edit () ĊĠĠĠĠĠĠĠ Ġblock ( editor ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠT > ĠtoJson ( item Ġ: ĠT ) Ġ: ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġm oshi . adapter ( T :: class . java ). toJson ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġfrom Json ( json Ġ: ĠString ?) Ġ: ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġjson Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġm oshi . adapter ( T :: class . java ). fromJson ( json ) ĊĠĠĠ Ġ} Ċ }