package Ġcom . h ish am . b ush ar . fav our ite . data . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Room Ċ import Ġcom . h ish am . b ush ar . fav our ite . data . F avour ite Repository Impl Ċ import Ġcom . h ish am . b ush ar . fav our ite . data . database . F avour ite Dao Ċ import Ġcom . h ish am . b ush ar . fav our ite . data . database . F avour ite Database Ċ import Ġcom . h ish am . b ush ar . fav our ite . domain . F avour ite Repository Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . android . qual ifiers . ApplicationContext Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ @ Install In ( Singleton Component :: class ) Ċ abstract Ġclass ĠF avour ite Data Module Ġ{ ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġabstract Ġfun Ġbind s F avour ite Repository ( impl : ĠF avour ite Repository Impl ): ĠF avour ite Repository ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġprovide F avour ite Database ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ ApplicationContext Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġ): ĠF avour ite Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avour ite Database :: class . java , Ġ" fav our ites " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġprovide F avour ite Dao ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase : ĠF avour ite Database , ĊĠĠĠĠĠĠĠ Ġ): ĠF avour ite Dao Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdatabase . fav our ite Dao () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ