package Ġorg . od k . collect . android . preferences Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġorg . od k . collect . android . utilities . Admin Password Provider Ċ import Ġorg . od k . collect . android shared . data . Consum able Ċ Ċ class ĠProject Preferences ViewModel ( admin Password Provider : ĠAdmin Password Provider ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġenum Ġclass ĠState Ġ{ ĊĠĠĠĠĠĠĠ ĠLOCK ED , Ġ// ĠAdmin Ġpassword Ġis Ġset Ġbut Ġnot Ġentered ĊĠĠĠĠĠĠĠ ĠUN LOCK ED , Ġ// ĠAdmin Ġpassword Ġis Ġset Ġand Ġentered ĊĠĠĠĠĠĠĠ ĠNOT _ PROTECT ED Ġ// ĠAdmin Ġpassword Ġis Ġnot Ġset ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġ_ state Ġ= ĠMutable LiveData < Consum able < State >>() ĊĠĠĠ Ġvar Ġstate : ĠLive Data < Consum able < State >> Ġ= Ġ_ state ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ state . value Ġ= Ġif Ġ( admin Password Provider . isAdmin Password Set ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCon sum able ( State . LOCK ED ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCon sum able ( State . NOT _ PROTECT ED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis State Locked () Ġ= Ġstate . value Ġ== ĠCon sum able ( State . LOCK ED ) ĊĊĠĠĠ Ġfun Ġis State Unlock ed () Ġ= Ġstate . value Ġ== ĠCon sum able ( State . UNLOCK ED ) ĊĊĠĠĠ Ġfun Ġis State Not Protected () Ġ= Ġstate . value Ġ== ĠCon sum able ( State . NOT _ PROTECT ED ) ĊĊĠĠĠ Ġfun ĠsetState Locked () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ state . value Ġ= ĠCon sum able ( State . LOCK ED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetState Unlock ed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ state . value Ġ= ĠCon sum able ( State . UNLOCK ED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetState Not Protected () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ state . value Ġ= ĠCon sum able ( State . NOT _ PROTECT ED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġclass ĠFactory ( private Ġval Ġadmin Password Provider : ĠAdmin Password Provider ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel > Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProject Preferences ViewModel ( admin Password Provider ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ