57779d8c13502b11faae9934af99c4f8191b5f9e.svn-base 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package eVVM.apk.common;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.text.TextUtils;
  6. import com.allen.library.base.BaseObserver;
  7. import com.allen.library.bean.BaseData;
  8. import com.allen.library.observer.DataObserver;
  9. import com.allen.library.utils.ToastUtils;
  10. import eVVM.apk.app.MyApplication;
  11. import eVVM.apk.helper.ActivityStackManager;
  12. import eVVM.apk.helper.SPUtils;
  13. import eVVM.apk.ui.login.LoginActivity;
  14. import io.reactivex.disposables.Disposable;
  15. /**
  16. * Created by Android Studio.
  17. * User: zbb
  18. * Date: 2019/6/10
  19. * Describe: MyDataObsever
  20. */
  21. public abstract class MyDataObsever<T> extends BaseObserver<T> {
  22. /**
  23. * 失败回调
  24. *
  25. * @param errorMsg
  26. */
  27. protected abstract void onError(String errorMsg);
  28. /**
  29. * 成功回调
  30. *
  31. * @param t
  32. */
  33. protected abstract void onSuccess(T t);
  34. @Override
  35. public void doOnSubscribe(Disposable d) {
  36. }
  37. @Override
  38. public void doOnError(String errorMsg) {
  39. if (!isHideToast() && !TextUtils.isEmpty(errorMsg)) {
  40. ToastUtils.showToast(errorMsg);
  41. }
  42. onError(errorMsg);
  43. }
  44. @Override
  45. public void doOnNext(T t) {
  46. BaseDataBean baseDataBean = (BaseDataBean) t;
  47. if (baseDataBean.getCode() == 102) { // 登录过期处理
  48. Activity topActivity = ActivityStackManager.getInstance().getTopActivity();
  49. Intent in = new Intent(topActivity, LoginActivity.class);
  50. topActivity.startActivity(in);
  51. SPUtils.logout();
  52. // 进行内存优化,销毁掉所有的界面
  53. ActivityStackManager.getInstance().finishAllActivities(LoginActivity.class);
  54. com.hjq.toast.ToastUtils.show("登录已过期,请重新登录");
  55. } else {
  56. onSuccess(t);
  57. }
  58. }
  59. @Override
  60. public void doOnCompleted() {
  61. }
  62. }
  63. /*case 500:
  64. Context appContext = MyApplication.getAppContext();
  65. Intent in = new Intent(appContext,LoginActivity.class);
  66. appContext.startActivity(in);
  67. SPUtils.clear();
  68. // 进行内存优化,销毁掉所有的界面
  69. ActivityStackManager.getInstance().finishAllActivities(LoginActivity.class);
  70. com.hjq.toast.ToastUtils.show("登录已过期,请重新登录");
  71. break;*/