Update BaseObserver.java

pull/5/head
px4lqzo5h 1 year ago
parent e0f3d3d12a
commit 3e0110c0d7

@ -1,5 +1,6 @@
package com.example.musicplayer.base.observer;
// 导入所需的包和类
import android.net.ParseException;
import android.os.Handler;
import android.util.Log;
@ -19,57 +20,69 @@ import retrofit2.HttpException;
import static com.example.musicplayer.app.Constant.TAG_ERROR;
/**
* <pre>
* author :
* time : 2019/07/16
* desc : RxJava
* </pre>
* RxJava
* <p>
* author :
* time : 2019/07/16
* desc :
*/
public class BaseObserver<T> extends ResourceObserver<T> {
private static final String TAG = "BaseObserver";
private boolean isShowLoadingView = true;
private boolean isShowErrorView =true;
private static final String TAG = "BaseObserver"; // 日志标签
private boolean isShowLoadingView = true; // 是否显示加载视图
private boolean isShowErrorView = true; // 是否显示错误视图
private BaseView baseView;
private BaseView baseView; // 基础视图接口用于更新UI
private BaseObserver(){}
// 私有构造函数,防止直接实例化
private BaseObserver() {}
protected BaseObserver(BaseView baseView){
this(baseView,false,false);
// 构造函数初始化BaseView
protected BaseObserver(BaseView baseView) {
this(baseView, false, false);
}
protected BaseObserver(BaseView baseView,boolean isShowLoadingView){
this(baseView,isShowLoadingView,false);
// 构造函数初始化BaseView和是否显示加载视图
protected BaseObserver(BaseView baseView, boolean isShowLoadingView) {
this(baseView, isShowLoadingView, false);
}
protected BaseObserver(BaseView baseView,boolean isShowLoadingView, boolean isShowErrorView){
// 构造函数初始化BaseView、是否显示加载视图和是否显示错误视图
protected BaseObserver(BaseView baseView, boolean isShowLoadingView, boolean isShowErrorView) {
this.baseView = baseView;
this.isShowLoadingView = isShowLoadingView;
this.isShowErrorView = isShowErrorView;
}
/**
*
*/
@Override
protected void onStart() {
if(isShowLoadingView) baseView.showLoading();
if (isShowLoadingView) baseView.showLoading();
}
/**
*
* @param t
*/
@Override
public void onNext(T t) {
new Handler().postDelayed(()->{
new Handler().postDelayed(() -> {
baseView.showNormalView();
},500);
}, 500);
}
/**
*
* @param e
*/
@Override
public void onError(Throwable e) {
new Handler().postDelayed(()->{
if(isShowErrorView) baseView.showErrorView();
},500);
new Handler().postDelayed(() -> {
if (isShowErrorView) baseView.showErrorView();
}, 500);
e.printStackTrace();
// 处理不同类型的异常
if (e instanceof UnknownHostException) {
Log.e(TAG_ERROR, "networkError" + e.getMessage());
networkError();
@ -82,50 +95,51 @@ public class BaseObserver<T> extends ResourceObserver<T> {
} else if (e instanceof JsonParseException || e instanceof JSONException || e instanceof ParseException) {
Log.e(TAG_ERROR, "解析错误:" + e.getMessage());
parseError();
}else {
} else {
Log.e(TAG_ERROR, "未知错误:" + e.getMessage());
unknown();
}
}
/**
*
*/
@Override
public void onComplete() {
}
/**
*
*
*/
protected void unknown() {
baseView.showToast(App.getContext().getString(R.string.error_unknown));
}
/**
*
*
*/
protected void parseError() {
baseView.showToast(App.getContext().getString(R.string.error_parse));
}
/**
* http
* HTTP
*/
protected void httpError() {
baseView.showToast(App.getContext().getString(R.string.error_http));
}
/**
*
*
*/
protected void timeoutError() {
baseView.showToast(App.getContext().getString(R.string.error_timeout));
}
/**
*
*
*/
protected void networkError() {
baseView.showToast(App.getContext().getString(R.string.error_network));
}
}
}
Loading…
Cancel
Save