Commit d2814e13 by 段启岩

更新初始化流程

parent 91d8400e
...@@ -41,10 +41,10 @@ public class SplashActivity extends BaseActivity<SplashActivityViewModel, Activi ...@@ -41,10 +41,10 @@ public class SplashActivity extends BaseActivity<SplashActivityViewModel, Activi
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
viewModel.getInitialState().observe(this, new Observer<SplashActivityViewModel.InitialState>() { viewModel.getInitialStates().observe(this, new Observer<SplashActivityViewModel.InitialStates>() {
@Override @Override
public void onChanged(SplashActivityViewModel.InitialState initialState) { public void onChanged(SplashActivityViewModel.InitialStates initialStates) {
if (initialState == SplashActivityViewModel.InitialState.COMPLETE) { if (initialStates.isCompleted()) {
startActivity(new Intent(SplashActivity.this, MainActivity.class)); startActivity(new Intent(SplashActivity.this, MainActivity.class));
SplashActivity.this.finish(); SplashActivity.this.finish();
} }
......
...@@ -15,6 +15,7 @@ import cn.yunliyunwai.beyondclouds.data.model.Result; ...@@ -15,6 +15,7 @@ import cn.yunliyunwai.beyondclouds.data.model.Result;
import cn.yunliyunwai.beyondclouds.data.source.IBlogRepository; import cn.yunliyunwai.beyondclouds.data.source.IBlogRepository;
import cn.yunliyunwai.beyondclouds.data.source.IProjectRepository; import cn.yunliyunwai.beyondclouds.data.source.IProjectRepository;
import cn.yunliyunwai.beyondclouds.util.AppExecutors; import cn.yunliyunwai.beyondclouds.util.AppExecutors;
import lombok.Data;
public class SplashActivityViewModel extends ViewModel { public class SplashActivityViewModel extends ViewModel {
...@@ -22,25 +23,37 @@ public class SplashActivityViewModel extends ViewModel { ...@@ -22,25 +23,37 @@ public class SplashActivityViewModel extends ViewModel {
INITIALIZING, INITIALIZING,
COMPLETE COMPLETE
} }
@Data
public static class InitialStates {
private InitialState blogCategoryInitialState;
private InitialState projectCategoryInitialState;
public InitialStates() {
blogCategoryInitialState = InitialState.INITIALIZING;
projectCategoryInitialState = InitialState.INITIALIZING;
}
public boolean isCompleted() {
return blogCategoryInitialState == InitialState.COMPLETE
&& projectCategoryInitialState == InitialState.COMPLETE;
}
}
private IBlogRepository blogRepository; private IBlogRepository blogRepository;
private IProjectRepository projectRepository; private IProjectRepository projectRepository;
private AppExecutors appExecutors; private AppExecutors appExecutors;
private MutableLiveData<InitialState> initialState = new MutableLiveData<>(); private MutableLiveData<InitialStates> mInitialStates = new MutableLiveData<>();
private MutableLiveData<InitialState> blogCategoryInitialState = new MutableLiveData<>();
private MutableLiveData<InitialState> projectCategoryInitialState = new MutableLiveData<>();
@Inject @Inject
public SplashActivityViewModel(IBlogRepository blogRepository, IProjectRepository projectRepository, AppExecutors appExecutors) { public SplashActivityViewModel(IBlogRepository blogRepository, IProjectRepository projectRepository, AppExecutors appExecutors) {
this.blogRepository = blogRepository; this.blogRepository = blogRepository;
this.projectRepository = projectRepository; this.projectRepository = projectRepository;
this.appExecutors = appExecutors; this.appExecutors = appExecutors;
initialState.setValue(InitialState.INITIALIZING); mInitialStates.setValue(new InitialStates());
blogCategoryInitialState.setValue(InitialState.INITIALIZING);
projectCategoryInitialState.setValue(InitialState.INITIALIZING);
} }
public LiveData<InitialState> getInitialState() { public LiveData<InitialStates> getInitialStates() {
return initialState; return mInitialStates;
} }
/** /**
...@@ -57,10 +70,11 @@ public class SplashActivityViewModel extends ViewModel { ...@@ -57,10 +70,11 @@ public class SplashActivityViewModel extends ViewModel {
@Override @Override
public void run() { public void run() {
blogRepository.saveCategories(listResult.getData()); blogRepository.saveCategories(listResult.getData());
blogCategoryInitialState.postValue(InitialState.COMPLETE); mInitialStates
if (projectCategoryInitialState.getValue() == InitialState.COMPLETE) { .getValue()
initialState.postValue(InitialState.COMPLETE); .setBlogCategoryInitialState(InitialState.COMPLETE);
} mInitialStates.postValue(mInitialStates.getValue());
} }
}); });
} }
...@@ -75,10 +89,10 @@ public class SplashActivityViewModel extends ViewModel { ...@@ -75,10 +89,10 @@ public class SplashActivityViewModel extends ViewModel {
@Override @Override
public void run() { public void run() {
projectRepository.saveCategories(listResult.getData()); projectRepository.saveCategories(listResult.getData());
projectCategoryInitialState.postValue(InitialState.COMPLETE); mInitialStates
if (blogCategoryInitialState.getValue() == InitialState.COMPLETE) { .getValue()
initialState.postValue(InitialState.COMPLETE); .setProjectCategoryInitialState(InitialState.COMPLETE);
} mInitialStates.setValue(mInitialStates.getValue());
} }
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment