|
|
@@ -11,6 +11,8 @@ import cn.seecoder.courselearningdemo.model.Course;
|
|
|
import cn.seecoder.courselearningdemo.model.CourseWare;
|
|
|
import cn.seecoder.courselearningdemo.model.User;
|
|
|
import cn.seecoder.courselearningdemo.network.RetrofitClient;
|
|
|
+import cn.seecoder.courselearningdemo.repository.CourseRepository;
|
|
|
+import cn.seecoder.courselearningdemo.repository.CourseWareRepository;
|
|
|
import cn.seecoder.courselearningdemo.utils.LogUtil;
|
|
|
import cn.seecoder.courselearningdemo.utils.ToastUtil;
|
|
|
import retrofit2.Call;
|
|
|
@@ -18,72 +20,38 @@ import retrofit2.Callback;
|
|
|
import retrofit2.Response;
|
|
|
|
|
|
public class CourseViewModel extends ViewModel {
|
|
|
- private final MutableLiveData<Course> courseData = new MutableLiveData<>();
|
|
|
- private final MutableLiveData<List<CourseWare>> courseWareData = new MutableLiveData<>();
|
|
|
+ private MutableLiveData<Course> courseData ;
|
|
|
+ private MutableLiveData<List<CourseWare>> courseWareData ;
|
|
|
+ private CourseRepository courseRepository;
|
|
|
+ private CourseWareRepository courseWareRepository;
|
|
|
+ private Course course;
|
|
|
|
|
|
- public void setCourse(Course course){
|
|
|
- this.courseData.setValue(course);
|
|
|
- loadCourseWareData();
|
|
|
+ public CourseViewModel(){
|
|
|
+ }
|
|
|
+ public void setCourse(Course c){
|
|
|
+ course = c;
|
|
|
+ loadCourse(course.getId());
|
|
|
}
|
|
|
-
|
|
|
public void loadCourse(Integer courseId){
|
|
|
- String uid = null;
|
|
|
- User user = UserDao.getUser();
|
|
|
- if(user!=null && user.getUid()!=null)
|
|
|
- uid = user.getUid();
|
|
|
- Call<Course> courseCall = RetrofitClient.courseService.getCourse(courseId, uid);
|
|
|
- courseCall.enqueue(new Callback<Course>() {
|
|
|
- @Override
|
|
|
- public void onResponse(Call<Course> call, Response<Course> response) {
|
|
|
-// LogUtil.i("loadCourse ", response.body().toString());
|
|
|
- if(response.body() == null)
|
|
|
- ToastUtil.showShortToast("后端数据异常...");
|
|
|
- else {
|
|
|
- courseData.setValue(response.body());
|
|
|
- loadCourseWareData();
|
|
|
- }
|
|
|
- }
|
|
|
+ courseRepository = new CourseRepository(course,courseId);
|
|
|
+ courseData = courseRepository.getCourseData();
|
|
|
+
|
|
|
+ courseWareRepository = new CourseWareRepository(course,courseId);
|
|
|
+ courseWareData = courseWareRepository.getCourseWareData();
|
|
|
|
|
|
- @Override
|
|
|
- public void onFailure(Call<Course> call, Throwable t) {
|
|
|
- LogUtil.e(courseCall, "loadCourse failure: "+t.getMessage() + " caused by: "+t.getCause());
|
|
|
- ToastUtil.showShortToast("网络错误,请稍后重试!");
|
|
|
- }
|
|
|
- });
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public LiveData<Course> getCourseData(){
|
|
|
+
|
|
|
return courseData;
|
|
|
}
|
|
|
|
|
|
public LiveData<List<CourseWare>> getCourseWareData(){
|
|
|
+
|
|
|
return courseWareData;
|
|
|
}
|
|
|
|
|
|
- private void loadCourseWareData(){
|
|
|
- Course course = courseData.getValue();
|
|
|
- String uid = null;
|
|
|
- User user = UserDao.getUser();
|
|
|
- if(user!=null && user.getUid()!=null)
|
|
|
- uid = user.getUid();
|
|
|
- if(course==null || course.getId()==null)
|
|
|
- return;
|
|
|
- Call<List<CourseWare>> courseWareCall = RetrofitClient.courseWareService.getCourseWare(course.getId(), uid);
|
|
|
- courseWareCall.enqueue(new Callback<List<CourseWare>>() {
|
|
|
- @Override
|
|
|
- public void onResponse(Call<List<CourseWare>> call, Response<List<CourseWare>> response) {
|
|
|
- if(response.body() == null)
|
|
|
- ToastUtil.showShortToast("后端数据异常...");
|
|
|
- else
|
|
|
- courseWareData.setValue(response.body());
|
|
|
- }
|
|
|
|
|
|
- @Override
|
|
|
- public void onFailure(Call<List<CourseWare>> call, Throwable t) {
|
|
|
- LogUtil.e(courseWareCall, "loadCourseWareData failure: "+t.getMessage() + " caused by: "+t.getCause());
|
|
|
- ToastUtil.showShortToast("网络错误,请稍后重试!");
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
|
|
|
}
|