package com.ydl.ydlnet.client.observer; import com.ydl.ydlnet.client.exception.ApiException; import com.ydl.ydlnet.client.interfaces.ISubscriber; import io.reactivex.Observer; import io.reactivex.annotations.NonNull; import io.reactivex.disposables.Disposable; /** * Created by haorui on 2019-09-02 . * Des: 基类BaseObserver */ public abstract class BaseObserver<T> implements Observer<T>, ISubscriber<T> { /** * 是否隐藏toast * * @return */ protected boolean isHideToast() { return false; } @Override public void onSubscribe(@NonNull Disposable d) { doOnSubscribe(d); } @Override public void onNext(@NonNull T t) { try { doOnNext(t); } catch (Exception e) { onError(e); } } @Override public void onError(@NonNull Throwable e) { String error = ApiException.handleException(e).getMessage(); setError(error); } @Override public void onComplete() { doOnCompleted(); } private void setError(String errorMsg) { doOnError(errorMsg); } }