From e842e022ba606760f1b948786dcb417ecc18879c Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 28 Jul 2019 20:42:07 +0300 Subject: [PATCH] fix: use nice name for 'package-private' in modifiers change message --- .../java/jadx/core/dex/info/AccessInfo.java | 21 +++++++++++++++++++ .../core/dex/visitors/FixAccessModifiers.java | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java index 02bd80f9c..7a7571be7 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java @@ -3,6 +3,7 @@ package jadx.core.dex.info; import com.android.dx.rop.code.AccessFlags; import jadx.core.Consts; +import jadx.core.utils.exceptions.JadxRuntimeException; public class AccessInfo { @@ -63,6 +64,10 @@ public class AccessInfo { return (accFlags & AccessFlags.ACC_PRIVATE) != 0; } + public boolean isPackagePrivate() { + return (accFlags & VISIBILITY_FLAGS) == 0; + } + public boolean isAbstract() { return (accFlags & AccessFlags.ACC_ABSTRACT) != 0; } @@ -188,6 +193,22 @@ public class AccessInfo { return code.toString(); } + public String visibilityName() { + if (isPackagePrivate()) { + return "package-private"; + } + if (isPublic()) { + return "public"; + } + if (isPrivate()) { + return "private"; + } + if (isProtected()) { + return "protected"; + } + throw new JadxRuntimeException("Unknown visibility flags: " + getVisibility()); + } + public String rawString() { switch (type) { case CLASS: diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/FixAccessModifiers.java b/jadx-core/src/main/java/jadx/core/dex/visitors/FixAccessModifiers.java index 4e9b43826..7156857bc 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/FixAccessModifiers.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/FixAccessModifiers.java @@ -38,7 +38,7 @@ public class FixAccessModifiers extends AbstractVisitor { AccessInfo newAccFlags = accessFlags.changeVisibility(newVisFlag); if (newAccFlags != accessFlags) { node.setAccessFlags(newAccFlags); - node.addAttr(AType.COMMENTS, "access modifiers changed from: " + accessFlags.getVisibility().rawString()); + node.addAttr(AType.COMMENTS, "access modifiers changed from: " + accessFlags.visibilityName()); } }