package Ġeu . code pl umbers . kotlin starter . dependency _ injection Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . room . Room Ċ import Ġcom . google . gson . Gson Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġeu . code pl umbers . kotlin starter . feature _ demo . data . local . Converters Ċ import Ġeu . code pl umbers . kotlin starter . feature _ demo . data . local . Note Database Ċ import Ġeu . code pl umbers . kotlin starter . feature _ demo . data . remote . Note Api Ċ import Ġeu . code pl umbers . kotlin starter . feature _ demo . data . repository . Note Repository Impl Ċ import Ġeu . code pl umbers . kotlin starter . feature _ demo . data . util . Gson Parser Ċ import Ġeu . code pl umbers . kotlin starter . feature _ demo . domain . repository . Note Repository Ċ import Ġeu . code pl umbers . kotlin starter . feature _ demo . domain . use _ case . Get Notes Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ @ Install In ( Singleton Component :: class ) Ċ object ĠApp Module Ġ{ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Get Notes UseCase ( repository : ĠNote Repository ): ĠGet Notes Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGet Notes ( repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Note Repository ( ĊĠĠĠĠĠĠĠ Ġdb : ĠNote Database , ĊĠĠĠĠĠĠĠ Ġapi : ĠNote Api ĊĠĠĠ Ġ): ĠNote Repository Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNote Repository Impl ( api , Ġdb . note Dao ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Note Database ( app : ĠApplication ): ĠNote Database Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp , ĠNote Database :: class . java , Ġ" word _ db " ĊĠĠĠĠĠĠĠ Ġ). add Type Converter ( Converters ( Gson Parser ( Gson ()))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Note Api (): ĠNote Api Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Note Api . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( Note Api :: class . java ) ĊĠĠĠ Ġ} Ċ }