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.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<>(); 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()); } }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); } }