aboutsummaryrefslogtreecommitdiffstats
path: root/lint
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2012-10-22 08:10:38 -0700
committerTor Norbye <tnorbye@google.com>2012-10-22 08:10:38 -0700
commitdca3d8735541f868c3b20fc317b9ab6150c0e369 (patch)
tree3010dbfd6cd6200734a5fbfd27181b36a49838c8 /lint
parentea1b5a9a17274f653172bbe370f6147b57ebb579 (diff)
downloadsdk-dca3d8735541f868c3b20fc317b9ab6150c0e369.zip
sdk-dca3d8735541f868c3b20fc317b9ab6150c0e369.tar.gz
sdk-dca3d8735541f868c3b20fc317b9ab6150c0e369.tar.bz2
38748: lint doesn't recognise inputtype in style
Change-Id: Ia00b9d6de3feb1b3dc99b8293c456e5b26e1b860
Diffstat (limited to 'lint')
-rw-r--r--lint/libs/lint_checks/src/com/android/tools/lint/checks/TextFieldDetector.java11
-rw-r--r--lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/layout/edit_type.xml7
2 files changed, 18 insertions, 0 deletions
diff --git a/lint/libs/lint_checks/src/com/android/tools/lint/checks/TextFieldDetector.java b/lint/libs/lint_checks/src/com/android/tools/lint/checks/TextFieldDetector.java
index 376018b..9eb4474 100644
--- a/lint/libs/lint_checks/src/com/android/tools/lint/checks/TextFieldDetector.java
+++ b/lint/libs/lint_checks/src/com/android/tools/lint/checks/TextFieldDetector.java
@@ -23,6 +23,7 @@ import static com.android.SdkConstants.ATTR_INPUT_METHOD;
import static com.android.SdkConstants.ATTR_INPUT_TYPE;
import static com.android.SdkConstants.ATTR_PASSWORD;
import static com.android.SdkConstants.ATTR_PHONE_NUMBER;
+import static com.android.SdkConstants.ATTR_STYLE;
import static com.android.SdkConstants.EDIT_TEXT;
import static com.android.SdkConstants.ID_PREFIX;
import static com.android.SdkConstants.NEW_ID_PREFIX;
@@ -89,6 +90,16 @@ public class TextFieldDetector extends LayoutDetector {
@Override
public void visitElement(@NonNull XmlContext context, @NonNull Element element) {
+ String style = element.getAttribute(ATTR_STYLE);
+ if (style != null && !style.isEmpty()) {
+ // The input type might be specified via a style. This will require
+ // us to track these (similar to what is done for the
+ // RequiredAttributeDetector to track layout_width and layout_height
+ // in style declarations). For now, simply ignore these elements
+ // to avoid producing false positives.
+ return;
+ }
+
Attr inputTypeNode = element.getAttributeNodeNS(ANDROID_URI, ATTR_INPUT_TYPE);
if (inputTypeNode == null &&
!element.hasAttributeNS(ANDROID_URI, ATTR_HINT)) {
diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/layout/edit_type.xml b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/layout/edit_type.xml
index 63452e3..8f8cf90 100644
--- a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/layout/edit_type.xml
+++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/layout/edit_type.xml
@@ -86,4 +86,11 @@
android:layout_height="wrap_content"
android:ems="10" />
+ <EditText
+ style="@style/foo"
+ android:id="@+id/number_of_items"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10" />
+
</LinearLayout>