第5次提交 清空贷款
This commit is contained in:
130
telebol/src/main/java/com/dskj/cashly/api/BaseObserver.java
Normal file
130
telebol/src/main/java/com/dskj/cashly/api/BaseObserver.java
Normal file
@@ -0,0 +1,130 @@
|
||||
package com.dskj.cashly.api;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
import com.dskj.cashly.InitApp;
|
||||
import com.dskj.cashly.bean.BankBean;
|
||||
import com.dskj.cashly.ui.activity.LoginActivity;
|
||||
import com.google.gson.JsonParseException;
|
||||
|
||||
import org.json.JSONException;
|
||||
|
||||
import java.io.InterruptedIOException;
|
||||
import java.net.ConnectException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.text.ParseException;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.observers.DisposableObserver;
|
||||
import retrofit2.HttpException;
|
||||
|
||||
public abstract class BaseObserver<T> extends DisposableObserver<T> {
|
||||
/**
|
||||
* 解析数据失败
|
||||
*/
|
||||
public static final int PARSE_ERROR = 1001;
|
||||
/**
|
||||
* 网络问题
|
||||
*/
|
||||
public static final int BAD_NETWORK = 1002;
|
||||
/**
|
||||
* 连接错误
|
||||
*/
|
||||
public static final int CONNECT_ERROR = 1003;
|
||||
/**
|
||||
* 连接超时
|
||||
*/
|
||||
public static final int CONNECT_TIMEOUT = 1004;
|
||||
|
||||
@Override
|
||||
public void onNext(T o) {
|
||||
try {
|
||||
Result model = (Result) o;
|
||||
|
||||
if (model.code == 1) {
|
||||
onSuccess(o);
|
||||
} else {
|
||||
onError(model.code,model.msg);
|
||||
if(model.code == -996){
|
||||
InitApp.setToken("");
|
||||
InitApp.setUserToken("");
|
||||
reStart();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
onError(407,e.toString());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*** 重新启动应用*/
|
||||
public void reStart(){
|
||||
Intent launch= InitApp.getAppContext().getPackageManager()
|
||||
.getLaunchIntentForPackage(InitApp.getAppContext()
|
||||
.getPackageName());
|
||||
launch.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
InitApp.getAppContext().startActivity(launch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (e instanceof HttpException) {
|
||||
// HTTP错误
|
||||
onException(BAD_NETWORK);
|
||||
} else if (e instanceof ConnectException
|
||||
|| e instanceof UnknownHostException) {
|
||||
// 连接错误
|
||||
onException(CONNECT_ERROR);
|
||||
} else if (e instanceof InterruptedIOException) {
|
||||
// 连接超时
|
||||
onException(CONNECT_TIMEOUT);
|
||||
} else if (e instanceof JsonParseException
|
||||
|| e instanceof JSONException
|
||||
|| e instanceof ParseException) {
|
||||
// 解析错误
|
||||
|
||||
onException(PARSE_ERROR);
|
||||
} else {
|
||||
if (e != null) {
|
||||
onError(409,e.toString());
|
||||
} else {
|
||||
onError(407,"未知錯誤");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void onException(int unknownError) {
|
||||
switch (unknownError) {
|
||||
case CONNECT_ERROR:
|
||||
onError(CONNECT_ERROR,"連接錯誤");
|
||||
break;
|
||||
|
||||
case CONNECT_TIMEOUT:
|
||||
onError(CONNECT_TIMEOUT,"連接超時");
|
||||
break;
|
||||
|
||||
case BAD_NETWORK:
|
||||
onError(BAD_NETWORK,"網絡問題");
|
||||
break;
|
||||
|
||||
case PARSE_ERROR:
|
||||
onError(PARSE_ERROR,"數據解析异常");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
|
||||
public abstract void onSuccess(T o);
|
||||
|
||||
public abstract void onError(int code,String msg);
|
||||
}
|
||||
Reference in New Issue
Block a user