diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java index 004d5d45a..687d6a009 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java @@ -78,13 +78,26 @@ public class JadxProject { public void removeTreeExpansion(String[] expansion) { for (Iterator it = treeExpansions.iterator(); it.hasNext(); ) { - if (Arrays.equals(it.next(), expansion)) { + if (isParentOfExpansion(expansion, it.next())) { it.remove(); } } changed(); } + private boolean isParentOfExpansion(String[] parent, String[] child) { + if (Arrays.equals(parent, child)) { + return true; + } + for (int i = child.length - parent.length; i > 0; i--) { + String[] arr = Arrays.copyOfRange(child, i, child.length); + if (Arrays.equals(parent, arr)) { + return true; + } + } + return false; + } + private void changed() { if (settings.isAutoSaveProject()) { save();