From eed762df442b5d65920425b1cdff1d6dcf081347 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Sat, 23 Mar 2019 08:32:24 +0100 Subject: [PATCH] fix(gui): exclusion disablement should be exact package match (PR #500) --- jadx-gui/src/main/java/jadx/gui/JadxWrapper.java | 9 +++++++-- jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index 539a90af..acd49331 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -88,7 +88,8 @@ public class JadxWrapper { return classList.stream().filter(cls -> { for (String exclude : excludedPackages) { - if (cls.getFullName().startsWith(exclude)) { + if (cls.getFullName().equals(exclude) + || cls.getFullName().startsWith(exclude + '.')) { return false; } } @@ -98,11 +99,15 @@ public class JadxWrapper { public List getExcludedPackages() { String excludedPackages = settings.getExcludedPackages().trim(); + if (excludedPackages.isEmpty()) { + return Collections.emptyList(); + } return Arrays.asList(excludedPackages.split("[ ]+")); } public void addExcludedPackage(String packageToExclude) { - settings.setExcludedPackages(settings.getExcludedPackages() + ' ' + packageToExclude); + String newExclusion = settings.getExcludedPackages() + ' ' + packageToExclude; + settings.setExcludedPackages(newExclusion.trim()); settings.sync(); } diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java index 8481bbbc..ef710d18 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java @@ -46,7 +46,8 @@ public class JPackage extends JNode implements Comparable { private void setEnabled(JadxWrapper wrapper) { List excludedPackages = wrapper.getExcludedPackages(); this.enabled = excludedPackages.isEmpty() - || excludedPackages.stream().filter(p -> !p.isEmpty()).noneMatch(p -> name.startsWith(p)); + || excludedPackages.stream().filter(p -> !p.isEmpty()) + .noneMatch(p -> name.equals(p) || name.startsWith(p + '.')); } public final void update() { -- GitLab