Mercury-IM/domain/src/main/java/org/mercury_im/messenger/core/di/module/ViewModelModule.java

87 lines
4.0 KiB
Java
Raw Normal View History

2020-06-06 18:45:20 +02:00
package org.mercury_im.messenger.core.di.module;
2020-07-13 01:39:26 +02:00
import org.mercury_im.messenger.core.Messenger;
2020-06-09 21:52:53 +02:00
import org.mercury_im.messenger.core.SchedulersFacade;
2020-07-18 12:47:52 +02:00
import org.mercury_im.messenger.core.connection.MercuryConnectionManager;
2020-10-24 19:25:28 +02:00
import org.mercury_im.messenger.core.crypto.ikey.IkeyInitializer;
import org.mercury_im.messenger.core.crypto.ikey.IkeyRepository;
2020-06-06 18:45:20 +02:00
import org.mercury_im.messenger.core.data.repository.AccountRepository;
2020-07-13 18:49:29 +02:00
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;
2020-07-13 18:49:29 +02:00
import org.mercury_im.messenger.core.data.repository.PeerRepository;
2020-07-18 12:47:52 +02:00
import org.mercury_im.messenger.core.viewmodel.account.LoginViewModel;
2020-07-13 18:49:29 +02:00
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;
2020-07-13 01:39:26 +02:00
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,
2020-06-09 21:52:53 +02:00
SchedulersFacade schedulers) {
return new LoginViewModel(connectionManager, accountRepository, schedulers);
}
@Provides
@Singleton
2020-07-13 18:49:29 +02:00
static AccountListViewModel provideAccountsViewModel(MercuryConnectionManager connectionManager,
AccountRepository accountRepository,
OpenPgpRepository openPgpRepository,
SchedulersFacade schedulers) {
return new AccountListViewModel(connectionManager, accountRepository, openPgpRepository, schedulers);
2020-06-09 21:52:53 +02:00
}
@Provides
@Singleton
2020-07-18 12:47:52 +02:00
static AccountDetailsViewModel provideAccountDetailsViewModel(MercuryConnectionManager connectionManager,
OpenPgpRepository openPgpRepository,
2020-10-24 19:25:28 +02:00
IkeyRepository ikeyRepository,
AccountRepository accountRepository,
2020-10-24 19:25:28 +02:00
SchedulersFacade schedulers,
IkeyInitializer ikeyInitializer) {
return new AccountDetailsViewModel(connectionManager, openPgpRepository, ikeyRepository, accountRepository, schedulers, ikeyInitializer);
}
2020-07-13 01:39:26 +02:00
@Provides
@Singleton
2020-07-13 18:49:29 +02:00
static ChatViewModel provideChatViewModel(Messenger messenger,
PeerRepository peerRepository,
DirectChatRepository directChatRepository,
MessageRepository messageRepository,
SchedulersFacade schedulers) {
return new ChatViewModel(messenger, peerRepository, directChatRepository, messageRepository, schedulers);
2020-07-13 01:39:26 +02:00
}
2020-07-13 18:49:29 +02:00
@Provides
@Singleton
2020-07-18 12:47:52 +02:00
static ChatListViewModel provideChatListViewModel(DirectChatRepository directChatRepository) {
return new ChatListViewModel(directChatRepository);
2020-07-13 18:49:29 +02:00
}
2020-07-09 02:10:47 +02:00
/*
@Provides
@Singleton
static OxSecretKeyBackupRestoreViewModel provideOxSecretKeyBackupRestoreViewModel(OpenPgpManager openPgpManager) {
return new OxSecretKeyBackupRestoreViewModel(openPgpManager);
}
*/
2020-06-11 16:04:06 +02:00
/*
2020-06-09 21:52:53 +02:00
@Provides
@Singleton
static ChatViewModel provideChatViewModel(Repositories repositories, SchedulersFacade schedulers) {
return new ChatViewModel(repositories, schedulers);
}
2020-06-11 16:04:06 +02:00
*/
}