package Ġio . android al atan . datastore . preference . in memory Ċ Ċ import Ġandroid . content . SharedPreferences Ċ Ċ class ĠIn Memory Editor ( private Ġval Ġcallback : Ġ( String , ĠAny ?, ĠBoolean ) Ġ-> ĠUnit ) Ġ: ĠSharedPreferences . Editor Ġ{ ĊĠĠĠ Ġinternal Ġval Ġtargets Ġ= Ġhash Map Of < String , ĠAny ?> () ĊĠĠĠ Ġinternal Ġvar Ġcleared Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġput String ( key : ĠString , Ġvalue : ĠString ?): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġtargets [ key ] Ġ= Ġvalue Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput String Set ( key : ĠString , Ġvalues : ĠMutable Set < String >? ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġtargets [ key ] Ġ= Ġvalues Ġ?: Ġempty Set < String >() ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput Int ( key : ĠString , Ġvalue : ĠInt ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġtargets [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput Long ( key : ĠString , Ġvalue : ĠLong ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġtargets [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput Float ( key : ĠString , Ġvalue : ĠFloat ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġtargets [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput Boolean ( key : ĠString , Ġvalue : ĠBoolean ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġtargets [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove ( key : ĠString ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġtargets [ key ] Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear (): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġcleared Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcommit (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cleared ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ("", Ġnull , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtargets . forEach Ġ{ Ġentry : ĠMap . Entry < String , ĠAny ?> Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( entry . key , Ġentry . value , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtargets . clear () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply () Ġ{ ĊĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠ Ġ} Ċ }