diff options
author | Tor Norbye <tnorbye@google.com> | 2014-09-23 00:56:36 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-09-23 00:56:37 +0000 |
commit | 346dce52674589b00ead4e5b59446c95dd130457 (patch) | |
tree | c2356e6ec90d4518413f886efd678652d92e5d4a | |
parent | 16a74241e5653f145f3b7b68ecd786dba2cb0597 (diff) | |
parent | 7f0a81a35479d4af43c1af7a2d115a1736bccd1e (diff) | |
download | base-346dce52674589b00ead4e5b59446c95dd130457.tar.gz |
Merge "73880: XML layout lint doesn't complain when an id is empty ie. "@+id/"" into idea133
3 files changed, 14 insertions, 2 deletions
diff --git a/lint/cli/src/test/java/com/android/tools/lint/checks/WrongIdDetectorTest.java b/lint/cli/src/test/java/com/android/tools/lint/checks/WrongIdDetectorTest.java index a59b5713ca..6d2adbd3fa 100644 --- a/lint/cli/src/test/java/com/android/tools/lint/checks/WrongIdDetectorTest.java +++ b/lint/cli/src/test/java/com/android/tools/lint/checks/WrongIdDetectorTest.java @@ -140,7 +140,10 @@ public class WrongIdDetectorTest extends AbstractCheckTest { + "res/layout/invalid_ids2.xml:8: Error: ID definitions must be of the form @+id/name; try using @+id/btn_skip [InvalidId]\n" + " android:id=\"@+id/btn/skip\"\n" + " ~~~~~~~~~~~~~~~~~~~~~~~~~~\n" - + "1 errors, 0 warnings\n", + + "res/layout/invalid_ids2.xml:16: Error: Invalid id: missing value [InvalidId]\n" + + " android:id=\"@+id/\"\n" + + " ~~~~~~~~~~~~~~~~~~\n" + + "2 errors, 0 warnings\n", lintFiles("res/layout/invalid_ids2.xml")); } diff --git a/lint/cli/src/test/java/com/android/tools/lint/checks/data/res/layout/invalid_ids2.xml b/lint/cli/src/test/java/com/android/tools/lint/checks/data/res/layout/invalid_ids2.xml index 259903a820..5c9b51b286 100644 --- a/lint/cli/src/test/java/com/android/tools/lint/checks/data/res/layout/invalid_ids2.xml +++ b/lint/cli/src/test/java/com/android/tools/lint/checks/data/res/layout/invalid_ids2.xml @@ -12,4 +12,10 @@ android:layout_alignParentTop="true" android:text="Button" /> + <Button + android:id="@+id/" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Button" /> + </RelativeLayout> diff --git a/lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WrongIdDetector.java b/lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WrongIdDetector.java index 6f553d800b..a001a4b669 100644 --- a/lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WrongIdDetector.java +++ b/lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WrongIdDetector.java @@ -382,7 +382,10 @@ public class WrongIdDetector extends LayoutDetector { mFileIds.add(id); mGlobalIds.add(id); - if (id.startsWith("@+") && !id.startsWith(NEW_ID_PREFIX) //$NON-NLS-1$ + if (id.equals(NEW_ID_PREFIX) || id.equals(ID_PREFIX) || "@+id".equals(ID_PREFIX)) { + String message = "Invalid id: missing value"; + context.report(INVALID, attribute, context.getLocation(attribute), message); + } else if (id.startsWith("@+") && !id.startsWith(NEW_ID_PREFIX) //$NON-NLS-1$ && !id.startsWith("@+android:id/") //$NON-NLS-1$ || id.startsWith(NEW_ID_PREFIX) && id.indexOf('/', NEW_ID_PREFIX.length()) != -1) { |