@Override public String toString() { return getName(); } }
@Override public String toString() { return getName(); } }
public String getField() { return "R." + type.getName() + '.' + name; }
public String getUrl() { return '@' + type.getName() + '/' + name; }
public String getUrl() { return '@' + type.getName() + '/' + name; }
/** * Returns an array with all the names defined by this enum. */ public static String[] getNames() { ResourceType[] values = values(); String[] names = new String[values.length]; for (int i = values.length - 1; i >= 0; --i) { names[i] = values[i].getName(); } return names; }
/** * Returns an array with all the names defined by this enum. */ public static String[] getNames() { ResourceType[] values = values(); String[] names = new String[values.length]; for (int i = values.length - 1; i >= 0; --i) { names[i] = values[i].getName(); } return names; }
public final String[] resolveResourceValue(int id) { Pair<ResourceType, String> info = resolveResourceId(id); if (info != null) { return new String[] { info.getSecond(), info.getFirst().getName() }; } return null; }
@Override public void visitResourceReference(@NonNull JavaContext context, @Nullable AstVisitor visitor, @NonNull lombok.ast.Node node, @NonNull String type, @NonNull String name, boolean isFramework) { if (!isFramework && type.equals(ResourceType.ID.getName())) { mRelevantIds.add(name); } } }
mResourceClassOwners.put(pkg + "/R$" + type.getName(), type);
String owner = pkg + "/R$" + type.getName(); Pair<ResourceType, Map<String, String>> pair = mResourceObfuscation.get(owner); if (pair == null) {
private static void checkResourceType( @NonNull JavaContext context, @NonNull Node argument, @Nullable ResourceType expectedType) { List<ResourceType> actual = getResourceTypes(context, argument); if (actual == null && (!isNumber(argument) || isZero(argument) || isMinusOne(argument)) ) { return; } else if (actual != null && (expectedType == null || actual.contains(expectedType) || expectedType == DRAWABLE && (actual.contains(COLOR) || actual.contains(MIPMAP)))) { return; } String message; if (actual != null && actual.size() == 1 && actual.get(0) == COLOR_INT_MARKER_TYPE) { message = "Expected a color resource id (`R.color.`) but received an RGB integer"; } else if (expectedType == COLOR_INT_MARKER_TYPE) { message = String.format("Should pass resolved color instead of resource id here: " + "`getResources().getColor(%1$s)`", argument.toString()); } else if (expectedType != null) { message = String.format( "Expected resource of type %1$s", expectedType.getName()); } else { message = "Expected resource identifier (`R`.type.`name`)"; } context.report(RESOURCE_TYPE, argument, context.getLocation(argument), message); }
@Override public void visitReferenceExpression(PsiReferenceExpression expression) { if (expression.getQualifier() instanceof PsiReferenceExpression) { PsiReferenceExpression type = (PsiReferenceExpression) expression.getQualifier(); if (ResourceType.LAYOUT.getName().equals(type.getReferenceName())) { if (type.getQualifier() instanceof PsiReferenceExpression) { PsiReferenceExpression rClass = (PsiReferenceExpression) type.getQualifier(); if (rClass.getQualifier() == null && R_CLASS.equals(rClass.getReferenceName())) { String layout = expression.getReferenceName(); if (layout != null) { registerLayoutActivity(layout, mName); } } } } } super.visitReferenceExpression(expression); }
if (resource.getQualifier() instanceof PsiReferenceExpression) { PsiReferenceExpression type = (PsiReferenceExpression) resource.getQualifier(); if (ResourceType.STYLE.getName().equals(type.getReferenceName())) { if (type.getQualifier() instanceof PsiReferenceExpression) { PsiReferenceExpression rClass = (PsiReferenceExpression) type.getQualifier();
if (operand instanceof Select) { Select rLayout = (Select) operand; if (rLayout.astIdentifier().astValue().equals(ResourceType.LAYOUT.getName()) && rLayout.astOperand().toString().endsWith(SdkConstants.R_CLASS)) { String layoutName = select.astIdentifier().astValue();
@Override public void visitMethod(@NonNull JavaContext context, @Nullable JavaElementVisitor visitor, @NonNull PsiMethodCallExpression call, @NonNull PsiMethod method) { PsiExpression[] expressions = call.getArgumentList().getExpressions(); if (expressions.length == 1 && expressions[0] instanceof PsiReferenceExpression) { PsiReferenceExpression expression = (PsiReferenceExpression)expressions[0]; if (expression.getQualifier() instanceof PsiReferenceExpression) { PsiReferenceExpression inner = (PsiReferenceExpression)expression.getQualifier(); if (ResourceType.LAYOUT.getName().equals(inner.getReferenceName())) { String layoutName = expression.getReferenceName(); if (layoutName != null) { whiteListLayout(layoutName); } } } } } }
if (operand instanceof PsiReferenceExpression) { PsiReferenceExpression rLayout = (PsiReferenceExpression) operand; if (ResourceType.LAYOUT.getName().equals(rLayout.getReferenceName()) && rLayout.getQualifier() != null && rLayout.getQualifier().getText().endsWith(SdkConstants.R_CLASS)) {
if (!ResourceType.STYLEABLE.getName().equals(styleableRef.getReferenceName())) { return;