package Ġin _. co . inner pe ac et ech . ex op layer p oc Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ Ċ object ĠSP Helper Ġ{ ĊĠĠĠ Ġconst Ġval ĠSHO ULD _ SAVE Ġ= Ġ" should save " ĊĠĠĠ Ġconst Ġval ĠS AV ED Ġ= Ġ" saved " ĊĠĠĠ Ġfun Ġm Prefs ( context : ĠContext ): ĠSharedPreferences ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġcontext . get SharedPreferences (" My Preference ", ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠ Ġprivate Ġinline Ġfun ĠSharedPreferences . edit ( operation : Ġ( SharedPreferences . Editor ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġthis . edit () ĊĠĠĠĠĠĠĠ Ġoperation ( editor ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠSharedPreferences . set ( key : ĠString , Ġvalue : ĠAny ?) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠString ? Ġ-> Ġedit Ġ{ Ġit . putString ( key , Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġedit Ġ{ Ġit . put Int ( key , Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġedit Ġ{ Ġit . put Boolean ( key , Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> Ġedit Ġ{ Ġit . put Float ( key , Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġedit Ġ{ Ġit . put Long ( key , Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠUnsupportedOperationException (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinline Ġoperator Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠSharedPreferences . get ( key : ĠString , ĠdefaultValue : ĠT ? Ġ= Ġnull ): ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġwhen Ġ( T :: class ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString :: class Ġ-> ĠgetString ( key , ĠdefaultValue Ġas ? ĠString Ġ?: Ġ"") Ġas ĠT ĊĠĠĠĠĠĠĠ ĠInt :: class Ġ-> Ġget Int ( key , ĠdefaultValue Ġas ? ĠInt Ġ?: Ġ- 1 ) Ġas ĠT ĊĠĠĠĠĠĠĠ ĠBoolean :: class Ġ-> Ġget Boolean ( key , ĠdefaultValue Ġas ? ĠBoolean Ġ?: Ġfalse ) Ġas ĠT ĊĠĠĠĠĠĠĠ ĠFloat :: class Ġ-> Ġget Float ( key , ĠdefaultValue Ġas ? ĠFloat Ġ?: Ġ- 1 f ) Ġas ĠT ĊĠĠĠĠĠĠĠ ĠLong :: class Ġ-> Ġget Long ( key , ĠdefaultValue Ġas ? ĠLong Ġ?: Ġ- 1 ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠUnsupportedOperationException (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊ Ċ }