fix(gui): search class with --select-class also by not deobfuscated names
This commit is contained in:
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user