fix(gui): search class with --select-class also by not deobfuscated names

This commit is contained in:
Skylot
2019-12-27 18:52:28 +00:00
parent 0a9b944431
commit 55eb86d2d5
2 changed files with 13 additions and 3 deletions
@@ -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.
*/
@@ -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()));
}
}