package Ġcom . vin ners . cube _ v ish w ak arma . core . di . modules Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . room . Room Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . Local Database Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . Out lets Local Database Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . dao . Dashboard Dao Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . dao . My Comp l aint Dao Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . dao . Out lets Dao Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . dao . Profile Dao Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . local DataStore Impl . Outlet Local DataStore Impl Ċ import Ġcom . vin ners . cube _ v ish w ak arma . cache . local DataStore Impl . UserProfile Local DataStore Impl Ċ import Ġcom . vin ners . cube _ v ish w ak arma . data . data Stores . out lets . Out lets Local DataStore Ċ import Ġcom . vin ners . cube _ v ish w ak arma . data . data Stores . user Profile . UserProfile Local DataStore Ċ import Ġcom . vin ners . cube _ v ish w ak arma . data . repository . Outlet Repository Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ abstract Ġclass ĠCache Module Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġcompanion Ġobject Ġannotated Ġas Ġa Ġmodule Ġis Ġnecessary Ġin Ġorder Ġto Ġprovide Ġdependencies ĊĠĠĠĠ Ġ* Ġstatic ally Ġin Ġcase Ġthe Ġwrapping Ġmodule Ġis Ġan Ġabstract Ġclass Ġ( to Ġuse Ġbinding ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Module ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Local Database ( application : ĠApplication ): ĠLocal Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Database :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Database . DATABASE _ NAME ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Out lets Local Database ( application : ĠApplication ): ĠOut lets Local Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOut lets Local Database :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOut lets Local Database . DATABASE _ NAME ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Profile Dao ( local Database : ĠLocal Database ): ĠProfile Dao Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlocal Database . profile Dao () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Out lets Dao ( out lets Local Database : ĠOut lets Local Database ): ĠOut lets Dao Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġout lets Local Database . get Out lets Dao () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide My Comp l aint Dao ( out lets Local Database : ĠOut lets Local Database ): ĠMy Comp l aint Dao Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġout lets Local Database . get My Comp l aint Dao () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Dashboard Dao ( out lets Local Database : ĠOut lets Local Database ): ĠDashboard Dao Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġout lets Local Database . get Dashboard Dao () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġabstract Ġfun Ġbind Profile Local Store ( profile Local DataStore Impl : ĠUser Profile Local DataStore Impl ): ĠUser Profile Local DataStore ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġabstract Ġfun Ġbind Out lets Local Store ( out let Local DataStore Impl : ĠOut let Local DataStore Impl ): ĠOut lets Local DataStore ĊĊ Ċ }