From f8acc31b0bc52942341e9e66529ec5082626fc54 Mon Sep 17 00:00:00 2001 From: Skylot Date: Wed, 20 Feb 2019 10:40:39 +0300 Subject: [PATCH] fix(gui): remove output directories from persistent settings (#447) --- .../main/java/jadx/api/JadxArgsValidator.java | 28 ++++++++----------- .../src/main/java/jadx/gui/JadxWrapper.java | 2 +- .../java/jadx/gui/settings/JadxSettings.java | 10 +++++-- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/jadx-core/src/main/java/jadx/api/JadxArgsValidator.java b/jadx-core/src/main/java/jadx/api/JadxArgsValidator.java index 4bb856d29..7604b39e5 100644 --- a/jadx-core/src/main/java/jadx/api/JadxArgsValidator.java +++ b/jadx-core/src/main/java/jadx/api/JadxArgsValidator.java @@ -53,13 +53,18 @@ public class JadxArgsValidator { } else { outDir = makeDirFromInput(args); } + args.setOutDir(outDir); + } + if (srcDir == null) { + args.setOutDirSrc(new File(args.getOutDir(), JadxArgs.DEFAULT_SRC_DIR)); + } + if (resDir == null) { + args.setOutDirRes(new File(args.getOutDir(), JadxArgs.DEFAULT_RES_DIR)); } - args.setOutDir(outDir); - setFromOut(args); - checkDir(args.getOutDir()); - checkDir(args.getOutDirSrc()); - checkDir(args.getOutDirRes()); + checkDir(args.getOutDir(), "Output"); + checkDir(args.getOutDirSrc(), "Source output"); + checkDir(args.getOutDirRes(), "Resources output"); } @NotNull @@ -79,15 +84,6 @@ public class JadxArgsValidator { return outDir; } - private static void setFromOut(JadxArgs args) { - if (args.getOutDirSrc() == null) { - args.setOutDirSrc(new File(args.getOutDir(), JadxArgs.DEFAULT_SRC_DIR)); - } - if (args.getOutDirRes() == null) { - args.setOutDirRes(new File(args.getOutDir(), JadxArgs.DEFAULT_RES_DIR)); - } - } - private static void checkFile(File file) { if (!file.exists()) { throw new JadxArgsValidateException("File not found " + file.getAbsolutePath()); @@ -97,9 +93,9 @@ public class JadxArgsValidator { } } - private static void checkDir(File dir) { + private static void checkDir(File dir, String desc) { if (dir != null && dir.exists() && !dir.isDirectory()) { - throw new JadxArgsValidateException("Output directory exists as file " + dir); + throw new JadxArgsValidateException(desc + " directory exists as file " + dir); } } diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index 11bf8c68c..52ec3908b 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -35,7 +35,7 @@ public class JadxWrapper { this.decompiler.getArgs().setInputFiles(Collections.singletonList(file)); this.decompiler.load(); } catch (Exception e) { - LOG.error("Error load file: {}", file, e); + LOG.error("Jadx init error", e); } } diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java index e9cbe5147..f0c190229 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java @@ -26,12 +26,12 @@ public class JadxSettings extends JadxCLIArgs { private static final String USER_HOME = System.getProperty("user.home"); private static final int RECENT_FILES_COUNT = 15; - private static final int CURRENT_SETTINGS_VERSION = 7; + private static final int CURRENT_SETTINGS_VERSION = 8; private static final Font DEFAULT_FONT = new RSyntaxTextArea().getFont(); static final Set SKIP_FIELDS = new HashSet<>(Arrays.asList( - "files", "input", "outputDir", "verbose", "printHelp" + "files", "input", "outDir", "outDirSrc", "outDirRes", "verbose", "printVersion", "printHelp" )); private String lastOpenFilePath = USER_HOME; private String lastSaveFilePath = USER_HOME; @@ -323,6 +323,12 @@ public class JadxSettings extends JadxCLIArgs { if (getFont().getFontName().equals("Hack Regular")) { setFont(null); } + fromVersion++; + } + if (fromVersion == 7) { + outDir = null; + outDirSrc = null; + outDirRes = null; } settingsVersion = CURRENT_SETTINGS_VERSION; sync();