package Ġio . aw es d roid . aw es auth kt . data . db ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġandroidx . room . Type Converters Ċ import Ġio . aw es d roid . aw es auth kt . data . db . converter . Config Converter Ċ import Ġio . aw es d roid . aw es auth kt . data . db . converter . State Converter Ċ import Ġio . aw es d roid . aw es auth kt . data . db . dao . Config Dao Ċ import Ġio . aw es d roid . aw es auth kt . data . db . dao . State Dao Ċ import Ġio . aw es d roid . aw es auth kt . data . db . entity . Config Entity Ċ import Ġio . aw es d roid . aw es auth kt . data . db . entity . State Entity Ċ import Ġio . aw es d roid . aw es auth kt . data . di . DI Ċ import Ġio . aw es d roid . aw es auth kt . data . di . DI _ CONTEXT _ TAG Ċ import Ġio . aw es d roid . lib kt . common . utils . mutable Lazy Ċ import Ġorg . kode in . di . generic . instance Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAw es d roid Ċ Ġ*/ Ċ @ Database ( entities Ġ= Ġ[ State Entity :: class , ĠConfig Entity :: class ], Ġversion Ġ= Ġ 1 ) Ċ @ Type Converters ( State Converter :: class , ĠConfig Converter :: class ) Ċ abstract Ġclass ĠAuth Database Ġ: ĠRoom Database () Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġstate Dao (): ĠState Dao ĊĠĠĠ Ġabstract Ġfun Ġconfig Dao (): ĠConfig Dao ĊĊĠĠĠ Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġinstance . take If Ġ{ ĠisOpen Ġ}. run Ġ{ Ġclose () Ġ} ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDB _ NAME Ġ= Ġ" app auth . db " ĊĠĠĠĠĠĠĠ Ġvar Ġinstance : ĠAuth Database ? Ġby Ġmutable Lazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext Ġby ĠDI . kode in !!. instance ( DI _ CONTEXT _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Database ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbuild Database ( context : ĠContext ): ĠAuth Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( context , ĠAuth Database :: class . java , ĠDB _ NAME ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ