whiteListLayout(layout); ((isWidthFillParent(element) && isHeightFillParent(element)) || !element.hasAttributeNS(ANDROID_URI, ATTR_LAYOUT_GRAVITY)) && !element.hasAttributeNS(ANDROID_URI, ATTR_BACKGROUND) && !element.hasAttributeNS(ANDROID_URI, ATTR_FOREGROUND) && !hasPadding(element)) { String layout = LintUtils.getLayoutName(context.file); Handle handle = context.createLocationHandle(element);
@Override public void visitDocument(Context context, Document document) { Element root = document.getDocumentElement(); if (root.getTagName().equals(FRAME_LAYOUT) && ((isWidthFillParent(root) && isHeightFillParent(root)) || !root.hasAttributeNS(ANDROID_URI, ATTR_LAYOUT_GRAVITY)) && !root.hasAttributeNS(ANDROID_URI, ATTR_BACKGROUND) && !root.hasAttributeNS(ANDROID_URI, ATTR_FOREGROUND) && !hasPadding(root)) { context.client.report(context, ISSUE, context.getLocation(root), "This <FrameLayout> can be replaced with a <merge> tag", null); } } }
@Override public void visitMethod( @NonNull JavaContext context, @Nullable AstVisitor visitor, @NonNull MethodInvocation node) { StrictListAccessor<Expression, MethodInvocation> argumentList = node.astArguments(); if (argumentList != null && argumentList.size() == 1) { Expression argument = argumentList.first(); if (argument instanceof Select) { String expression = argument.toString(); if (expression.startsWith(R_LAYOUT_RESOURCE_PREFIX)) { whiteListLayout(expression.substring(R_LAYOUT_RESOURCE_PREFIX.length())); } } } } }
@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); } } } } } }
whiteListLayout(layout); ((isWidthFillParent(element) && isHeightFillParent(element)) || !element.hasAttributeNS(ANDROID_URI, ATTR_LAYOUT_GRAVITY)) && !element.hasAttributeNS(ANDROID_URI, ATTR_BACKGROUND) && !element.hasAttributeNS(ANDROID_URI, ATTR_FOREGROUND) && !hasPadding(element)) { String layout = LintUtils.getLayoutName(context.file); Handle handle = context.createLocationHandle(element);