package Ġtech . sut d . indo or tracking pro . datastore Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . datastore . core . DataStore Ċ import Ġandroidx . datastore . preferences . core . Preferences Ċ import Ġandroidx . datastore . preferences . core . boolean Preferences Key Ċ import Ġandroidx . datastore . preferences . core . edit Ċ import Ġandroidx . datastore . preferences . core . int Preferences Key Ċ import Ġandroidx . datastore . preferences . preferences DataStore Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map Ċ Ċ private Ġconst Ġval ĠP REFER ENCES _ NAME Ġ= Ġ" data _ store " Ċ val ĠContext . data Store : ĠData Store < Preferences > Ġby Ġpreferences DataStore ( PREFER ENCES _ NAME ) Ċ Ċ class ĠPreferences Ġ( ĊĠĠĠ Ġval Ġcontext : ĠContext Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdata Store Ġ= Ġcontext . data Store ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠAP _ AD DED Ġ= Ġboolean Preferences Key (" ap _ added ") ĊĠĠĠĠĠĠĠ Ġval ĠMP _ AD DED Ġ= Ġboolean Preferences Key (" mp _ added ") ĊĠĠĠĠĠĠĠ Ġval ĠSC AN _ DONE Ġ= Ġboolean Preferences Key (" scan _ done ") ĊĠĠĠĠĠĠĠ Ġval ĠMAP _ NUM Ġ= Ġint Preferences Key (" map _ num ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġupdate Check Ap ( check Ap : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ AP _ AD DED ] Ġ= Ġcheck Ap ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġupdate Check Mp ( check Mp : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ MP _ AD DED ] Ġ= Ġcheck Mp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġscan Done ( scan Done : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ SCAN _ DONE ] Ġ= Ġscan Done ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġfloor Num ( map Num : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ MAP _ NUM ] Ġ= Ġmap Num ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġap Added : ĠFlow < Boolean ?> Ġ= Ġdata Store . data . map Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ AP _ AD DED ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmp Added : ĠFlow < Boolean ?> Ġ= Ġdata Store . data . map Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ MP _ AD DED ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġscan Done : ĠFlow < Boolean ?> Ġ= Ġdata Store . data . map Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ SCAN _ DONE ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfloor Num : ĠFlow < Int > Ġ= Ġdata Store . data . map Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ MAP _ NUM ] Ġ?: Ġ 1 ĊĠĠĠ Ġ} Ċ }