summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Varun Shah <varunshah@google.com> 2020-12-29 15:24:43 -0800
committer android-build-team Robot <android-build-team-robot@google.com> 2021-01-09 01:49:21 +0000
commite39e55449455c728adcb8e528d21bee50b98c4b3 (patch)
tree04e79f08d15a60c42079f02ec57f20b5eebe4766
parentb18f2f5c66b83403ca3457f7c8283489c4f0a5dd (diff)
DO NOT MERGE: Disable StrictMode VM Policy check.
Disable the VM policy violation for intents that contain a content URI but don't have FLAG_GRANT_URI_PERMISSION when scheduling alarms. Fixes: 160426113 Test: atest CalendarProvider2Test Change-Id: If6e4a03609fc3d03dde66bcaa3136b23662ccaeb (cherry picked from commit 224822ecafdf09a3a2cda11d95645f3056ab58dc) (cherry picked from commit f20d333adacbf0d0876161f739a6e9f9de1de56c)
-rw-r--r--core/java/android/provider/CalendarContract.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/java/android/provider/CalendarContract.java b/core/java/android/provider/CalendarContract.java
index 17fae1cafe62..5e3f852229b7 100644
--- a/core/java/android/provider/CalendarContract.java
+++ b/core/java/android/provider/CalendarContract.java
@@ -39,6 +39,7 @@ import android.database.Cursor;
import android.database.DatabaseUtils;
import android.net.Uri;
import android.os.RemoteException;
+import android.os.StrictMode;
import android.text.format.DateUtils;
import android.text.format.TimeMigrationUtils;
import android.util.Log;
@@ -2618,7 +2619,13 @@ public final class CalendarContract {
intent.setData(ContentUris.withAppendedId(CalendarContract.CONTENT_URI, alarmTime));
intent.putExtra(ALARM_TIME, alarmTime);
intent.setFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
+
+ // Disable strict mode VM policy violations temporarily for intents that contain a
+ // content URI but don't have FLAG_GRANT_READ_URI_PERMISSION.
+ StrictMode.VmPolicy oldVmPolicy = StrictMode.allowVmViolations();
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
+ StrictMode.setVmPolicy(oldVmPolicy);
+
manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmTime, pi);
}