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

37 lines
1.6 KiB
Java
Raw Normal View History

2020-06-06 18:45:20 +02:00
package org.mercury_im.messenger.core.di.module;
2020-06-06 18:45:20 +02:00
import org.mercury_im.messenger.core.data.repository.AccountRepository;
import org.mercury_im.messenger.core.util.ThreadUtils;
import org.mercury_im.messenger.core.viewmodel.accounts.AccountsViewModel;
import org.mercury_im.messenger.core.viewmodel.accounts.LoginViewModel;
import org.mercury_im.messenger.core.xmpp.MercuryConnectionManager;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import io.reactivex.Scheduler;
@Module
public class ViewModelModule {
@Provides
@Singleton
static LoginViewModel provideLoginViewModel(MercuryConnectionManager connectionManager,
AccountRepository accountRepository,
@Named(ThreadUtils.SCHEDULER_IO) Scheduler ioScheduler,
@Named(ThreadUtils.SCHEDULER_UI) Scheduler uiScheduler) {
return new LoginViewModel(connectionManager, accountRepository, ioScheduler, uiScheduler);
}
@Provides
@Singleton
static AccountsViewModel provideAccountsViewModel(MercuryConnectionManager connectionManager,
AccountRepository accountRepository,
@Named(ThreadUtils.SCHEDULER_IO) Scheduler ioScheduler,
@Named(ThreadUtils.SCHEDULER_UI) Scheduler uiScheduler) {
return new AccountsViewModel(connectionManager, accountRepository, ioScheduler, uiScheduler);
}
}