package Ġrad h ika . y us uf . id . mv vm kotlin . data . source . local . room Ċ Ċ import Ġandroid . arch . persistence . room . Database Ċ import Ġandroid . arch . persistence . room . Room Ċ import Ġandroid . arch . persistence . room . Room Database Ċ import Ġandroid . content . Context Ċ import Ġrad h ika . y us uf . id . mv vm kotlin . data . model . Hero es Model ĊĊ Ċ @ Database ( entities Ġ= Ġ[( Hero es Model :: class )], Ġversion Ġ= Ġ 1 ) Ċ abstract Ġclass ĠApp Database Ġ: ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġhero es Dao (): ĠHero es Dao ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠApp Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ): ĠApp Database Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ?: Ġbuild Database ( context ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbuild Database ( context : ĠContext ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Database :: class . java , Ġ" Rad h ika Apps . db ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. allow MainThread Queries () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ }