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); } */ }