| | |
| | | package com.application.zhangshi_app_android.ui.function; |
| | | |
| | | import static com.android.app_base.base.BaseConfig.CODE_SUCCESS; |
| | | |
| | | import android.app.Application; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.lifecycle.MutableLiveData; |
| | | |
| | | import com.android.app_base.base.StateViewEnum; |
| | | import com.android.app_base.base.viewmodel.BaseViewModel; |
| | | import com.android.app_base.http.ResultData; |
| | | import com.android.app_base.utils.RxUtils; |
| | | import com.application.zhangshi_app_android.bean.BannerBean; |
| | | import com.application.zhangshi_app_android.bean.HomeDevicesBean; |
| | | import com.application.zhangshi_app_android.bean.HomeDevicesRequestBean; |
| | | import com.application.zhangshi_app_android.bean.PageResponseBean; |
| | | import com.application.zhangshi_app_android.data.DataRepository; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import io.reactivex.Observer; |
| | | import io.reactivex.disposables.Disposable; |
| | | |
| | | /** |
| | | * @author Ljj |
| | |
| | | * @desc 功能 Fragment的 ViewModel |
| | | */ |
| | | public class FunctionFragmentViewModel extends BaseViewModel<DataRepository> { |
| | | |
| | | private final MutableLiveData<List<BannerBean>> bannerListLiveData = new MutableLiveData<>(); |
| | | private final MutableLiveData<List<BannerBean>> videoListLiveData = new MutableLiveData<>(); |
| | | private final MutableLiveData<List<BannerBean>> imageListLiveData = new MutableLiveData<>(); |
| | | public FunctionFragmentViewModel(@NonNull Application application) { |
| | | super(application); |
| | | } |
| | |
| | | protected DataRepository initModel() { |
| | | return DataRepository.getInstance(); |
| | | } |
| | | |
| | | /** |
| | | * 获取banner 轮播图数据 |
| | | */ |
| | | public void getBannerData() { |
| | | model.getBannerData() |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new Observer<ResultData<List<BannerBean>>>() { |
| | | @Override |
| | | public void onSubscribe(Disposable d) { |
| | | addSubscribe(d); |
| | | } |
| | | |
| | | @Override |
| | | public void onNext(ResultData<List<BannerBean>> data) { |
| | | if (data.getCode() == CODE_SUCCESS){ |
| | | if (data.getData().isEmpty()){ |
| | | changeStateView(StateViewEnum.DATA_NULL); |
| | | }else { |
| | | changeStateView(StateViewEnum.HIDE); |
| | | bannerListLiveData.postValue(data.getData()); |
| | | List<BannerBean> imageList = new ArrayList<>(); |
| | | List<BannerBean> videoList = new ArrayList<>(); |
| | | for (BannerBean bannerBean : data.getData()) { |
| | | if (bannerBean.getFlag() == 0){ |
| | | //图片 |
| | | imageList.add(bannerBean); |
| | | }else if (bannerBean.getFlag() == 1){ |
| | | //视频 |
| | | videoList.add(bannerBean); |
| | | } |
| | | } |
| | | imageListLiveData.postValue(imageList); |
| | | videoListLiveData.postValue(videoList); |
| | | } |
| | | }else { |
| | | messageLiveData.postValue(data.getMsg()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(Throwable e) { |
| | | messageLiveData.postValue(e.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public MutableLiveData<List<BannerBean>> getBannerListLiveData() { |
| | | return bannerListLiveData; |
| | | } |
| | | |
| | | public void setBannerListLiveData(List<BannerBean> bannerListLiveData) { |
| | | this.bannerListLiveData.postValue(bannerListLiveData); |
| | | } |
| | | |
| | | public MutableLiveData<List<BannerBean>> getVideoListLiveData() { |
| | | return videoListLiveData; |
| | | } |
| | | |
| | | public void setVideoListLiveData(List<BannerBean> videoListLiveData) { |
| | | this.videoListLiveData.postValue(videoListLiveData); |
| | | } |
| | | |
| | | public MutableLiveData<List<BannerBean>> getImageListLiveData() { |
| | | return imageListLiveData; |
| | | } |
| | | |
| | | public void setImageListLiveData(List<BannerBean> imageListLiveData) { |
| | | this.imageListLiveData.postValue(imageListLiveData); |
| | | } |
| | | } |