From 8aa3165449dd2757e016bdc43cfd5d111cd4c7a6 Mon Sep 17 00:00:00 2001 From: 张钢 <floatgang@163.com> Date: 星期四, 12 九月 2024 14:54:06 +0800 Subject: [PATCH] 修改了家庭资产的显示问题 --- app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java | 146 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 146 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java index 028002a..a359b70 100644 --- a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java +++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java @@ -1,11 +1,35 @@ package com.application.zhangshi_app_android.ui.personal_center; +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.manager.UserManager; +import com.android.app_base.utils.RxUtils; +import com.android.app_base.utils.rxbus.MessageEvent; +import com.android.app_base.utils.rxbus.RxBus; +import com.application.zhangshi_app_android.bean.BannerBean; +import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean; +import com.application.zhangshi_app_android.bean.UploadFileResponseBean; import com.application.zhangshi_app_android.data.DataRepository; + +import java.io.File; + +import io.reactivex.ObservableSource; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; +import io.reactivex.functions.Action; +import io.reactivex.functions.Consumer; +import io.reactivex.functions.Function; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; /** * @author Ljj @@ -13,6 +37,7 @@ * @desc 涓汉涓績 Fragment鐨� ViewModel */ public class PersonalCenterFragmentViewModel extends BaseViewModel<DataRepository> { + private MutableLiveData<GrowthExperienceInformationBean> infoLiveData;//涓汉淇℃伅 public PersonalCenterFragmentViewModel(@NonNull Application application) { super(application); } @@ -21,4 +46,125 @@ protected DataRepository initModel() { return DataRepository.getInstance(); } + + /** + * 鑾峰彇涓汉淇℃伅 + */ + public void getInfo(){ + model.getGrowthExperienceInformation() + .compose(RxUtils.schedulersTransformer()) + .subscribe(new Observer<ResultData<GrowthExperienceInformationBean>>() { + @Override + public void onSubscribe(Disposable d) { + addSubscribe(d); + } + + @Override + public void onNext(ResultData<GrowthExperienceInformationBean> data) { + if (data.getCode() == CODE_SUCCESS){ + getInfoLiveData().postValue(data.getData()); + GrowthExperienceInformationBean informationBean = data.getData(); + if(informationBean != null){ + UserManager.getInstance().setUserName(informationBean.getNickName()); + UserManager.getInstance().setUserAvatar(informationBean.getImg()); + RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_UPDATE_USER_INFO,informationBean)); + } + }else { + messageLiveData.postValue(data.getMsg()); + } + } + + + @Override + public void onError(Throwable e) { + messageLiveData.postValue(e.getMessage()); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 淇敼涓汉淇℃伅锛堝ご鍍忥級 + */ + public void updateInfo(String realPath) { + File file = new File(realPath); + RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); + MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody); + model.uploadFile(body) + .flatMap(new Function<ResultData<UploadFileResponseBean>, ObservableSource<ResultData<String>>>() { + @Override + public ObservableSource<ResultData<String>> apply(ResultData<UploadFileResponseBean> resultData) throws Exception { + GrowthExperienceInformationBean bean = getInfoLiveData().getValue(); + if (bean == null){ + bean = new GrowthExperienceInformationBean(); + } + bean.setImg(resultData.getData().getUrl()); + infoLiveData.postValue(bean); + return model.updateGrowthExperienceInformation(bean); + } + }) + .compose(RxUtils.schedulersTransformer()) + .doOnSubscribe(new Consumer<Disposable>() { + @Override + public void accept(Disposable disposable) throws Exception { + changeStateView(StateViewEnum.DIALOG_LOADING); + } + }) + .doFinally(new Action() { + @Override + public void run() throws Exception { + changeStateView(StateViewEnum.DIALOG_DISMISS); + } + }) + .subscribe(new Observer<ResultData<String>>() { + @Override + public void onSubscribe(Disposable d) { + addSubscribe(d); + } + + @Override + public void onNext(ResultData<String> data) { + if (data.getCode() == CODE_SUCCESS){ + messageLiveData.postValue("澶村儚宸蹭笂浼�"); + GrowthExperienceInformationBean informationBean = getInfoLiveData().getValue(); + if(informationBean != null){ + UserManager.getInstance().setUserName(informationBean.getNickName()); + UserManager.getInstance().setUserAvatar(informationBean.getUrl()); + RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_UPDATE_USER_INFO,informationBean)); + } + }else { + messageLiveData.postValue(data.getMsg()); + } + } + + @Override + public void onError(Throwable e) { + messageLiveData.postValue(e.getMessage()); + } + + @Override + public void onComplete() { + + } + }); + } + + + public MutableLiveData<GrowthExperienceInformationBean> getInfoLiveData() { + if (infoLiveData == null){ + infoLiveData = new MutableLiveData<>(); + } + return infoLiveData; + } + + public void setInfoLiveData(GrowthExperienceInformationBean infoBean) { + if (infoLiveData == null){ + infoLiveData = new MutableLiveData<>(); + } + infoLiveData.setValue(infoBean); + } } -- Gitblit v1.9.1