package Ġcom . example . android . dev byte viewer . database Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . room .* Ċ Ċ @ Dao Ċ interface Ġ ĠVideo Dao { ĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM ĠĠ Ġdatabase videos ") ĊĠĠĠ Ġfun Ġget Videos () Ġ: ĠLive Data < List < Database videos >> ĊĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġfun Ġinsert All ( var arg Ġvideos : ĠDatabase videos ) Ċ } Ċ Ċ @ Database ( entities Ġ= Ġ[ Database videos :: class ], Ġversion Ġ= Ġ 1 ) Ċ abstract Ġclass ĠVideo Database Ġ: ĠRoom Database (){ ĊĠĠĠ Ġabstract Ġval Ġvideo Dao Ġ: ĠVideo Dao Ċ } ĊĊ Ċ private Ġlateinit Ġvar ĠINSTANCE Ġ: ĠVideo Database Ċ Ċ fun Ġget Database ( context : ĠContext ) Ġ: ĠVideo Database Ġ{ ĊĠĠĠ Ġsynchronized ( Video Database :: class . java ){ ĊĠĠĠĠĠĠĠ Ġif (! :: INSTANCE . isInitialized ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= ĠRoom . database Builder ( context . application Context , ĠVideo Database :: class . java ," videos "). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ ĠINSTANCE Ċ Ċ }