/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠC ov i Lights ĠG b R Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . cov il ights . user Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . mir h ose ini . app settings . AppSettings Ċ import Ġcom . mo hs en oid . close to me . utils . to Uuid Ċ import Ġjava . util . UUID Ċ Ċ internal Ġclass ĠUser ManagerImpl ( val Ġcontext : ĠContext ) Ġ: ĠUser Manager Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġuser Uuid : ĠUUID Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠApp Settings . getString ( context , ĠUSER _ UUID )?. to Uuid () Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Uuid Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Settings . setValue ( context , ĠUSER _ UUID , Ġnew Uuid . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Uuid ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġ_ user Status Ġ= ĠMutable LiveData ( User Status . values ()[ AppSettings . getInt ( context , ĠUSER _ STATUS ) Ġ?: Ġ 0 ]) ĊĠĠĠ Ġoverride Ġval Ġuser Status : ĠLive Data < User Status > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ user Status ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Status . observe Fore ver Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Settings . setValue ( context , ĠUSER _ STATUS , Ġvalue . ordinal ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetUser Status ( status : ĠUser Status ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(_ user Status . value Ġ!= Ġstatus ) Ġ_ user Status . value Ġ= Ġstatus ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ UUID Ġ= Ġ" user _ uuid " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ STATUS Ġ= Ġ" user _ status " ĊĠĠĠ Ġ} Ċ } Ċ