package Ġmm st q . com . w ut Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġcom . google . firebase . database . Data Snapshot Ċ import Ġcom . google . firebase . database . Database Error Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġcom . google . firebase . database . Value EventListener Ċ Ċ class ĠConstant Ġ{ ĊĊĊĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠ Ġvar Ġlist : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠ Ġvar Ġshare _ link : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠ Ġprivate Ġvar Ġshared Preferences : ĠSharedPreferences ? Ġ= Ġnull ĊĠĠĠĠĠ Ġ/* private Ġvar Ġm DB : ĠApp Database ? Ġ= Ġnull ĊĠĠĠĠĠ Ġprivate Ġvar Ġdao : ĠRaw Dao ? Ġ= Ġnull */ ĊĊĠĠĠĠĠ Ġfun Ġshared Preference Init ( context : ĠContext ): ĠSharedPreferences Ġ{ ĊĊĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( shared Preferences Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences Ġ= Ġcontext . get SharedPreferences (" DB ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences !! ĊĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences !! ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠ Ġfun ĠgetValue ( context : ĠContext , Ġkey : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġshared Preference Init ( context ) ĊĠĠĠĠĠĠĠĠ Ġreturn Ġsp . getString ( key , Ġ"") ĊĠĠĠĠĠĠĠĠ Ġ/* val Ġm DB Ġ= ĠApp Database . getInstance ( context ) ĊĠĠĠĠĠĠĠĠ Ġreturn Ġm DB ?. raw Dao ()?. getBy Key ( key )?. value */ ĊĊĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠ Ġfun Ġdb Refresh ( context : ĠContext ) Ġ{ ĊĊĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġshared Preference Init ( context ). edit () ĊĠĠĠĠĠĠĠĠ Ġval Ġroot Ref Ġ= ĠFirebase Database . getInstance (). reference . child (" tt ") ĊĠĠĠĠĠĠĠĠ Ġval Ġvalue EventListener Ġ= Ġobject Ġ: ĠValue EventListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( data Snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ds Ġin Ġdata Snapshot . children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġds . child (" value "). getValue ( String :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġds . child (" key "). getValue ( String :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue . replace ("/", Ġ", ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue . replace (" Ġ: Ġ", Ġ", ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue . replace ("- ", Ġ" Ġ- Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp . putString ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* val Ġcategory Ġ= Ġds . child (" category "). getValue ( String :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecord Ġ= ĠData ( key !! , Ġvalue , Ġcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull Ġ&& Ġcategory Ġ!= Ġnull ) Ġwith ( dao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ?. addData ( record ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp . apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( database Error : ĠDatabase Error ) Ġ{} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġroot Ref . addListener For Single Value Event ( value EventListener ) ĊĠĠĠĠĠ Ġ} ĊĊĊĠĠ Ġ} Ċ } Ċ