package Ġcom . dd m eng . d ribb ble client . di . module Ċ Ċ import Ġandroid . app . Application Ċ import Ġcom . dd m eng . d ribb ble client . data . local . D ribb ble Client Database Ċ import Ġcom . dd m eng . d ribb ble client . data . local . Shot Dao Ċ import Ġcom . dd m eng . d ribb ble client . data . local . User Dao Ċ import Ġcom . dd m eng . d ribb ble client . data . repository . Shot Repository Ċ import Ġcom . dd m eng . d ribb ble client . data . repository . UserRepository Ċ import Ġcom . dd m eng . d ribb ble client . utils . Preferences Utils Ċ import Ġcom . dd m eng . d ribb ble client . view model . Shot ViewModel Factory Ċ import Ġcom . dd m eng . d ribb ble client . view model . User ViewModel Factory Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module ( includes Ġ= Ġ[ Android Module :: class ]) Ċ class ĠApp Module Ġ{ ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Database ( app : ĠApplication ): ĠD ribb ble Client Database Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠD ribb ble Client Database . getInstance ( app ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide User Dao ( d ribb ble Client Database : ĠD ribb ble Client Database ): ĠUser Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġd ribb ble Client Database . user Dao () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Shot Dao ( d ribb ble Client Database : ĠD ribb ble Client Database ): ĠShot Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġd ribb ble Client Database . shot Dao () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide User ViewModel Factory ( user Repository : ĠUser Repository , Ġpreferences Utils : ĠPreferences Utils ): ĠUser ViewModel Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser ViewModel Factory ( user Repository , Ġpreferences Utils ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Shot ViewModel Factory ( shot Repository : ĠShot Repository ): ĠShot ViewModel Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠShot ViewModel Factory ( shot Repository ) ĊĠĠĠ Ġ} Ċ } Ċ