| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package com.atmob.rewardtask.utils;
- import android.util.Log;
- import com.atmob.rewardtask.bean.AppTaskControlResponse;
- import com.atmob.rewardtask.network.BaseHttpObserver;
- import com.atmob.rewardtask.network.NetworkClient;
- import atmob.io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
- import atmob.io.reactivex.rxjava3.disposables.CompositeDisposable;
- import atmob.io.reactivex.rxjava3.disposables.Disposable;
- import atmob.io.reactivex.rxjava3.schedulers.Schedulers;
- import atmob.request.CommonBaseRequest;
- /**
- * 提供一些关于积分墙的静态方法
- */
- public class AppTaskHandler {
- private static final String TAG = AppTaskHandler.class.getSimpleName();
- /**
- * 异步查询是否有积分墙任务
- *
- * @param onTaskResultListener 查询结果的回调
- * @return 防止出现内存泄漏, 外部自行管理disposable, 这里偷懒了为了使用封装的 {@link BaseHttpObserver}, 应该返回Disposable最优 - -
- */
- public static CompositeDisposable hasTask(OnTaskResultListener onTaskResultListener) {
- CompositeDisposable compositeDisposable = new CompositeDisposable();
- if (onTaskResultListener == null) {
- return compositeDisposable;
- }
- NetworkClient.api().appTaskControlInfo(new CommonBaseRequest())
- .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
- .subscribe(new BaseHttpObserver<AppTaskControlResponse>() {
- @Override
- public void onGotDisposable(Disposable disposable) {
- compositeDisposable.add(disposable);
- }
- @Override
- public void onSuccess(AppTaskControlResponse data) {
- if (data == null) {
- onTaskResultListener.onResult(false);
- return;
- }
- AppTaskControlResponse.Info pp = data.getPp();
- onTaskResultListener.onResult(pp.isPop());
- }
- @Override
- public void onFailed(int code, String msg) {
- Log.e(TAG, "onFailed: appTaskControlInfo api failed, code ==> " + code + ", msg ==> " + msg);
- }
- });
- return compositeDisposable;
- }
- public interface OnTaskResultListener {
- void onResult(boolean hasTask);
- }
- }
|