• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jiangxincode / ApkToolBoxGUI / #1109

26 Jul 2025 06:34AM UTC coverage: 3.085%. Remained the same
#1109

push

jiangxincode
fix #540: bugfix: duplicated unzip when use reverse engineer tools

0 of 4 new or added lines in 2 files covered. (0.0%)

236 of 7651 relevant lines covered (3.08%)

0.03 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/edu/jiangxin/apktoolbox/swing/extend/plugin/PluginUtils.java
1
package edu.jiangxin.apktoolbox.swing.extend.plugin;
2

3
import edu.jiangxin.apktoolbox.swing.extend.plugin.runnable.DownloadRunnable;
4
import edu.jiangxin.apktoolbox.swing.extend.plugin.runnable.UnzipRunnable;
5
import edu.jiangxin.apktoolbox.utils.Utils;
6
import org.apache.logging.log4j.LogManager;
7
import org.apache.logging.log4j.Logger;
8

9
import java.io.File;
10
import java.net.MalformedURLException;
11
import java.net.URL;
12
import java.util.concurrent.ExecutorService;
13
import java.util.concurrent.Executors;
14

15
public class PluginUtils {
16
    private static final Logger logger = LogManager.getLogger(PluginUtils.class.getSimpleName());
×
17

18
    private static final String URL_PREFIX = "https://gitee.com/jiangxinnju/apk-tool-box-gui-plugins/releases/download/";
19

20
    private static final String DOWNLOAD_VERSION = "v1.0.6";
21

22
    private PluginUtils() {
23
        //do nothing
24
    }
25

26
    public static void checkPlugin(String pluginFilename, boolean isPluginNeedUnzip, IPreparePluginCallback callBack) {
27
        File pluginFile = new File(Utils.getPluginDirPath(), pluginFilename);
×
28
        File pluginDir = new File(Utils.getPluginDirPath(), pluginFilename.substring(0, pluginFilename.lastIndexOf(".")));
×
NEW
29
        if (pluginFile.exists() && !isPluginNeedUnzip) {
×
NEW
30
            callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_SUCCESS);
×
NEW
31
        } else if (pluginFile.exists() && pluginDir.exists()) {
×
32
            callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_SUCCESS);
×
33
        } else if (pluginFile.exists() && !pluginDir.exists()) {
×
34
            callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_ZIP_EXIST);
×
35
        } else {
36
            callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_ZIP_NOT_EXIST);
×
37
        }
38
    }
×
39

40
    public static void downloadPlugin(String pluginFilename, IPreparePluginCallback callBack) {
41
        String downloadUrlStr = URL_PREFIX + DOWNLOAD_VERSION + "/" + pluginFilename;
×
42
        URL url;
43
        try {
44
            url = new URL(downloadUrlStr);
×
45
        } catch (MalformedURLException e) {
×
46
            logger.error("MalformedURLException: {}", e.getMessage());
×
47
            return;
×
48
        }
×
49
        File pluginDir = new File(Utils.getPluginDirPath());
×
50

51
        ExecutorService executorService = Executors.newSingleThreadExecutor();
×
52
        DownloadRunnable downloadRunnable = new DownloadRunnable(url, pluginDir, callBack);
×
53
        executorService.submit(downloadRunnable);
×
54
    }
×
55

56

57
    public static void unzipPlugin(String pluginFilename, IPreparePluginCallback callback) {
58
        File pluginFile = new File(Utils.getPluginDirPath(), pluginFilename);
×
59

60
        ExecutorService executorService = Executors.newSingleThreadExecutor();
×
61
        UnzipRunnable unzipRunnable = new UnzipRunnable(pluginFile, callback);
×
62
        executorService.submit(unzipRunnable);
×
63
    }
×
64
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc