From 092e89710434105b3ec9714ee18b7d688d6f4fbc Mon Sep 17 00:00:00 2001 From: Yaroslav <43380144+MrIkso@users.noreply.github.com> Date: Fri, 23 May 2025 01:26:39 +0300 Subject: [PATCH] fix(gui): fix rename package behaviors (PR #2500) * fix(gui): fix rename package behaviors * disable rename for default and synthetic packages --------- Co-authored-by: Skylot <118523+skylot@users.noreply.github.com> --- .../java/jadx/gui/utils/pkgs/JRenamePackage.java | 2 +- .../java/jadx/gui/utils/pkgs/PackageHelper.java | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/utils/pkgs/JRenamePackage.java b/jadx-gui/src/main/java/jadx/gui/utils/pkgs/JRenamePackage.java index 5bd71a20b..c62f72ad3 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/pkgs/JRenamePackage.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/pkgs/JRenamePackage.java @@ -102,7 +102,7 @@ public class JRenamePackage implements JRenameNode { @Override public void reload(MainWindow mainWindow) { mainWindow.rebuildPackagesTree(); - mainWindow.reloadTree(); + mainWindow.reloadTreePreservingState(); } @Override diff --git a/jadx-gui/src/main/java/jadx/gui/utils/pkgs/PackageHelper.java b/jadx-gui/src/main/java/jadx/gui/utils/pkgs/PackageHelper.java index 91233f151..ad9dd36db 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/pkgs/PackageHelper.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/pkgs/PackageHelper.java @@ -58,13 +58,14 @@ public class PackageHelper { Set added = new HashSet<>(); do { JPackage jPkg = pkgInfoMap.get(pkgInfo); - if (jPkg != null) { + if (jPkg != null && !jPkg.isSynthetic()) { JavaPackage javaPkg = jPkg.getPkg(); - String fullName = javaPkg.isDefault() ? JPackage.PACKAGE_DEFAULT_HTML_STR : javaPkg.getFullName(); - String name = jPkg.isSynthetic() || javaPkg.isParentRenamed() ? fullName : javaPkg.getName(); - JRenamePackage renamePkg = new JRenamePackage(javaPkg, javaPkg.getRawFullName(), fullName, name); - if (added.add(fullName)) { - list.add(renamePkg); + if (!javaPkg.isDefault()) { + JRenamePackage renamePkg = new JRenamePackage(javaPkg, + javaPkg.getRawFullName(), javaPkg.getFullName(), javaPkg.getName()); + if (added.add(javaPkg.getFullName())) { + list.add(renamePkg); + } } } pkgInfo = pkgInfo.getParentPkg();