diff --git a/pom.xml b/pom.xml index ac0a91d39..e449ae735 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.tonikelope MegaBasterd - 6.1 + 6.2 jar diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java index 7b4e7406c..a6cca1887 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java @@ -48,7 +48,7 @@ import javax.swing.UIManager; */ public final class MainPanel { - public static final String VERSION = "6.1"; + public static final String VERSION = "6.2"; public static final int THROTTLE_SLICE_SIZE = 16 * 1024; public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024; public static final int STREAMER_PORT = 1337; @@ -61,6 +61,7 @@ public final class MainPanel { public static final String DEFAULT_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"; public static final String ICON_FILE = "/images/mbasterd_32.png"; public static final ExecutorService THREAD_POOL = newCachedThreadPool(); + private static Boolean _app_image; private static String _proxy_host; private static int _proxy_port; private static boolean _use_proxy; @@ -79,14 +80,21 @@ public final class MainPanel { UIDefaults defaults = UIManager.getLookAndFeelDefaults(); defaults.put("nimbusOrange", defaults.get("nimbusFocus")); + _app_image = false; + if (args.length > 0) { - try { - Logger.getLogger(MainPanel.class.getName()).log(Level.INFO, "{0} Waiting {1} seconds before start...", new Object[]{Thread.currentThread().getName(), args[0]}); - Thread.sleep(Long.parseLong(args[0]) * 1000); - } catch (InterruptedException ex) { - Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex); + _app_image = args[0].equals("appimage"); + + if (args.length > 1) { + try { + Logger.getLogger(MainPanel.class.getName()).log(Level.INFO, "{0} Waiting {1} seconds before start...", new Object[]{Thread.currentThread().getName(), args[1]}); + Thread.sleep(Long.parseLong(args[1]) * 1000); + } catch (InterruptedException ex) { + Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex); + } } + } final MainPanel main_panel = new MainPanel(); @@ -99,6 +107,10 @@ public final class MainPanel { }); } + public static Boolean getApp_image() { + return _app_image; + } + public static String getFont() { return _font; } @@ -759,7 +771,7 @@ public final class MainPanel { if (restart) { JOptionPane.showMessageDialog(getView(), LabelTranslatorSingleton.getInstance().translate("MegaBasterd will restart"), LabelTranslatorSingleton.getInstance().translate("Restart required"), JOptionPane.WARNING_MESSAGE); - restartApplication(1); + restartApplication(); } else { exit(0); } @@ -787,7 +799,7 @@ public final class MainPanel { if (restart) { JOptionPane.showMessageDialog(getView(), LabelTranslatorSingleton.getInstance().translate("MegaBasterd will restart"), LabelTranslatorSingleton.getInstance().translate("Restart required"), JOptionPane.WARNING_MESSAGE); - restartApplication(1); + restartApplication(); } else { exit(0); } diff --git a/src/main/java/com/tonikelope/megabasterd/MiscTools.java b/src/main/java/com/tonikelope/megabasterd/MiscTools.java index 3744d1810..1879e3c3e 100644 --- a/src/main/java/com/tonikelope/megabasterd/MiscTools.java +++ b/src/main/java/com/tonikelope/megabasterd/MiscTools.java @@ -1076,28 +1076,30 @@ public final class MiscTools { } } - public static void restartApplication(int delay) { - StringBuilder cmd = new StringBuilder(); + public static void restartApplication() { - cmd.append(System.getProperty("java.home")).append(File.separator).append("bin").append(File.separator).append("java "); + if (!MainPanel.getApp_image()) { - for (String jvmArg : ManagementFactory.getRuntimeMXBean().getInputArguments()) { - cmd.append(jvmArg).append(" "); + StringBuilder cmd = new StringBuilder(); + + cmd.append(System.getProperty("java.home")).append(File.separator).append("bin").append(File.separator).append("java "); + + for (String jvmArg : ManagementFactory.getRuntimeMXBean().getInputArguments()) { + cmd.append(jvmArg).append(" "); + } + + cmd.append("-cp ").append(ManagementFactory.getRuntimeMXBean().getClassPath()).append(" "); + + cmd.append(MainPanel.class.getName()).append(" native 1"); + + try { + Runtime.getRuntime().exec(cmd.toString()); + } catch (IOException ex) { + Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex); + } } - cmd.append("-cp ").append(ManagementFactory.getRuntimeMXBean().getClassPath()).append(" "); - - cmd.append(MainPanel.class.getName()).append(" "); - - cmd.append(String.valueOf(delay)); - - try { - Runtime.getRuntime().exec(cmd.toString()); - } catch (IOException ex) { - Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex); - } - - System.exit(0); + System.exit(2); } public static MegaAPI checkMegaAccountLoginAndShowMasterPassDialog(MainPanel main_panel, Container container, String email) throws Exception { diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png index 61565a590..22aff1906 100644 Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ