package Ġio . ik ws 4 . we ij u . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . annotation . Keep Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġandroidx . room . migration . Migration Ċ import Ġandroidx . sqlite . db . Support SQLite Database Ċ import Ġandroidx . work . One Time Work RequestBuilder Ċ import Ġandroidx . work . Work Manager Ċ import Ġcom . commons ware . cw ac . sa fer oom . Safe Helper Factory Ċ import Ġio . ik ws 4 . we ij u . utilities . DATABASE _ NAME Ċ import Ġio . ik ws 4 . we ij u . utilities . WE IJ U _ PKG _ NAME Ċ import Ġio . ik ws 4 . we ij u . worker . Seed App Database Worker Ċ Ċ @ Database ( entities Ġ= Ġ[ App Info :: class , ĠTranslation Info :: class , ĠUser :: class ], Ġversion Ġ= Ġ 2 , Ġexport Schema Ġ= Ġfalse ) Ċ abstract Ġclass ĠApp Database Ġ: ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġapp Info Dao (): ĠApp Info Dao ĊĊĠĠĠ Ġabstract Ġfun Ġtranslation Info Dao (): ĠTranslation Dao ĊĊĠĠĠ Ġabstract Ġfun Ġuser Dao (): ĠUser Dao ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠApp Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ): ĠApp Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ?: Ġbuild Database ( context ). also Ġ{ Ġinstance Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠM IG RATION _ 1 _ 2 Ġ= Ġobject Ġ: ĠMigration ( 1 , Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmigrate ( database : ĠSupport SQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . exec SQL (" CREATE ĠTABLE Ġtranslation _ info Ġ( id ĠINTEGER ĠNOT ĠNULL , Ġpkg Name ĠTEXT ĠNOT ĠNULL , Ġ` query ` ĠTEXT ĠNOT ĠNULL , Ġ` from ` ĠTEXT ĠNOT ĠNULL , Ġ` to ` ĠTEXT ĠNOT ĠNULL , Ġresult ĠTEXT ĠNOT ĠNULL , ĠPRIMARY ĠKEY ( id )) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . exec SQL (" CREATE ĠTABLE Ġuser Ġ( free S og ou Api Amount ĠINTEGER ĠNOT ĠNULL )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Keep ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbuild Database ( context : ĠContext ): ĠApp Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= ĠEditText ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . setText ( WE IJ U _ PKG _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsafe Helper Factory Ġ= ĠSafe Helper Factory . from User ( edit Text . text ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( context , ĠApp Database :: class . java , ĠDATABASE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. open Helper Factory ( safe Helper Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Migrations ( M IG RATION _ 1 _ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Callback ( object Ġ: ĠRoom Database . Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ( db : ĠSupport SQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . onCreate ( db ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠOne Time Work RequestBuilder < Seed App Database Worker >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Tag ( Seed App Database Worker . TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWork Manager . getInstance ( context ). enqueue ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ