詹子聪 5 лет назад
Родитель
Сommit
5012d96303

+ 39 - 0
app/src/main/java/com/miekir/eden/ui/home/goods/detail/AdManager.java

@@ -0,0 +1,39 @@
+package com.miekir.eden.ui.home.goods.detail;
+
+import com.miekir.eden.ui.home.goods.MagnetBean;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/9/15 17:14
+ * Description: 计时器
+ */
+public class AdManager {
+    private AdManager() {}
+
+    private static final AdManager INSTANCE = new AdManager();
+
+    public static AdManager getInstance() {
+        return INSTANCE;
+    }
+
+    private long startTimeMillis;
+    private MagnetBean magnetBean;
+
+    public long getStartTimeMillis() {
+        return startTimeMillis;
+    }
+
+    public void setStartTimeMillis(long startTimeMillis) {
+        this.startTimeMillis = startTimeMillis;
+    }
+
+    public MagnetBean getMagnetBean() {
+        return magnetBean;
+    }
+
+    public void setMagnetBean(MagnetBean magnetBean) {
+        this.magnetBean = magnetBean;
+    }
+}

+ 23 - 0
app/src/main/java/com/miekir/eden/ui/home/goods/detail/GoodsDetailActivity.java

@@ -213,4 +213,27 @@ public class GoodsDetailActivity extends BaseBeiActivity implements View.OnClick
         ToastTool.showShort(StringTool.getString(R.string.goods_torrent_copied));
         SystemTool.copyText(this, String.format(URL_TORRENT_FORMAT, BuildConfig.BASE_URL, s, f, u));
     }
+
+    private static final long TIME_MIN = 25000L;
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        if (!mMagnetAdapter.isWaitingAd()) {
+            return;
+        }
+
+        // 小于25秒的都是没有按要求完成任务的
+        long durationMillis = System.currentTimeMillis() - AdManager.getInstance().getStartTimeMillis();
+        if (durationMillis < TIME_MIN) {
+            ToastTool.showShort(StringTool.getString(R.string.ad_title));
+            return;
+        }
+
+        mMagnetAdapter.setWaitingAd(false);
+        // 是广告模式,看完广告之后,自动下载
+        showLoading();
+        seePresenter.getTorrentSecret(AdManager.getInstance().getMagnetBean());
+        AdManager.getInstance().setMagnetBean(null);
+    }
 }

+ 12 - 5
app/src/main/java/com/miekir/eden/ui/home/goods/detail/MagnetAdapter.java

@@ -34,6 +34,7 @@ import static android.app.Activity.RESULT_OK;
  */
 public class MagnetAdapter extends BaseQuickAdapter<MagnetBean, BaseViewHolder> {
     private SeePresenter seePresenter;
+    private boolean isWaitingAd;
 
     private Context mContext;
     public MagnetAdapter(Context context, @Nullable List<MagnetBean> data) {
@@ -83,12 +84,10 @@ public class MagnetAdapter extends BaseQuickAdapter<MagnetBean, BaseViewHolder>
                                 return;
                             }
 
+                            setWaitingAd(true);
+                            AdManager.getInstance().setMagnetBean(magnetBean);
+                            AdManager.getInstance().setStartTimeMillis(System.currentTimeMillis());
                             ActivityTool.openUrl((Activity) mContext, adLink);
-                            // 是广告模式,看完广告之后,自动下载
-                            if (mContext instanceof BaseBeiActivity) {
-                                ((BaseBeiActivity) mContext).showLoading();
-                            }
-                            seePresenter.getTorrentSecret(magnetBean);
                         }).create();
                 alertDialog.show();
             } else {
@@ -114,4 +113,12 @@ public class MagnetAdapter extends BaseQuickAdapter<MagnetBean, BaseViewHolder>
     public void setSeePresenter(SeePresenter seePresenter) {
         this.seePresenter = seePresenter;
     }
+
+    public boolean isWaitingAd() {
+        return isWaitingAd;
+    }
+
+    public void setWaitingAd(boolean waitingAd) {
+        isWaitingAd = waitingAd;
+    }
 }