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

jiangxincode / ApkToolBoxGUI / #1111

26 Jul 2025 06:59AM UTC coverage: 3.08% (-0.005%) from 3.085%
#1111

push

jiangxincode
fix #542: support different kinds of zip structure

0 of 21 new or added lines in 7 files covered. (0.0%)

1 existing line in 1 file now uncovered.

236 of 7663 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/ChangeMenuPreparePluginController.java
1
package edu.jiangxin.apktoolbox.swing.extend.plugin;
2

3
import edu.jiangxin.apktoolbox.swing.extend.listener.IPreChangeMenuCallBack;
4
import org.apache.logging.log4j.LogManager;
5
import org.apache.logging.log4j.Logger;
6

7
import javax.swing.*;
8

9
/**
10
 * This class is used to prepare plugin for change menu.
11
 * <p>
12
 * All operations in this class will be executed in main thread.
13
 */
14
public class ChangeMenuPreparePluginController implements IPreparePluginCallback {
15
    private static final Logger logger = LogManager.getLogger(ChangeMenuPreparePluginController.class.getSimpleName());
×
16
    private final String pluginFilename;
17
    private final boolean isPluginNeedUnzip;
18
    private final boolean isPluginNeedUnzipToSeparateDir;
19

20
    private final IPreChangeMenuCallBack callBack;
21

22
    public static final int RESULT_CHECK_SUCCESS = 0;
23

24
    public static final int RESULT_CHECK_ZIP_EXIST = 1;
25

26
    public static final int RESULT_CHECK_ZIP_NOT_EXIST = 2;
27

28
    public static final int RESULT_DOWNLOAD_SUCCESS = 0;
29

30
    public static final int RESULT_DOWNLOAD_FAILED = -1;
31

32
    public static final int RESULT_DOWNLOAD_CANCELLED = 1;
33

34
    public static final int RESULT_UNZIP_SUCCESS = 0;
35

36
    public static final int RESULT_UNZIP_FAILED = -1;
37

38
    public static final int RESULT_UNZIP_CANCELLED = 1;
39

NEW
40
    public ChangeMenuPreparePluginController(String pluginFilename, boolean isPluginNeedUnzip, boolean isPluginNeedUnzipToSeparateDir, IPreChangeMenuCallBack callBack) {
×
41
        this.pluginFilename = pluginFilename;
×
42
        this.isPluginNeedUnzip = isPluginNeedUnzip;
×
NEW
43
        this.isPluginNeedUnzipToSeparateDir = isPluginNeedUnzipToSeparateDir;
×
44
        this.callBack = callBack;
×
45
    }
×
46

47
    @Override
48
    public void onPrepareStarted() {
49
        PluginUtils.checkPlugin(pluginFilename, isPluginNeedUnzip, this);
×
50
    }
×
51

52
    @Override
53
    public void onCheckFinished(int result) {
54
        switch (result) {
×
55
            case RESULT_CHECK_SUCCESS -> onPrepareFinished();
×
NEW
56
            case RESULT_CHECK_ZIP_EXIST -> PluginUtils.unzipPlugin(pluginFilename, isPluginNeedUnzipToSeparateDir, this);
×
57
            case RESULT_CHECK_ZIP_NOT_EXIST -> {
58
                int userChoose = JOptionPane.showConfirmDialog(null, "未找到对应插件,是否下载", "提示", JOptionPane.YES_NO_OPTION);
×
59
                if (userChoose == JOptionPane.YES_OPTION) {
×
60
                    PluginUtils.downloadPlugin(pluginFilename, this);
×
61
                }
62
            }
×
63
            default -> logger.info("onCheckFinished: {}", result);
×
64
        }
65
    }
×
66

67
    @Override
68
    public void onDownloadFinished(int result) {
69
        switch (result) {
×
70
            case RESULT_DOWNLOAD_SUCCESS:
71
                if (isPluginNeedUnzip) {
×
NEW
72
                    PluginUtils.unzipPlugin(pluginFilename, isPluginNeedUnzipToSeparateDir, this);
×
73
                } else {
74
                    onPrepareFinished();
×
75
                }
76
                break;
×
77
            case RESULT_DOWNLOAD_FAILED:
78
                JOptionPane.showMessageDialog(null, "下载失败,请检查网络", "错误", JOptionPane.ERROR_MESSAGE);
×
79
                break;
×
80
            case RESULT_DOWNLOAD_CANCELLED:
81
                JOptionPane.showMessageDialog(null, "下载取消", "提示", JOptionPane.INFORMATION_MESSAGE);
×
82
                break;
×
83
            default:
84
                logger.info("onDownloadFinished: {}", result);
×
85
                break;
86
        }
87
    }
×
88

89
    @Override
90
    public void onUnzipFinished(int result) {
91
        switch (result) {
×
92
            case RESULT_UNZIP_SUCCESS -> onPrepareFinished();
×
93
            case RESULT_UNZIP_FAILED -> JOptionPane.showMessageDialog(null, "解压失败", "错误", JOptionPane.ERROR_MESSAGE);
×
94
            case RESULT_UNZIP_CANCELLED -> JOptionPane.showMessageDialog(null, "解压取消", "提示", JOptionPane.INFORMATION_MESSAGE);
×
95
            default -> logger.info("onUnzipFinished: {}", result);
×
96
        }
97
    }
×
98

99
    @Override
100
    public void onPrepareFinished() {
101
        if (callBack != null) {
×
102
            callBack.onPreChangeMenuFinished();
×
103
        }
104
    }
×
105
}
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