aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2012-12-10 10:29:41 -0800
committerTor Norbye <tnorbye@google.com>2012-12-10 10:47:11 -0800
commitf8d65e59e16e22a71eb915e3b200c7482f647776 (patch)
tree0ff2832bf5bcfc1bce71b5222a88e5229a0bc8dc
parent71074e376d3d3c9bc52832815f0e2f8b2bd33fea (diff)
downloadsdk-f8d65e59e16e22a71eb915e3b200c7482f647776.zip
sdk-f8d65e59e16e22a71eb915e3b200c7482f647776.tar.gz
sdk-f8d65e59e16e22a71eb915e3b200c7482f647776.tar.bz2
41154: Handle allowBackup properly for target < 4
This fixes 41154: Template Android Application Project for API v3 reports AAPT problem with android:allowBackup="true" Change-Id: I74b4cd0f8df9a74fe9221250cc83b1d15821ce51
-rw-r--r--lint/cli/src/test/java/com/android/tools/lint/checks/ManifestOrderDetectorTest.java13
-rw-r--r--lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/ManifestOrderDetector.java3
-rw-r--r--templates/projects/NewAndroidApplication/root/AndroidManifest.xml.ftl4
3 files changed, 17 insertions, 3 deletions
diff --git a/lint/cli/src/test/java/com/android/tools/lint/checks/ManifestOrderDetectorTest.java b/lint/cli/src/test/java/com/android/tools/lint/checks/ManifestOrderDetectorTest.java
index ccb9123..8508d40 100644
--- a/lint/cli/src/test/java/com/android/tools/lint/checks/ManifestOrderDetectorTest.java
+++ b/lint/cli/src/test/java/com/android/tools/lint/checks/ManifestOrderDetectorTest.java
@@ -214,6 +214,7 @@ public class ManifestOrderDetectorTest extends AbstractCheckTest {
"0 errors, 1 warnings\n",
lintProject(
"AndroidManifest.xml",
+ "apicheck/minsdk14.xml=>AndroidManifest.xml",
"res/values/strings.xml"));
}
@@ -226,6 +227,18 @@ public class ManifestOrderDetectorTest extends AbstractCheckTest {
"res/values/strings.xml"));
}
+ public void testAllowBackupOk2() throws Exception {
+ // Requires build api >= 4
+ mEnabled = Collections.singleton(ManifestOrderDetector.ALLOW_BACKUP);
+ assertEquals(
+ "No warnings.",
+ lintProject(
+ "AndroidManifest.xml",
+ "apicheck/minsdk1.xml=>AndroidManifest.xml",
+ "res/values/strings.xml"));
+ }
+
+
public void testAllowIgnore() throws Exception {
mEnabled = Collections.singleton(ManifestOrderDetector.ALLOW_BACKUP);
assertEquals(
diff --git a/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/ManifestOrderDetector.java b/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/ManifestOrderDetector.java
index 16bca84..e0cd15b 100644
--- a/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/ManifestOrderDetector.java
+++ b/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/ManifestOrderDetector.java
@@ -449,7 +449,8 @@ public class ManifestOrderDetector extends Detector implements Detector.XmlScann
if (tag.equals(TAG_APPLICATION)) {
mSeenApplication = true;
if (!element.hasAttributeNS(ANDROID_URI, SdkConstants.ATTR_ALLOW_BACKUP)
- && context.isEnabled(ALLOW_BACKUP)) {
+ && context.isEnabled(ALLOW_BACKUP)
+ && context.getMainProject().getMinSdk() >= 4) {
context.report(ALLOW_BACKUP, element, context.getLocation(element),
"Should explicitly set android:allowBackup to true or " +
"false (it's true by default, and that can have some security " +
diff --git a/templates/projects/NewAndroidApplication/root/AndroidManifest.xml.ftl b/templates/projects/NewAndroidApplication/root/AndroidManifest.xml.ftl
index 80895b3..390a9da 100644
--- a/templates/projects/NewAndroidApplication/root/AndroidManifest.xml.ftl
+++ b/templates/projects/NewAndroidApplication/root/AndroidManifest.xml.ftl
@@ -3,9 +3,9 @@
android:versionCode="1"
android:versionName="1.0">
- <uses-sdk android:minSdkVersion="${minApi}" android:targetSdkVersion="${targetApi}" />
+ <uses-sdk android:minSdkVersion="${minApi}" <#if buildApi gte 4>android:targetSdkVersion="${targetApi}" </#if>/>
- <application android:allowBackup="true"
+ <application <#if minApiLevel gte 4 && buildApi gte 4>android:allowBackup="true"</#if>
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"<#if baseTheme != "none">
android:theme="@style/AppTheme"</#if>>