52 lines
1.2 KiB
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();
|
|
}
|
|
}
|