fix(gui): exclusion disablement should be exact package match (PR #500)
This commit is contained in:
@@ -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<String> 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();
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,8 @@ public class JPackage extends JNode implements Comparable<JPackage> {
|
||||
private void setEnabled(JadxWrapper wrapper) {
|
||||
List<String> 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() {
|
||||
|
||||
Reference in New Issue
Block a user