package Ġcom . app . ly ng ua . models . categories Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room .* Ċ Ċ /* Ċ Ċ This Ġis Ġclass Ġto Ġset Ġup Ġthe Ġdatabase Ġfor Ġthe Ġcategories . Ċ Ċ The Ġdatabase Ġwas Ġset Ġup Ġthrough Ġthe Ġtutorial Ġfound Ġhere : Ċ https :// www . youtube . com / watch ? v = 3 US vr 1 Lz 8 g 8 Ċ Ċ */ Ċ Ċ @ Database ( ĊĠĠĠ Ġentities Ġ= Ġ[ Category :: class ], ĊĠĠĠ Ġversion Ġ= Ġ 1 0 , ĊĠĠĠ Ġexport Schema Ġ= Ġfalse Ġ) Ċ Ċ @ Type Converters ( Words Type Converter :: class ) Ċ abstract Ġclass ĠCategory Database : ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġcategory Dao (): ĠCategory Dao ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠCategory Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġan Ġinstance Ġof Ġthe Ġdatabase . ĠIf Ġone Ġalready Ġexists , Ġreturn Ġit , Ġotherwise Ġcreate Ġit ĊĠĠĠĠĠĠĠ Ġ// ĠInput : ĠThe Ġcurrent Ġapp Ġcontext ĊĠĠĠĠĠĠĠ Ġ// ĠOutput : Ġthe Ġcategory Database Ġobject ĊĠĠĠĠĠĠĠ Ġfun Ġget Database ( context : ĠContext ): ĠCategory Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance Copy Ġ= ĠINSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( instance Copy Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance Copy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Database ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠPurpose : ĠIf Ġthe Ġdatabase Ġhasn 't Ġbeen Ġcreated , Ġcreate Ġit ĊĠĠĠĠĠĠĠ Ġ// ĠInput : Ġcontext , Ġthe Ġcurrent Ġapp Ġcontext ĊĠĠĠĠĠĠĠ Ġ// ĠOutput : Ġthe Ġcategory Database Ġobject ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Database ( context : ĠContext ): ĠCategory Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( Category Database :: class ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance = Room . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory Database :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" category _ database ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }