From 55eb86d2d56f2b4ef98cb94f8bec26ed490c5aa2 Mon Sep 17 00:00:00 2001 From: Skylot Date: Fri, 27 Dec 2019 18:52:28 +0000 Subject: [PATCH] fix(gui): search class with --select-class also by not deobfuscated names --- jadx-gui/src/main/java/jadx/gui/JadxWrapper.java | 7 +++++++ jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java | 9 ++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index 799f5556d..86b590858 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -149,6 +149,13 @@ public class JadxWrapper { .orElse(null); } + public @Nullable JavaClass searchJavaClassByOrigClassName(String fullName) { + return decompiler.getClasses().stream() + .filter(cls -> cls.getClassNode().getClassInfo().getFullName().equals(fullName)) + .findFirst() + .orElse(null); + } + /** * @param rawName Full raw name of an outer class. Inner classes are not supported. */ diff --git a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java index 03cb9eacc..503185d87 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java @@ -208,14 +208,17 @@ public class MainWindow extends JFrame { private void handleSelectClassOption() { if (settings.getCmdSelectClass() != null) { JavaNode javaNode = wrapper.searchJavaClassByClassName(settings.getCmdSelectClass()); + if (javaNode == null) { + javaNode = wrapper.searchJavaClassByOrigClassName(settings.getCmdSelectClass()); + } if (javaNode == null) { JOptionPane.showMessageDialog(this, NLS.str("msg.cmd_select_class_error", settings.getCmdSelectClass()), NLS.str("error_dialog.title"), JOptionPane.ERROR_MESSAGE); - } else { - JNode node = cacheObject.getNodeCache().makeFrom(javaNode); - tabbedPane.codeJump(new JumpPosition(node.getRootClass(), node.getLine())); + return; } + JNode node = cacheObject.getNodeCache().makeFrom(javaNode); + tabbedPane.codeJump(new JumpPosition(node.getRootClass(), node.getLine())); } }