ChangeMenuToPluginListener.java

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

import edu.jiangxin.apktoolbox.swing.extend.plugin.ChangeMenuPreparePluginController;
import edu.jiangxin.apktoolbox.swing.extend.plugin.IPlugin;
import edu.jiangxin.apktoolbox.swing.extend.plugin.IPreparePluginCallback;
import edu.jiangxin.apktoolbox.utils.Utils;

import java.io.File;

public abstract class ChangeMenuToPluginListener implements IPlugin, ChangeMenuListener {

    @Override
    public boolean isNeedPreChangeMenu() {
        return true;
    }

    @Override
    public void onPreChangeMenu(IPreChangeMenuCallBack callBack) {
        preparePlugin(new ChangeMenuPreparePluginController(getPluginFilename(), isPluginNeedUnzip(), callBack));
    }

    @Override
    public void onChangeMenu() {
        String cmd = getPluginStartupCmd();
        Utils.unBlockedExecutor(cmd);
    }

    @Override
    public void preparePlugin(IPreparePluginCallback callBack) {
        callBack.onPrepareStarted();
    }

    @Override
    public boolean isPluginNeedUnzip() {
        return false;
    }

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