fix(gui): don't reset package alias on class rename (#1732)
This commit is contained in:
@@ -9,6 +9,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import jadx.core.dex.instructions.args.ArgType;
|
||||
import jadx.core.dex.nodes.ClassNode;
|
||||
import jadx.core.dex.nodes.RootNode;
|
||||
import jadx.core.utils.StringUtils;
|
||||
import jadx.core.utils.exceptions.JadxRuntimeException;
|
||||
|
||||
public final class ClassInfo implements Comparable<ClassInfo> {
|
||||
@@ -59,13 +60,21 @@ public final class ClassInfo implements Comparable<ClassInfo> {
|
||||
}
|
||||
|
||||
public void changeShortName(String aliasName) {
|
||||
if (!Objects.equals(name, aliasName)) {
|
||||
ClassAliasInfo newAlias = new ClassAliasInfo(getAliasPkg(), aliasName);
|
||||
fillAliasFullName(newAlias);
|
||||
this.alias = newAlias;
|
||||
ClassAliasInfo newAlias;
|
||||
String aliasPkg = getAliasPkg();
|
||||
if (Objects.equals(name, aliasName) || StringUtils.isEmpty(aliasName)) {
|
||||
if (Objects.equals(getPackage(), aliasPkg)) {
|
||||
newAlias = null;
|
||||
} else {
|
||||
newAlias = new ClassAliasInfo(aliasPkg, name);
|
||||
}
|
||||
} else {
|
||||
this.alias = null;
|
||||
newAlias = new ClassAliasInfo(aliasPkg, aliasName);
|
||||
}
|
||||
if (newAlias != null) {
|
||||
fillAliasFullName(newAlias);
|
||||
}
|
||||
this.alias = newAlias;
|
||||
}
|
||||
|
||||
public void changePkg(String aliasPkg) {
|
||||
|
||||
@@ -220,7 +220,8 @@ public class JClass extends JLoadableNode implements JRenameNode {
|
||||
|
||||
@Override
|
||||
public void removeAlias() {
|
||||
cls.removeAlias();
|
||||
// reset only short name, package name should be reset explicitly using PackageNode
|
||||
cls.getClassNode().rename("");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -125,8 +125,9 @@ public class RenameDialog extends JDialog {
|
||||
private void processRename(String newName, Set<ICodeRename> renames) {
|
||||
ICodeRename rename = node.buildCodeRename(newName, renames);
|
||||
renames.remove(rename);
|
||||
node.removeAlias();
|
||||
if (!newName.isEmpty()) {
|
||||
if (newName.isEmpty()) {
|
||||
node.removeAlias();
|
||||
} else {
|
||||
renames.add(rename);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,4 +99,9 @@ public class JRenamePackage implements JRenameNode {
|
||||
mainWindow.rebuildPackagesTree();
|
||||
mainWindow.reloadTree();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return refPkg.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user