提交 a7bdc508 编写于 作者: J Jyoti Dubey

Remove multiple VM Creation

上级 386ca35a
......@@ -32,12 +32,8 @@ import dagger.Provides;
public class MainActivityModule {
@Provides
ViewModelProvider.Factory mainViewModelProvider(MainViewModel mainViewModel) {
return new ViewModelProviderFactory<>(mainViewModel);
ViewModelProvider.Factory mainViewModel(DataManager dataManager, SchedulerProvider schedulerProvider) {
return new MainViewModel.Factory(dataManager, schedulerProvider);
}
@Provides
MainViewModel provideMainViewModel(DataManager dataManager, SchedulerProvider schedulerProvider) {
return new MainViewModel(dataManager, schedulerProvider);
}
}
......@@ -17,9 +17,12 @@
package com.mindorks.framework.mvvm.ui.main;
import android.arch.lifecycle.MutableLiveData;
import android.arch.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModelProvider;
import android.databinding.ObservableArrayList;
import android.databinding.ObservableField;
import android.databinding.ObservableList;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.mindorks.framework.mvvm.data.DataManager;
......@@ -147,4 +150,27 @@ public class MainViewModel extends BaseViewModel<MainNavigator> {
public void updateAppVersion(String version) {
appVersion.set(version);
}
public static class Factory extends ViewModelProvider.NewInstanceFactory {
private final DataManager dataManager;
private final SchedulerProvider schedulerProvider;
public Factory(DataManager dataManager,
SchedulerProvider schedulerProvider) {
this.dataManager = dataManager;
this.schedulerProvider = schedulerProvider;
}
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
if (modelClass.isAssignableFrom(MainViewModel.class)) {
return (T) new MainViewModel(dataManager, schedulerProvider);
}
throw new IllegalArgumentException("Unknown class name");
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册