AppTaskHandler.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.atmob.rewardtask.utils;
  2. import android.util.Log;
  3. import com.atmob.rewardtask.bean.AppTaskControlResponse;
  4. import com.atmob.rewardtask.network.BaseHttpObserver;
  5. import com.atmob.rewardtask.network.NetworkClient;
  6. import atmob.io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
  7. import atmob.io.reactivex.rxjava3.disposables.CompositeDisposable;
  8. import atmob.io.reactivex.rxjava3.disposables.Disposable;
  9. import atmob.io.reactivex.rxjava3.schedulers.Schedulers;
  10. import atmob.request.CommonBaseRequest;
  11. /**
  12. * 提供一些关于积分墙的静态方法
  13. */
  14. public class AppTaskHandler {
  15. private static final String TAG = AppTaskHandler.class.getSimpleName();
  16. /**
  17. * 异步查询是否有积分墙任务
  18. *
  19. * @param onTaskResultListener 查询结果的回调
  20. * @return 防止出现内存泄漏, 外部自行管理disposable, 这里偷懒了为了使用封装的 {@link BaseHttpObserver}, 应该返回Disposable最优 - -
  21. */
  22. public static CompositeDisposable hasTask(OnTaskResultListener onTaskResultListener) {
  23. CompositeDisposable compositeDisposable = new CompositeDisposable();
  24. if (onTaskResultListener == null) {
  25. return compositeDisposable;
  26. }
  27. NetworkClient.api().appTaskControlInfo(new CommonBaseRequest())
  28. .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
  29. .subscribe(new BaseHttpObserver<AppTaskControlResponse>() {
  30. @Override
  31. public void onGotDisposable(Disposable disposable) {
  32. compositeDisposable.add(disposable);
  33. }
  34. @Override
  35. public void onSuccess(AppTaskControlResponse data) {
  36. if (data == null) {
  37. onTaskResultListener.onResult(false);
  38. return;
  39. }
  40. AppTaskControlResponse.Info pp = data.getPp();
  41. onTaskResultListener.onResult(pp.isPop());
  42. }
  43. @Override
  44. public void onFailed(int code, String msg) {
  45. Log.e(TAG, "onFailed: appTaskControlInfo api failed, code ==> " + code + ", msg ==> " + msg);
  46. }
  47. });
  48. return compositeDisposable;
  49. }
  50. public interface OnTaskResultListener {
  51. void onResult(boolean hasTask);
  52. }
  53. }