Parcourir la source

添加下载状态回调3

zengjiebin il y a 7 ans
Parent
commit
307e2a81b0

+ 7 - 1
app/src/main/java/com/sheep/gamegroup/util/DownloadUtil.java

@@ -4,6 +4,7 @@ import android.net.Uri;
 import android.os.Build;
 import android.text.TextUtils;
 
+import com.kfzs.duanduan.utils.ApkUtils;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.liulishuo.okdownload.DownloadTask;
 import com.liulishuo.okdownload.OkDownload;
@@ -504,7 +505,12 @@ public class DownloadUtil {
         if(downLoadInfo.getMApkPath() == null){
             return false;
         }
+        String packageName = ApkUtils.getUnInstallApkPackageName(SheepApp.getInstance(), downLoadInfo.getMApkPath());
+        if(!TextUtils.isEmpty(packageName)){
+            return true;
+        }
         File file = new File(downLoadInfo.getMApkPath());
-        return file.exists() && downLoadInfo.getMDownloadedSize() != null && downLoadInfo.getMDownloadedSize() == (double) file.getTotalSpace();
+        double totalSpace = (double) file.getTotalSpace();
+        return file.exists() && downLoadInfo.getMDownloadedSize() != null && downLoadInfo.getMDownloadedSize() == totalSpace;
     }
 }

+ 18 - 0
app/src/main/java/com/sheep/gamegroup/util/js/BaseActWeb.java

@@ -4,6 +4,7 @@ import android.text.TextUtils;
 import android.view.View;
 import android.webkit.WebView;
 
+import com.kfzs.duanduan.utils.ApkUtils;
 import com.liulishuo.okdownload.DownloadTask;
 import com.liulishuo.okdownload.OkDownload;
 import com.liulishuo.okdownload.StatusUtil;
@@ -24,6 +25,7 @@ import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.tencent.mm.opensdk.constants.ConstantsAPI;
@@ -228,6 +230,7 @@ public abstract class BaseActWeb extends BaseUMActivity {
                 downloadUtil = new DownloadUtil();
             TaskDetailAct.setBtnStr(taskEty, downloadUtil, object -> runOnUiThread(() -> {
                 if (object instanceof Integer) {
+                    type = (int) object;
                     loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", (int) object));
                 } else if (object instanceof String) {
                     loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", (String) object));
@@ -237,6 +240,21 @@ public abstract class BaseActWeb extends BaseUMActivity {
             }));
         }
     }
+    private int type = DownloadUtil.STATUS_INIT;
+    public void onClickDownloadBtn(){
+        switch (type){
+            case DownloadUtil.STATUS_INIT://开始下载
+            default:
+                downloadApk();
+                break;
+            case DownloadUtil.STATUS_FINISH:
+                ApkUtils.installApk(SheepApp.getInstance(), PackageUtil.isExistsFile(taskEty.getPackage_names(), taskEty.getDownload_link()));
+                break;
+            case DownloadUtil.STATUS_INSTALLED:
+                PackageUtil.startApp(SheepApp.getInstance(), taskEty.getPackage_names());
+                break;
+        }
+    }
     public void downloadApk(){
         if (taskEty != null) {
             if (downloadUtil == null)

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -441,6 +441,6 @@ public class KFZSJs {
     }
     @JavascriptInterface
     public void downloadApk() {
-        new Thread(() -> activity.downloadApk()).start();
+        new Thread(() -> activity.onClickDownloadBtn()).start();
     }
 }