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

68 lines
2.8 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.data.repository.AccountRepository;
import org.mercury_im.messenger.core.data.repository.OpenPgpRepository;
import org.mercury_im.messenger.core.data.repository.Repositories;
import org.mercury_im.messenger.core.viewmodel.accounts.AccountDetailsViewModel;
import org.mercury_im.messenger.core.viewmodel.accounts.AccountsViewModel;
import org.mercury_im.messenger.core.viewmodel.accounts.LoginViewModel;
import org.mercury_im.messenger.core.viewmodel.chat.ChatViewModel;
import org.mercury_im.messenger.core.xmpp.MercuryConnectionManager;
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 AccountsViewModel provideAccountsViewModel(MercuryConnectionManager connectionManager,
AccountRepository accountRepository,
OpenPgpRepository openPgpRepository,
SchedulersFacade schedulers) {
return new AccountsViewModel(connectionManager, accountRepository, openPgpRepository, schedulers);
}
@Provides
@Singleton
static AccountDetailsViewModel provideAccountDetailsViewModel(OpenPgpRepository openPgpRepository,
AccountRepository accountRepository,
SchedulersFacade schedulers) {
return new AccountDetailsViewModel(openPgpRepository, accountRepository, schedulers);
}
@Provides
@Singleton
static ChatViewModel provideChatViewModel(Messenger messenger, Repositories repositories, SchedulersFacade schedulers) {
return new ChatViewModel(messenger, repositories, schedulers);
}
/*
@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);
}
*/
}