package Ġcom . example . base app . db Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġandroidx . room . Type Converters Ċ import Ġcom . example . base app . vo . Article Ċ Ċ @ Database ( entities Ġ= Ġ[ Article :: class ], Ġversion Ġ= Ġ 1 ) Ċ @ Type Converters ( Date Converter :: class ) Ċ abstract Ġclass ĠNews Database Ġ: ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġget Articles Dao (): ĠArticles Dao ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠNews Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ) Ġ= Ġinstance Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ?: Ġcreate Instance ( context ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Instance ( context : ĠContext ) Ġ= ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNews Database :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" news . db " ĊĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠ Ġ} Ċ } Ċ