package Ġpro . lab ster . typed preferences Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ Ċ interface ĠBase Preference < T > Ġ{ ĊĠĠĠ Ġfun Ġget (): ĠT ? ĊĠĠĠ Ġfun Ġput ( value : ĠT ) ĊĠĠĠ Ġfun Ġdelete () Ċ } Ċ Ċ abstract Ġclass ĠBase Preference Impl < T >( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprotected Ġval Ġname : ĠString Ċ ) Ġ: ĠBase Preference < T > Ġ{ ĊĊĠĠĠ Ġprotected Ġval Ġshared Preferences : ĠSharedPreferences Ġ= Ġcontext . get SharedPreferences ( name , ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠ Ġprotected Ġval Ġkey : ĠString Ġ= ĠKEY ĊĊĠĠĠ Ġoverride Ġfun Ġdelete () Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Preferences ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY Ġ= Ġ" key " ĊĠĠĠ Ġ} Ċ }