package Ġcom . ed im ari yan to . meal . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . datastore . core . DataStore Ċ import Ġandroidx . datastore . preferences . core . Preferences Ċ import Ġandroidx . datastore . preferences . core . clear Ċ import Ġandroidx . datastore . preferences . core . edit Ċ import Ġandroidx . datastore . preferences . core . preferences Key Ċ import Ġandroidx . datastore . preferences . create DataStore Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map Ċ Ċ class ĠUser Preferences ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdata Store : ĠData Store < Preferences > Ġ= Ġcontext . create DataStore ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" settings " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġcategory : ĠFlow < String ?> ĊĠĠĠ Ġget () Ġ= Ġdata Store . data . map Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ KEY _ CATEGORY ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġme al Id : ĠFlow < String ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdata Store . data . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ KEY _ ME AL ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġsave Category ( category Name : ĠString ){ ĊĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ KEY _ CATEGORY ] Ġ= Ġcategory Name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġsave Me al ( meal Id : ĠString ){ ĊĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ KEY _ ME AL ] Ġ= Ġme al Id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġsuspend Ġfun Ġclear (){ ĊĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ Ġpreferences Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠKEY _ CATEGORY Ġ= Ġpreferences Key < String >(" key _ category ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠKEY _ ME AL Ġ= Ġpreferences Key < String >(" key _ meal ") ĊĠĠĠ Ġ} Ċ Ċ }