Przeglądaj źródła

添加 点击下载按钮时, 获取游戏id的容错率

zengjiebin 7 lat temu
rodzic
commit
972d606b1e

+ 32 - 17
app/src/main/java/com/sheep/gamegroup/util/DownloadUtil.java

@@ -1,8 +1,10 @@
 package com.sheep.gamegroup.util;
 
+import android.net.Uri;
 import android.os.Build;
 import android.text.TextUtils;
 
+import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.liulishuo.okdownload.DownloadTask;
 import com.liulishuo.okdownload.OkDownload;
 import com.sheep.gamegroup.greendao.DDProviderHelper;
@@ -421,23 +423,36 @@ public class DownloadUtil {
         Jump2View.getInstance().startDownloadService(SheepApp.getInstance(), downLoadInfo);
 
         //3.4.9添加 记录下载游戏,可通过我的游戏列表中获取游戏
-        if(downLoadInfo.getMGameID() != null && downLoadInfo.getMGameID() > 0)
-            SheepApp.getInstance().getNetComponent().getApiService().recordAppDownloads(downLoadInfo.getMGameID())
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        if(TestUtil.isDev())
-                            G.showToast(baseMessage);
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        if(TestUtil.isDev())
-                            G.showToast(baseMessage);
-                    }
-                });
+        int gameId = getGameId(downLoadInfo);
+        if(gameId < 1){//不合法的gameId
+            return;
+        }
+        SheepApp.getInstance().getNetComponent().getApiService().recordAppDownloads(downLoadInfo.getMGameID())
+            .subscribeOn(Schedulers.io())
+            .observeOn(AndroidSchedulers.mainThread())
+            .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                @Override
+                public void onNext(BaseMessage baseMessage) {
+                    if(TestUtil.isDev())
+                        G.showToast(baseMessage);
+                }
+
+                @Override
+                public void onError(BaseMessage baseMessage) {
+                    if(TestUtil.isDev())
+                        G.showToast(baseMessage);
+                }
+            });
+    }
+
+    public int getGameId(DownLoadInfo downLoadInfo) {
+        String url;
+        if(downLoadInfo.getMGameID() != null && downLoadInfo.getMGameID() > 0){
+            return downLoadInfo.getMGameID();
+        } else if(!TextUtils.isEmpty(url = downLoadInfo.getMDownloadUrl())){
+            return NumberFormatUtils.parseInteger(StringUtils.getQueryParameter(url, "id"));
+        }
+        return 0;
     }
 
     /**