/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠAl te h ĠUnion Ġ( al te h . union @ gmail . com ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠMIT ĠLicense Ġ( see Ġthe Ġroot ĠLICENSE Ġfile Ġfor Ġdetails ) Ċ Ġ*/ Ċ Ċ package Ġorg . al te h . org helper . di Ċ Ċ import Ġandroid . content . Context Ċ 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 Ġorg . al te h . org helper . Org Helper Database Ċ import Ġorg . al te h . org helper . dao .* Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠA Ġh ilt Ġmodule Ġwhich Ġprovides Ġinstances Ġof Ġthe Ġdatabase Ġand Ġits ĠDAO Ġobjects Ċ Ġ* Ġto Ġclasses Ġwhich Ġrequest Ġthem Ġin Ġtheir Ġconstructors Ġ( by Ġusing Ġthe Ġ[ javax . inject . Inject ] Ġannotation ) Ċ Ġ*/ Ċ @ Install In ( Singleton Component :: class ) Ċ @ Module Ċ class ĠDatabase Module Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Org Helper Database ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide App Database (@ ApplicationContext Ġcontext : ĠContext ): ĠOrg Helper Database Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠOrg Helper Database . getInstance ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Setting Dao ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Setting Dao ( app Database : ĠOrg Helper Database ): ĠSetting Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . setting Dao ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Account Dao ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Account Dao ( app Database : ĠOrg Helper Database ): ĠAccount Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . account Dao ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Org Dao ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Org Dao ( app Database : ĠOrg Helper Database ): ĠOrg Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . org Dao ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Module Dao ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Module Dao ( app Database : ĠOrg Helper Database ): ĠModule Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . module Dao ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Command Dao ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Command Dao ( app Database : ĠOrg Helper Database ): ĠCommand Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . command Dao ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Argument Dao ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Argument Dao ( app Database : ĠOrg Helper Database ): ĠArgument Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . argument Dao ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġan Ġinstance Ġof Ġ[ Argument Value Dao ]. ĠUse Ġa Ġconstructor Ġwith Ġthe Ġ[ javax . inject . Inject ] Ġannotation ĊĠĠĠĠ Ġ* Ġto Ġget Ġaccess Ġto Ġthe Ġresult Ġof Ġthis Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Argument Value Dao ( app Database : ĠOrg Helper Database ): ĠArgument Value Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . argument Value Dao ĊĠĠĠ Ġ} Ċ }