package Ġdev . y ash g . todo ist . di čĊč Ċ import Ġandroid . app . Application č Ċ import Ġandroidx . room . Room č Ċ import Ġdagger . Module č Ċ import Ġdagger . Provides č Ċ import Ġdagger . h ilt . Install In č Ċ import Ġdagger . h ilt . components . Singleton Component č Ċ import Ġdev . y ash g . todo ist . db . Task Database č Ċ import Ġdev . y ash g . todo ist . models . Task Use Cases č Ċ import Ġdev . y ash g . todo ist . repository . Task Repository č Ċ import Ġdev . y ash g . todo ist . repository . Task Repository Impl č Ċ import Ġdev . y ash g . todo ist . ui . tasks . cases . Add Task č Ċ import Ġdev . y ash g . todo ist . ui . tasks . cases . Delete Task č Ċ import Ġdev . y ash g . todo ist . ui . tasks . cases . Get Tasks č Ċ import Ġjavax . inject . Singleton čĊč Ċ @ Module č Ċ @ Install In ( Singleton Component :: class ) č Ċ object ĠApp Module Ġ{ čĊčĊĠĠĠ Ġ@ Provides čĊĠĠĠ Ġ@ Singleton čĊĠĠĠ Ġfun Ġprovide Task Database ( app : ĠApplication ): ĠTask Database Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( app , ĠTask Database :: class . java , ĠTask Database . DATABASE _ NAME ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Provides čĊĠĠĠ Ġ@ Singleton čĊĠĠĠ Ġfun Ġprovide Task Repository ( db : ĠTask Database ): ĠTask Repository Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠTask Repository Impl ( db . task Dao ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Provides čĊĠĠĠ Ġ@ Singleton čĊĠĠĠ Ġfun Ġprovide Task Use Cases ( repository : ĠTask Repository ): ĠTask Use Cases Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠTask Use Cases ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Tasks Ġ= ĠGet Tasks ( repository ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Task Ġ= ĠDelete Task ( repository ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Ġ= ĠAdd Task ( repository ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ} č Ċ } čĊ