diff options
8 files changed, 46 insertions, 8 deletions
diff --git a/anttasks/src/com/android/ant/TaskHelper.java b/anttasks/src/com/android/ant/TaskHelper.java index 24aeb8b..fe154cf 100644 --- a/anttasks/src/com/android/ant/TaskHelper.java +++ b/anttasks/src/com/android/ant/TaskHelper.java @@ -93,6 +93,11 @@ final class TaskHelper { String value = p.getProperty("Pkg.Revision"); //$NON-NLS-1$ if (value != null) { + value = value.trim(); + int space = value.indexOf(' '); + if (space != -1) { + value = value.substring(0, space); + } return new DeweyDecimal(value); } } catch (FileNotFoundException e) { diff --git a/lint/libs/lint_checks/src/com/android/tools/lint/checks/ButtonDetector.java b/lint/libs/lint_checks/src/com/android/tools/lint/checks/ButtonDetector.java index 79cea2e..46fb4bf 100644 --- a/lint/libs/lint_checks/src/com/android/tools/lint/checks/ButtonDetector.java +++ b/lint/libs/lint_checks/src/com/android/tools/lint/checks/ButtonDetector.java @@ -249,7 +249,7 @@ public class ButtonDetector extends ResourceXmlDetector { && isEnglishResource(context) && context.isEnabled(CASE)) { assert label.equalsIgnoreCase(CANCEL_LABEL); - context.report(CASE, context.getLocation(child), + context.report(CASE, child, context.getLocation(child), String.format( "The standard Android way to capitalize %1$s " + "is \"Cancel\" (tip: use @android:string/ok instead)", @@ -266,7 +266,7 @@ public class ButtonDetector extends ResourceXmlDetector { && isEnglishResource(context) && context.isEnabled(CASE)) { assert text.equalsIgnoreCase(OK_LABEL); - context.report(CASE, context.getLocation(child), + context.report(CASE, child, context.getLocation(child), String.format( "The standard Android way to capitalize %1$s " + "is \"OK\" (tip: use @android:string/ok instead)", @@ -305,7 +305,7 @@ public class ButtonDetector extends ResourceXmlDetector { assert BACK_LABEL.equalsIgnoreCase(label); Location location = context.getLocation(element); if (context.isEnabled(BACKBUTTON)) { - context.report(BACKBUTTON, location, + context.report(BACKBUTTON, element, location, "Back buttons are not standard on Android; see design guide's " + "navigation section", null); } diff --git a/lint/libs/lint_checks/src/com/android/tools/lint/checks/ManifestOrderDetector.java b/lint/libs/lint_checks/src/com/android/tools/lint/checks/ManifestOrderDetector.java index 44553fa..3d71a85 100644 --- a/lint/libs/lint_checks/src/com/android/tools/lint/checks/ManifestOrderDetector.java +++ b/lint/libs/lint_checks/src/com/android/tools/lint/checks/ManifestOrderDetector.java @@ -261,8 +261,8 @@ public class ManifestOrderDetector extends Detector implements Detector.XmlScann if (mActivities.contains(name)) { String message = String.format( "Duplicate registration for activity %1$s", name); - context.report(DUPLICATE_ACTIVITY, context.getLocation(nameNode), - message, null); + context.report(DUPLICATE_ACTIVITY, element, + context.getLocation(nameNode), message, null); } else { mActivities.add(name); } diff --git a/lint/libs/lint_checks/src/com/android/tools/lint/checks/StyleCycleDetector.java b/lint/libs/lint_checks/src/com/android/tools/lint/checks/StyleCycleDetector.java index 03766b7..82001d0 100644 --- a/lint/libs/lint_checks/src/com/android/tools/lint/checks/StyleCycleDetector.java +++ b/lint/libs/lint_checks/src/com/android/tools/lint/checks/StyleCycleDetector.java @@ -86,7 +86,7 @@ public class StyleCycleDetector extends ResourceXmlDetector { } else if (parent.startsWith(STYLE_RESOURCE_PREFIX) && parent.startsWith(name, STYLE_RESOURCE_PREFIX.length()) && parent.startsWith(".", STYLE_RESOURCE_PREFIX.length() + name.length())) { - context.report(ISSUE, context.getLocation(parentNode), + context.report(ISSUE, parentNode, context.getLocation(parentNode), String.format("Potential cycle: %1$s is the implied parent of %2$s and " + "this defines the opposite", name, parent.substring(STYLE_RESOURCE_PREFIX.length())), null); diff --git a/lint/libs/lint_checks/src/com/android/tools/lint/checks/TranslationDetector.java b/lint/libs/lint_checks/src/com/android/tools/lint/checks/TranslationDetector.java index a501e05..02fe6ae 100644 --- a/lint/libs/lint_checks/src/com/android/tools/lint/checks/TranslationDetector.java +++ b/lint/libs/lint_checks/src/com/android/tools/lint/checks/TranslationDetector.java @@ -470,7 +470,7 @@ public class TranslationDetector extends ResourceXmlDetector { if (translatable != null && !Boolean.valueOf(translatable.getValue())) { String l = LintUtils.getLocaleAndRegion(context.file.getParentFile().getName()); if (l != null) { - context.report(EXTRA, context.getLocation(translatable), + context.report(EXTRA, translatable, context.getLocation(translatable), "Non-translatable resources should only be defined in the base " + "values/ folder", null); } else { diff --git a/lint/libs/lint_checks/src/com/android/tools/lint/checks/WrongLocationDetector.java b/lint/libs/lint_checks/src/com/android/tools/lint/checks/WrongLocationDetector.java index 8a19e20..39ffe1f 100644 --- a/lint/libs/lint_checks/src/com/android/tools/lint/checks/WrongLocationDetector.java +++ b/lint/libs/lint_checks/src/com/android/tools/lint/checks/WrongLocationDetector.java @@ -61,7 +61,7 @@ public class WrongLocationDetector extends LayoutDetector { public void visitDocument(@NonNull XmlContext context, @NonNull Document document) { Element root = document.getDocumentElement(); if (root != null && root.getTagName().equals(TAG_RESOURCES)) { - context.report(ISSUE, context.getLocation(root), + context.report(ISSUE, root, context.getLocation(root), "This file should be placed in a values/ folder, not a layout/ folder", null); } } diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/ManifestOrderDetectorTest.java b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/ManifestOrderDetectorTest.java index 1b8c8f4..7513138 100644 --- a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/ManifestOrderDetectorTest.java +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/ManifestOrderDetectorTest.java @@ -189,4 +189,14 @@ public class ManifestOrderDetectorTest extends AbstractCheckTest { "duplicate-manifest.xml=>AndroidManifest.xml", "res/values/strings.xml")); } + + public void testIgnoreDuplicateActivity() throws Exception { + mEnabled = Collections.singleton(ManifestOrderDetector.DUPLICATE_ACTIVITY); + assertEquals( + "No warnings.", + + lintProject( + "duplicate-manifest-ignore.xml=>AndroidManifest.xml", + "res/values/strings.xml")); + } } diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/duplicate-manifest-ignore.xml b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/duplicate-manifest-ignore.xml new file mode 100644 index 0000000..76cfd4d --- /dev/null +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/duplicate-manifest-ignore.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + package="com.example.helloworld" + android:versionCode="1" + android:versionName="1.0"> + <uses-sdk android:minSdkVersion="14" /> + <application android:icon="@drawable/icon" android:label="@string/app_name" tools:ignore="DuplicateActivity"> + <activity android:name=".HelloWorld" + android:label="@string/app_name"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + + <activity android:name="com.example.helloworld.HelloWorld" + android:label="@string/app_name"> + </activity> + + </application> + +</manifest> |