package Ġcom . zh ur av lev . food viewer . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Room Ċ import Ġcom . zh ur av lev . food viewer . database . Database Ċ import Ġcom . zh ur av lev . food viewer . database . D ish DAO Ċ import Ġcom . zh ur av lev . food viewer . database . Location DAO Ċ import Ġcom . zh ur av lev . food viewer . model . Category Converter Ċ import Ġcom . zh ur av lev . food viewer . net . Mock Network Service Ċ import Ġcom . zh ur av lev . food viewer . net . Network Service Ċ import Ġcom . zh ur av lev . food viewer . repository . banner . UseCase Banner Ċ import Ġcom . zh ur av lev . food viewer . repository . banner . UseCase Banner Impl Ċ import Ġcom . zh ur av lev . food viewer . repository . category . UseCase Categories Ċ import Ġcom . zh ur av lev . food viewer . repository . category . UseCase Categories Impl Ċ import Ġcom . zh ur av lev . food viewer . repository . dish . UseCase Dis hes Ċ import Ġcom . zh ur av lev . food viewer . repository . dish . UseCase Dis hes Impl Ċ import Ġcom . zh ur av lev . food viewer . repository . location . UseCase Location Ċ import Ġcom . zh ur av lev . food viewer . repository . location . UseCase Location Impl Ċ 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 ) Ċ object ĠApp Module Ġ{ ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Database ( ĊĠĠĠĠĠĠĠ Ġ@ ApplicationContext Ġcontext : ĠContext ĊĠĠĠ Ġ): ĠDatabase Ġ= ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ ĠDatabase :: class . java , ĊĠĠĠĠĠĠĠ Ġ" food _ db " ĊĠĠĠ Ġ). build () ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide D ish DAO ( db : ĠDatabase ): ĠD ish DAO Ġ= Ġdb . get D ish DAO () ĊĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Location DAO ( db : ĠDatabase ): ĠLocation DAO Ġ= Ġdb . getLocation DAO () ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Network Service (): ĠNetwork Service Ġ= ĠMock Network Service () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide UseCase Location ( ĊĠĠĠĠĠĠĠ Ġdis h DAO : ĠD ish DAO , ĊĠĠĠĠĠĠĠ Ġlocation DAO : ĠLocation DAO , ĊĠĠĠĠĠĠĠ Ġnetwork Service : ĠNetwork Service ĊĠĠĠ Ġ): ĠUse Case Location Ġ= ĠUse Case Location Impl ( dish DAO , Ġlocation DAO , Ġnetwork Service ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide UseCase Categories ( ĊĠĠĠĠĠĠĠ Ġdis h DAO : ĠD ish DAO , ĊĠĠĠĠĠĠĠ Ġuse Case Location : ĠUse Case Location , ĊĠĠĠĠĠĠĠ Ġnetwork Service : ĠNetwork Service ĊĠĠĠ Ġ): ĠUse Case Categories Ġ= ĠUse Case Categories Impl ( dish DAO , Ġuse Case Location , Ġnetwork Service ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide UseCase Dis hes ( ĊĠĠĠĠĠĠĠ Ġdis h DAO : ĠD ish DAO , ĊĠĠĠĠĠĠĠ Ġuse Case Location : ĠUse Case Location , ĊĠĠĠĠĠĠĠ Ġnetwork Service : ĠNetwork Service ĊĠĠĠ Ġ): ĠUse Case Dis hes Ġ= ĠUse Case Dis hes Impl ( dish DAO , Ġuse Case Location , Ġnetwork Service ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide UseCase Banner ( ĊĠĠĠĠĠĠĠ Ġuse Case Location : ĠUse Case Location , ĊĠĠĠĠĠĠĠ Ġnetwork Service : ĠNetwork Service ĊĠĠĠ Ġ): ĠUse Case Banner Ġ= ĠUse Case Banner Impl ( use Case Location , Ġnetwork Service ) Ċ }