ProgressObserver

public abstract class ProgressObserver?implements Observer {

privateBaseActivitymBaseActivity;

private booleanisShowDialog;

publicProgressObserver(BaseActivity baseActivity) {

this(baseActivity, true);

}

publicProgressObserver(BaseActivity baseActivity, booleanisShowDialog) {

if(baseActivity ==null) {

throw newNullPointerException();

}

this.mBaseActivity= baseActivity;

this.isShowDialog= isShowDialog;

}

@Override

public voidonSubscribe(Disposable d) {

mBaseActivity.addSubscription(d);

onStart();

}

@Override

public voidonNext(Tvalue) {

onProgressNext(value);

}

/**

* --> MyGsonResponseBodyConverter中已對返回數(shù)據(jù)做初步處理

* --> zlc.season.rxjava2demo.retrofit.converter.MyGsonResponseBodyConverter#convert(okhttp3.ResponseBody)

*

*@parameThrowable

*/

@Override

public voidonError(Throwable e) {

if(einstanceofConnectException) {

ToastUtil.show(NetworkUtil.isNetworkConnected(mBaseActivity) ? R.string.net_server_connectexception: R.string.net_connectexception);

}else if(einstanceofUnknownHostException) {

ToastUtil.show(R.string.net_unknownhostexception);

}else if(einstanceofSocketException) {

ToastUtil.show(R.string.net_socketexception);

}else if(einstanceofSocketTimeoutException) {

ToastUtil.show(R.string.net_sockettimeoutexception);

}else if(einstanceofIOException) {

ToastUtil.show(R.string.server_internal_error);

}else if(einstanceofNullPointerException) {

ToastUtil.show(R.string.server_internal_error);

}else if(einstanceofHttpException) {

ToastUtil.show(R.string.server_internal_error);

}else if(einstanceofAppException) {

ToastUtil.showLong(e.getMessage());

AppException exception = (AppException) e;

switch(exception.errorCode) {

caseHttpCode.TOKEN_INVALID:

mBaseActivity.kickOut();

break;

caseHttpCode.BIND_SUCCESS:

ToastUtil.debugShow("手環(huán)綁定成功");

break;

caseHttpCode.THIRD_NO_REGISTER:

ToastUtil.debugShow("第三方登錄時未注冊");

break;

caseHttpCode.THIRD_REPEAT_REGISTER:

ToastUtil.debugShow("第三方登錄時已經(jīng)綁定");

break;

caseHttpCode.PHONE_NUMBER_REPEAT_REGISTER:

ToastUtil.show("手機號碼已注冊");

break;

caseHttpCode.NO_USER_INFO:

ToastUtil.debugShow("無此手機號的用戶信息");

break;

caseHttpCode.BRACELET_INACTIVE:

ToastUtil.debugShow("手環(huán)未激活");

break;

caseHttpCode.USER_BIND_BRACELET:

ToastUtil.debugShow("用戶已綁定手環(huán)");

break;

caseHttpCode.BRACELET_BIND:

ToastUtil.debugShow("手環(huán)已綁定");

break;

caseHttpCode.BRACELET_ACTIVE:

ToastUtil.debugShow("手環(huán)已激活");

break;

caseHttpCode.CONTACT_EXIST:

ToastUtil.show("列表已有此聯(lián)系人");

break;

caseHttpCode.USER_NO_BRACELET:

ToastUtil.show("未綁定手環(huán)");

break;

caseHttpCode.NO_HISTORICAL_DATA:

ToastUtil.show("無歷史數(shù)據(jù)");

break;

default:

break;

}

}else{

ToastUtil.showLong(e.toString());

}

onProgressError(e);

onFinish();

}

@Override

public voidonComplete() {

onFinish();

}

/**

*開始網(wǎng)絡(luò)請求.

*/

public voidonStart() {

if(isShowDialog) {

mBaseActivity.showFocusWaitDialog();

}

}

/**

*結(jié)束網(wǎng)絡(luò)請求.

*/

public voidonFinish() {

if(isShowDialog) {

mBaseActivity.hideFocusWaitDialog();

}

}

//------------------------------抽象方法實現(xiàn)-------------------------------------------------

protected abstract voidonProgressNext(Tvalue);

protected abstract voidonProgressError(Throwable e);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容