package Ġcom . ed im ari yan to . test mv vm . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . datastore . core . DataStore Ċ import Ġandroidx . datastore . data Store Ċ import Ġandroidx . datastore . data Store File Ċ import Ġandroidx . datastore . preferences . core . Preferences Ċ import Ġandroidx . datastore . preferences . core . edit Ċ import Ġandroidx . datastore . preferences . core . string Preferences Key Ċ import Ġandroidx . datastore . preferences . preferences DataStore Ċ import Ġandroidx . datastore . preferences . preferences DataStore File Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map Ċ Ċ class ĠUser Preferences ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġapplication Context Ġ= Ġcontext . application Context ĊĠĠĠ Ġprivate Ġval ĠContext . data Store : ĠData Store < Preferences > Ġby Ġpreferences DataStore ( name Ġ= Ġ" settings ") ĊĊĊĠĠĠ Ġval Ġauth Token : ĠFlow < String ?> ĊĠĠĠ Ġget () Ġ= Ġapplication Context . data Store . data . map Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ KEY _ AUTH ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġsave AuthToken ( auth Token : ĠString ){ ĊĠĠĠĠĠĠĠ Ġapplication Context . data Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ KEY _ AUTH ] Ġ= Ġauth Token ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġclear (){ ĊĠĠĠĠĠĠĠ Ġapplication Context . data Store . edit Ġ{ Ġpreferences Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠKEY _ AUTH Ġ= Ġstring Preferences Key (" key _ auth ") ĊĠĠĠ Ġ} Ċ Ċ }