第一次提交

This commit is contained in:
xuhuixiang
2023-03-13 10:07:44 +08:00
parent 0378d81708
commit e5ef7288f4
267 changed files with 17967 additions and 86 deletions

View File

@@ -0,0 +1,69 @@
package com.azhon.basic.lifecycle;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModel;
import com.azhon.basic.bean.DialogBean;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
/**
* 项目名: TODO-MVVM
* 包名 com.azhon.basic.lifecycle
* 文件名: BaseViewModel
* 创建时间: 2019-03-27 on 10:44
* 描述: TODO ViewModel基类管理rxJava发出的请求ViewModel销毁同时也取消请求
*
* @author xuhuixiang
*/
public abstract class BaseViewModel extends ViewModel {
/**
* 管理RxJava请求
*/
private CompositeDisposable compositeDisposable;
/**
* 用来通知 ActivityFragment 是否显示等待Dialog
*/
protected DialogLiveData<DialogBean> showDialog = new DialogLiveData<>();
/**
* 当ViewModel层出现错误需要通知到ActivityFragment
*/
protected MutableLiveData<Object> error = new MutableLiveData<>();
/**
* 添加 rxJava 发出的请求
*/
protected void addDisposable(Disposable disposable) {
if (compositeDisposable == null || compositeDisposable.isDisposed()) {
compositeDisposable = new CompositeDisposable();
}
compositeDisposable.add(disposable);
}
public void getShowDialog(LifecycleOwner owner, Observer<DialogBean> observer) {
showDialog.observe(owner, observer);
}
public void getError(LifecycleOwner owner, Observer<Object> observer) {
error.observe(owner, observer);
}
/**
* ViewModel销毁同时也取消请求
*/
@Override
protected void onCleared() {
super.onCleared();
if (compositeDisposable != null) {
compositeDisposable.dispose();
compositeDisposable = null;
}
showDialog = null;
error = null;
}
}