ChangeMenuToPluginListener.java

  1. package edu.jiangxin.apktoolbox.swing.extend.listener;

  2. import edu.jiangxin.apktoolbox.swing.extend.plugin.ChangeMenuPreparePluginController;
  3. import edu.jiangxin.apktoolbox.swing.extend.plugin.IPlugin;
  4. import edu.jiangxin.apktoolbox.swing.extend.plugin.IPreparePluginCallback;
  5. import edu.jiangxin.apktoolbox.utils.Utils;

  6. import java.io.File;

  7. public abstract class ChangeMenuToPluginListener implements IPlugin, ChangeMenuListener {

  8.     @Override
  9.     public boolean isNeedPreChangeMenu() {
  10.         return true;
  11.     }

  12.     @Override
  13.     public void onPreChangeMenu(IPreChangeMenuCallBack callBack) {
  14.         preparePlugin(new ChangeMenuPreparePluginController(getPluginFilename(), isPluginNeedUnzip(), callBack));
  15.     }

  16.     @Override
  17.     public void onChangeMenu() {
  18.         String cmd = getPluginStartupCmd();
  19.         Utils.unBlockedExecutor(cmd);
  20.     }

  21.     @Override
  22.     public void preparePlugin(IPreparePluginCallback callBack) {
  23.         callBack.onPrepareStarted();
  24.     }

  25.     @Override
  26.     public boolean isPluginNeedUnzip() {
  27.         return false;
  28.     }

  29.     @Override
  30.     public String getPluginStartupCmd() {
  31.         String jarPath = Utils.getPluginDirPath() + File.separator + getPluginFilename();
  32.         return "java -Duser.language=en -Dfile.encoding=UTF8 -jar " + jarPath;
  33.     }
  34. }