package Ġde . the ess . e is ba er . data Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġde . the ess . e is ba er . E is ba er Application Ċ import Ġio . re query . kotlin . asc Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠTag Repository ( private Ġval Ġdatabase : ĠDatabase ) Ġ: ĠAbstract Repository ( database ) Ġ{ ĊĊĠĠĠ Ġfun ĠgetAll (): ĠLive Data < List < Tag >> Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" getAll ") ĊĠĠĠĠĠĠĠ Ġreturn Ġto LiveData Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . store ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( Tag :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. orderBy ( Tag :: title . asc ()). limit ( QUERY _ LIMIT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. get ()?. toList () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠQUERY _ LIMIT Ġ= Ġ 2 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// ĠFor ĠSingleton Ġinstantiation ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠTag Repository ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( application : ĠE is ba er Application ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ?: ĠTag Repository ( application . database ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }