Mercury-IM/core/src/main/java/org/mercury_im/messenger/core/di/CenterModule.java

39 lines
1.4 KiB
Java

package org.mercury_im.messenger.core.di;
import org.mercury_im.messenger.core.NotificationManager;
import org.mercury_im.messenger.core.centers.ConnectionCenter;
import org.mercury_im.messenger.core.stores.EntityCapsStore;
import org.mercury_im.messenger.core.stores.PlainMessageStore;
import org.mercury_im.messenger.persistence.repository.AccountRepository;
import org.mercury_im.messenger.persistence.repository.MessageRepository;
import org.mercury_im.messenger.persistence.repository.RosterRepository;
import org.mercury_im.messenger.persistence.repository.EntityCapsRepository;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module
public class CenterModule {
@Singleton
@Provides
static ConnectionCenter provideConnectionCenter(EntityCapsStore capsStore, PlainMessageStore messageStore, AccountRepository accountRepository, RosterRepository rosterRepository) {
return new ConnectionCenter(capsStore, messageStore, accountRepository, rosterRepository);
}
@Singleton
@Provides
static EntityCapsStore providerEntityCapsStore(EntityCapsRepository capsRepository) {
return new EntityCapsStore(capsRepository);
}
@Singleton
@Provides
static PlainMessageStore provideMessageStore(MessageRepository messageRepository, NotificationManager notificationManager) {
return new PlainMessageStore(messageRepository, notificationManager);
}
}