package Ġcom . lib and . utils Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ Ċ class ĠShared Pref ce Utils Ġprivate Ġconstructor ( application : ĠApplication ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġshared Preferences : ĠSharedPreferences ĊĊĠĠĠ Ġprivate Ġval Ġeditor : ĠSharedPreferences . Editor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġshared Preferences . edit () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġshared Preferences Ġ= Ġapplication . get SharedPreferences ( application . packageName , ĠContext . MODE _ PRIVATE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( shared Preferences . contains ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . remove ( key ). commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave ( key : ĠString , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġeditor ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġis ĠBoolean Ġ-> Ġeditor . put Boolean ( key , Ġ( value Ġas ĠBoolean ?) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġis ĠInt Ġ-> Ġeditor . put Int ( key , Ġ( value Ġas ĠInt ?) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġis ĠFloat Ġ-> Ġeditor . put Float ( key , Ġ( value Ġas ĠFloat ?) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġis ĠLong Ġ-> Ġeditor . put Long ( key , Ġ( value Ġas ĠLong ?) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġis ĠString Ġ-> Ġeditor . putString ( key , Ġvalue Ġas ĠString ?) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġis ĠEnum < *> Ġ-> Ġeditor . putString ( key , Ġvalue . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ!= Ġnull Ġ-> Ġthrow ĠRuntimeException (" At tempting Ġto Ġsave Ġnon - supported Ġpreference ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġeditor . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< T > Ġget ( key : ĠString ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . all [ key ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< T > Ġget ( key : ĠString , Ġdef Value : ĠT ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠreturnValue Ġ= Ġshared Preferences . all [ key ] ĊĠĠĠĠĠĠĠ Ġreturn ĠreturnValue Ġ?: Ġdef Value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas ( key : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . contains ( key ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġclear All Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġeditor ĊĠĠĠĠĠĠĠ Ġeditor . clear (). commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠShared Pref ce Utils ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( application : ĠApplication ): ĠShared Pref ce Utils Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= ĠShared Pref ce Utils ( application ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance Ġas ĠShared Pref ce Utils ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ