View Javadoc
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.URI;
12  import java.net.URL;
13  import java.util.concurrent.ExecutorService;
14  import java.util.concurrent.Executors;
15  
16  public class PluginUtils {
17      private static final Logger logger = LogManager.getLogger(PluginUtils.class.getSimpleName());
18  
19      private static final String URL_PREFIX = "http://124.222.145.48/download/ApkToolBoxGUI/";
20  
21      private static final String DOWNLOAD_VERSION = "v1.0.6";
22  
23      private PluginUtils() {
24          //do nothing
25      }
26  
27      public static void checkPlugin(String pluginFilename, boolean isPluginNeedUnzip, IPreparePluginCallback callBack) {
28          File pluginFile = new File(Utils.getPluginDirPath(), pluginFilename);
29          File pluginDir = new File(Utils.getPluginDirPath(), pluginFilename.substring(0, pluginFilename.lastIndexOf(".")));
30          if (pluginFile.exists() && !isPluginNeedUnzip) {
31              callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_SUCCESS);
32          } else if (pluginFile.exists() && pluginDir.exists()) {
33              callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_SUCCESS);
34          } else if (pluginFile.exists() && !pluginDir.exists()) {
35              callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_ZIP_EXIST);
36          } else {
37              callBack.onCheckFinished(ChangeMenuPreparePluginController.RESULT_CHECK_ZIP_NOT_EXIST);
38          }
39      }
40  
41      public static void downloadPlugin(String pluginFilename, IPreparePluginCallback callBack) {
42          String downloadUrlStr = URL_PREFIX + DOWNLOAD_VERSION + "/" + pluginFilename;
43          URL url;
44          try {
45              url = URI.create(downloadUrlStr).toURL();
46          } catch (MalformedURLException e) {
47              logger.error("MalformedURLException: {}", e.getMessage());
48              return;
49          }
50          File pluginDir = new File(Utils.getPluginDirPath());
51  
52          ExecutorService executorService = Executors.newSingleThreadExecutor();
53          DownloadRunnable downloadRunnable = new DownloadRunnable(url, pluginDir, callBack);
54          executorService.submit(downloadRunnable);
55      }
56  
57  
58      public static void unzipPlugin(String pluginFilename, boolean isPluginNeedUnzipToSeparateDir, IPreparePluginCallback callback) {
59          File pluginFile = new File(Utils.getPluginDirPath(), pluginFilename);
60  
61          ExecutorService executorService = Executors.newSingleThreadExecutor();
62          UnzipRunnable unzipRunnable = new UnzipRunnable(pluginFile, isPluginNeedUnzipToSeparateDir, callback);
63          executorService.submit(unzipRunnable);
64      }
65  }