package Ġcom . gab riel more no ib arra . weather location . data . room Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġandroidx . sqlite . db . Support SQLite Database Ċ import Ġcom . gab riel more no ib arra . weather location . domain . model . use case . Word Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ Ċ @ Database ( entities Ġ= Ġ[ Word :: class ], Ġversion Ġ= Ġ 1 ) Ċ abstract Ġclass ĠWord Room Database Ġ: ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġword Dao (): ĠWord Dao ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠWord Room Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Database ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope : ĠCor outine Scope ĊĠĠĠĠĠĠĠ Ġ): ĠWord Room Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWord Room Database :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" word _ database ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Callback ( Word Database Callback ( scope )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp anion . instance Ġ= Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġclass ĠWord Database Callback ( private Ġval Ġscope : ĠCor outine Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠRoom Database . Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Open ( db : ĠSupport SQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Open ( db ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance ?. let Ġ{ Ġdatabase Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . launch Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate Database ( database . word Dao ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġpopulate Database ( word Dao : ĠWord Dao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġword Dao . delete All () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġword Ġ= ĠWord (" Hello ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġword Dao . insert ( word ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġword Ġ= ĠWord (" World !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġword Dao . insert ( word ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ