From 56798e716a0da199ad275d8c5944f8227e0623e4 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 19 Aug 2018 12:19:11 +0300 Subject: [PATCH] gui: min and max deobf lengths must be positive --- .../java/jadx/gui/settings/JadxSettings.java | 10 ++++++-- .../jadx/gui/settings/JadxSettingsWindow.java | 24 +++++++++---------- 2 files changed, 20 insertions(+), 14 deletions(-) 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 ecc37525..26eee268 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java @@ -9,8 +9,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import jadx.gui.utils.LangLocale; -import jadx.gui.utils.NLS; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,6 +16,8 @@ import org.slf4j.LoggerFactory; import jadx.api.JadxArgs; import jadx.cli.JadxCLIArgs; import jadx.gui.ui.CodeArea; +import jadx.gui.utils.LangLocale; +import jadx.gui.utils.NLS; import static jadx.gui.utils.Utils.FONT_HACK; @@ -58,6 +58,12 @@ public class JadxSettings extends JadxCLIArgs { if (threadsCount <= 0) { threadsCount = JadxArgs.DEFAULT_THREADS_COUNT; } + if (deobfuscationMinLength < 0) { + deobfuscationMinLength = 0; + } + if (deobfuscationMaxLength < 0) { + deobfuscationMaxLength = 0; + } if (settingsVersion != CURRENT_SETTINGS_VERSION) { upgradeSettings(settingsVersion); } diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java index c5449c48..1772d255 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java @@ -8,7 +8,6 @@ import java.awt.event.MouseEvent; import java.util.Arrays; import java.util.Collection; -import jadx.gui.utils.LangLocale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import say.swing.JFontChooser; @@ -16,6 +15,7 @@ import say.swing.JFontChooser; import jadx.gui.ui.CodeArea; import jadx.gui.ui.CodeArea.EditorTheme; import jadx.gui.ui.MainWindow; +import jadx.gui.utils.LangLocale; import jadx.gui.utils.NLS; import static jadx.gui.utils.Utils.FONT_HACK; @@ -135,17 +135,17 @@ public class JadxSettingsWindow extends JDialog { needReload(); }); - JSpinner minLen = new JSpinner(); - minLen.setValue(settings.getDeobfuscationMinLength()); - minLen.addChangeListener(e -> { - settings.setDeobfuscationMinLength((Integer) minLen.getValue()); + SpinnerNumberModel minLenModel = new SpinnerNumberModel(settings.getDeobfuscationMinLength(), 0, Integer.MAX_VALUE, 1); + JSpinner minLenSpinner = new JSpinner(minLenModel); + minLenSpinner.addChangeListener(e -> { + settings.setDeobfuscationMinLength((Integer) minLenSpinner.getValue()); needReload(); }); - JSpinner maxLen = new JSpinner(); - maxLen.setValue(settings.getDeobfuscationMaxLength()); - maxLen.addChangeListener(e -> { - settings.setDeobfuscationMaxLength((Integer) maxLen.getValue()); + SpinnerNumberModel maxLenModel = new SpinnerNumberModel(settings.getDeobfuscationMaxLength(), 0, Integer.MAX_VALUE, 1); + JSpinner maxLenSpinner = new JSpinner(maxLenModel); + maxLenSpinner.addChangeListener(e -> { + settings.setDeobfuscationMaxLength((Integer) maxLenSpinner.getValue()); needReload(); }); @@ -159,12 +159,12 @@ public class JadxSettingsWindow extends JDialog { SettingsGroup deobfGroup = new SettingsGroup(NLS.str("preferences.deobfuscation")); deobfGroup.addRow(NLS.str("preferences.deobfuscation_on"), deobfOn); deobfGroup.addRow(NLS.str("preferences.deobfuscation_force"), deobfForce); - deobfGroup.addRow(NLS.str("preferences.deobfuscation_min_len"), minLen); - deobfGroup.addRow(NLS.str("preferences.deobfuscation_max_len"), maxLen); + deobfGroup.addRow(NLS.str("preferences.deobfuscation_min_len"), minLenSpinner); + deobfGroup.addRow(NLS.str("preferences.deobfuscation_max_len"), maxLenSpinner); deobfGroup.addRow(NLS.str("preferences.deobfuscation_source_alias"), deobfSourceAlias); deobfGroup.end(); - Collection connectedComponents = Arrays.asList(deobfForce, minLen, maxLen, deobfSourceAlias); + Collection connectedComponents = Arrays.asList(deobfForce, minLenSpinner, maxLenSpinner, deobfSourceAlias); deobfOn.addItemListener(e -> enableComponentList(connectedComponents, e.getStateChange() == ItemEvent.SELECTED)); enableComponentList(connectedComponents, settings.isDeobfuscationOn()); return deobfGroup; -- GitLab