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 * @date 2023.03.15. 20:14 * @desc 功能 Fragment的 ViewModel */ public class FunctionFragmentViewModel extends BaseViewModel { private final MutableLiveData> bannerListLiveData = new MutableLiveData<>(); private final MutableLiveData> videoListLiveData = new MutableLiveData<>(); private final MutableLiveData> imageListLiveData = new MutableLiveData<>(); public FunctionFragmentViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } /** * 获取banner 轮播图数据 */ public void getBannerData() { model.getBannerData() .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); bannerListLiveData.postValue(data.getData()); List imageList = new ArrayList<>(); List 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> getBannerListLiveData() { return bannerListLiveData; } public void setBannerListLiveData(List bannerListLiveData) { this.bannerListLiveData.postValue(bannerListLiveData); } public MutableLiveData> getVideoListLiveData() { return videoListLiveData; } public void setVideoListLiveData(List videoListLiveData) { this.videoListLiveData.postValue(videoListLiveData); } public MutableLiveData> getImageListLiveData() { return imageListLiveData; } public void setImageListLiveData(List imageListLiveData) { this.imageListLiveData.postValue(imageListLiveData); } }