package Ġcom . c zech . mu v ies . room . movies Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ Ċ @ Database ( entities Ġ= Ġ[ Movies Entity :: class ], Ġversion Ġ= Ġ 2 ) Ċ abstract Ġclass ĠMov ies Database : ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġmovies Dao (): ĠMov ies Dao ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠMov ies Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Database ( context : ĠContext , ĊĠĠĠĠĠĠĠ Ġscope : ĠCor outine Scope ): ĠMov ies Database Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠINSTANCE Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMov ies Database :: class . java , Ġ" movies _ database ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= Ġinstance ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }