Commit d2814e13 by 段启岩

更新初始化流程

parent 91d8400e
......@@ -41,10 +41,10 @@ public class SplashActivity extends BaseActivity<SplashActivityViewModel, Activi
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
viewModel.getInitialState().observe(this, new Observer<SplashActivityViewModel.InitialState>() {
viewModel.getInitialStates().observe(this, new Observer<SplashActivityViewModel.InitialStates>() {
@Override
public void onChanged(SplashActivityViewModel.InitialState initialState) {
if (initialState == SplashActivityViewModel.InitialState.COMPLETE) {
public void onChanged(SplashActivityViewModel.InitialStates initialStates) {
if (initialStates.isCompleted()) {
startActivity(new Intent(SplashActivity.this, MainActivity.class));
SplashActivity.this.finish();
}
......
......@@ -15,6 +15,7 @@ import cn.yunliyunwai.beyondclouds.data.model.Result;
import cn.yunliyunwai.beyondclouds.data.source.IBlogRepository;
import cn.yunliyunwai.beyondclouds.data.source.IProjectRepository;
import cn.yunliyunwai.beyondclouds.util.AppExecutors;
import lombok.Data;
public class SplashActivityViewModel extends ViewModel {
......@@ -22,25 +23,37 @@ public class SplashActivityViewModel extends ViewModel {
INITIALIZING,
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 IProjectRepository projectRepository;
private AppExecutors appExecutors;
private MutableLiveData<InitialState> initialState = new MutableLiveData<>();
private MutableLiveData<InitialState> blogCategoryInitialState = new MutableLiveData<>();
private MutableLiveData<InitialState> projectCategoryInitialState = new MutableLiveData<>();
private MutableLiveData<InitialStates> mInitialStates = new MutableLiveData<>();
@Inject
public SplashActivityViewModel(IBlogRepository blogRepository, IProjectRepository projectRepository, AppExecutors appExecutors) {
this.blogRepository = blogRepository;
this.projectRepository = projectRepository;
this.appExecutors = appExecutors;
initialState.setValue(InitialState.INITIALIZING);
blogCategoryInitialState.setValue(InitialState.INITIALIZING);
projectCategoryInitialState.setValue(InitialState.INITIALIZING);
mInitialStates.setValue(new InitialStates());
}
public LiveData<InitialState> getInitialState() {
return initialState;
public LiveData<InitialStates> getInitialStates() {
return mInitialStates;
}
/**
......@@ -57,10 +70,11 @@ public class SplashActivityViewModel extends ViewModel {
@Override
public void run() {
blogRepository.saveCategories(listResult.getData());
blogCategoryInitialState.postValue(InitialState.COMPLETE);
if (projectCategoryInitialState.getValue() == InitialState.COMPLETE) {
initialState.postValue(InitialState.COMPLETE);
}
mInitialStates
.getValue()
.setBlogCategoryInitialState(InitialState.COMPLETE);
mInitialStates.postValue(mInitialStates.getValue());
}
});
}
......@@ -75,10 +89,10 @@ public class SplashActivityViewModel extends ViewModel {
@Override
public void run() {
projectRepository.saveCategories(listResult.getData());
projectCategoryInitialState.postValue(InitialState.COMPLETE);
if (blogCategoryInitialState.getValue() == InitialState.COMPLETE) {
initialState.postValue(InitialState.COMPLETE);
}
mInitialStates
.getValue()
.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