87 lines
4.0 KiB
Java
87 lines
4.0 KiB
Java
package org.mercury_im.messenger.core.di.module;
|
|
|
|
import org.mercury_im.messenger.core.Messenger;
|
|
import org.mercury_im.messenger.core.SchedulersFacade;
|
|
import org.mercury_im.messenger.core.connection.MercuryConnectionManager;
|
|
import org.mercury_im.messenger.core.crypto.ikey.IkeyInitializer;
|
|
import org.mercury_im.messenger.core.crypto.ikey.IkeyRepository;
|
|
import org.mercury_im.messenger.core.data.repository.AccountRepository;
|
|
import org.mercury_im.messenger.core.data.repository.DirectChatRepository;
|
|
import org.mercury_im.messenger.core.data.repository.MessageRepository;
|
|
import org.mercury_im.messenger.core.data.repository.OpenPgpRepository;
|
|
import org.mercury_im.messenger.core.data.repository.PeerRepository;
|
|
import org.mercury_im.messenger.core.viewmodel.account.LoginViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.account.detail.AccountDetailsViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.account.list.AccountListViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.chat.ChatListViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.chat.ChatViewModel;
|
|
|
|
import javax.inject.Singleton;
|
|
|
|
import dagger.Module;
|
|
import dagger.Provides;
|
|
|
|
@Module
|
|
public class ViewModelModule {
|
|
|
|
@Provides
|
|
@Singleton
|
|
static LoginViewModel provideLoginViewModel(MercuryConnectionManager connectionManager,
|
|
AccountRepository accountRepository,
|
|
SchedulersFacade schedulers) {
|
|
return new LoginViewModel(connectionManager, accountRepository, schedulers);
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
static AccountListViewModel provideAccountsViewModel(MercuryConnectionManager connectionManager,
|
|
AccountRepository accountRepository,
|
|
OpenPgpRepository openPgpRepository,
|
|
SchedulersFacade schedulers) {
|
|
return new AccountListViewModel(connectionManager, accountRepository, openPgpRepository, schedulers);
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
static AccountDetailsViewModel provideAccountDetailsViewModel(MercuryConnectionManager connectionManager,
|
|
OpenPgpRepository openPgpRepository,
|
|
IkeyRepository ikeyRepository,
|
|
AccountRepository accountRepository,
|
|
SchedulersFacade schedulers,
|
|
IkeyInitializer ikeyInitializer) {
|
|
return new AccountDetailsViewModel(connectionManager, openPgpRepository, ikeyRepository, accountRepository, schedulers, ikeyInitializer);
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
static ChatViewModel provideChatViewModel(Messenger messenger,
|
|
PeerRepository peerRepository,
|
|
DirectChatRepository directChatRepository,
|
|
MessageRepository messageRepository,
|
|
SchedulersFacade schedulers) {
|
|
return new ChatViewModel(messenger, peerRepository, directChatRepository, messageRepository, schedulers);
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
static ChatListViewModel provideChatListViewModel(DirectChatRepository directChatRepository) {
|
|
return new ChatListViewModel(directChatRepository);
|
|
}
|
|
|
|
/*
|
|
@Provides
|
|
@Singleton
|
|
static OxSecretKeyBackupRestoreViewModel provideOxSecretKeyBackupRestoreViewModel(OpenPgpManager openPgpManager) {
|
|
return new OxSecretKeyBackupRestoreViewModel(openPgpManager);
|
|
}
|
|
*/
|
|
|
|
/*
|
|
@Provides
|
|
@Singleton
|
|
static ChatViewModel provideChatViewModel(Repositories repositories, SchedulersFacade schedulers) {
|
|
return new ChatViewModel(repositories, schedulers);
|
|
}
|
|
*/
|
|
}
|