diff options
author | Tor Norbye <tnorbye@google.com> | 2012-12-10 10:29:41 -0800 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2012-12-10 10:47:11 -0800 |
commit | f8d65e59e16e22a71eb915e3b200c7482f647776 (patch) | |
tree | 0ff2832bf5bcfc1bce71b5222a88e5229a0bc8dc | |
parent | 71074e376d3d3c9bc52832815f0e2f8b2bd33fea (diff) | |
download | sdk-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
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>> |