/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 ĠFull ĠMe ad ĠAl che mist , ĠLLC . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . full me ad al che mist . must watch . repository Ċ Ċ import Ġandroid . arch . lifecycle . LiveData Ċ import Ġcom . full me ad al che mist . must watch . db . App Database Ċ import Ġcom . full me ad al che mist . must watch . db . Ingredient Dao Ċ import Ġcom . full me ad al che mist . must watch . vo . Ingredient Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġtim ber . log . Tim ber Ċ Ċ interface ĠIng redient Repository Ġ{ ĊĠĠĠ Ġfun Ġadd Ing redients ( ingredients : ĠList < Ingredient >) ĊĊĠĠĠ Ġfun Ġadd Ing redients ( ingredients : ĠArray < Ingredient >) ĊĊĠĠĠ Ġfun Ġget Ingredient ById ( id : ĠString ): ĠLive Data < Ingredient > ĊĊĠĠĠ Ġfun ĠgetS ug ars (): ĠLive Data < List < Ingredient >> ĊĊĠĠĠ Ġfun Ġget N ut rient s (): ĠLive Data < List < Ingredient >> ĊĊĠĠĠ Ġfun Ġget Y east s (): ĠLive Data < List < Ingredient >> ĊĊĠĠĠ Ġfun Ġget St abil izers (): ĠLive Data < List < Ingredient >> ĊĊĠĠĠ Ġfun ĠgetAll Ing redients (): ĠLive Data < List < Ingredient >> Ċ } Ċ Ċ class ĠIng redient Repository Impl ( private Ġval Ġdatabase : ĠApp Database ) Ġ: ĠIng redient Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetS ug ars (): ĠLive Data < List < Ingredient >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase . ingredient Dao (). all S ug ars ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget N ut rient s (): ĠLive Data < List < Ingredient >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase . ingredient Dao (). all N ut rient s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Y east s (): ĠLive Data < List < Ingredient >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase . ingredient Dao (). all Y east s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget St abil izers (): ĠLive Data < List < Ingredient >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase . ingredient Dao (). all St abil izers ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Ing redients (): ĠLive Data < List < Ingredient >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase . ingredient Dao (). all ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Ing redients ( ingredients : ĠList < Ingredient >) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Adding Ġ% s ĠIng redient Ġobjects Ġto Ġthe Ġdb ", Ġingredients . size ) ĊĠĠĠĠĠĠĠ ĠObservable . from Callable < Any > Ġ{ Ġdatabase . ingredient Dao (). insert All (* ingredients . to Typed Array ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Ing redients ( ingredients : ĠArray < Ingredient >) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Adding Ġ% s ĠIng redient Ġobjects Ġto Ġthe Ġdb ", Ġingredients . size ) ĊĠĠĠĠĠĠĠ ĠObservable . from Callable < Any > Ġ{ Ġdatabase . ingredient Dao (). insert All (* ingredients ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ingredient ById ( id : ĠString ): ĠLive Data < Ingredient > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase . ingredient Dao (). getById ( id ) ĊĠĠĠ Ġ} Ċ } Ċ