Mercury-IM/app/src/main/java/org/mercury_im/messenger/di/module/RoomModule.java

52 lines
1.2 KiB
Java

package org.mercury_im.messenger.di.module;
import org.mercury_im.messenger.MercuryImApplication;
import org.mercury_im.messenger.persistence.room.AppDatabase;
import org.mercury_im.messenger.persistence.room.dao.AccountDao;
import org.mercury_im.messenger.persistence.room.dao.MessageDao;
import org.mercury_im.messenger.persistence.room.dao.RosterEntryDao;
import javax.inject.Inject;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
/**
* Provides the {@link AppDatabase}, DAOs and Repositories.
*/
@Module
public class RoomModule {
private AppDatabase mAppDatabase;
@Inject
public RoomModule(MercuryImApplication application) {
mAppDatabase = AppDatabase.getDatabase(application);
}
@Singleton
@Provides
AppDatabase provideAppDatabase() {
return mAppDatabase;
}
@Singleton
@Provides
AccountDao provideAccountDao() {
return mAppDatabase.accountDao();
}
@Singleton
@Provides
RosterEntryDao provideRosterEntryDao() {
return mAppDatabase.rosterEntryDao();
}
@Singleton
@Provides
MessageDao provideMessageDao() {
return mAppDatabase.messageDao();
}
}