fix: use nice name for 'package-private' in modifiers change message

This commit is contained in:
Skylot
2019-07-28 20:42:07 +03:00
parent 1e6b30343c
commit e842e022ba
2 changed files with 22 additions and 1 deletions
@@ -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:
@@ -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());
}
}