Keep the device awake while we schedule the next alarm
Bug: 5777855
Change-Id: I59e97ce69e0dcbaf1b8eaa25407f2d3234140b98
diff --git a/src/com/android/providers/calendar/CalendarProvider2.java b/src/com/android/providers/calendar/CalendarProvider2.java
index 7174d10..4b0d547 100644
--- a/src/com/android/providers/calendar/CalendarProvider2.java
+++ b/src/com/android/providers/calendar/CalendarProvider2.java
@@ -4798,6 +4798,7 @@
sCalendarAlertsProjectionMap.put(CalendarAlerts.BEGIN, "begin");
sCalendarAlertsProjectionMap.put(CalendarAlerts.END, "end");
sCalendarAlertsProjectionMap.put(CalendarAlerts.ALARM_TIME, "alarmTime");
+ sCalendarAlertsProjectionMap.put(CalendarAlerts.NOTIFY_TIME, "notifyTime");
sCalendarAlertsProjectionMap.put(CalendarAlerts.STATE, "state");
sCalendarAlertsProjectionMap.put(CalendarAlerts.MINUTES, "minutes");
diff --git a/src/com/android/providers/calendar/CalendarReceiver.java b/src/com/android/providers/calendar/CalendarReceiver.java
index 6fccbb9..5f1acd3 100644
--- a/src/com/android/providers/calendar/CalendarReceiver.java
+++ b/src/com/android/providers/calendar/CalendarReceiver.java
@@ -20,6 +20,7 @@
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
+import android.os.PowerManager;
import android.util.Log;
import java.util.concurrent.ExecutorService;
@@ -37,9 +38,17 @@
static final String SCHEDULE = "com.android.providers.calendar.SCHEDULE_ALARM";
private final ExecutorService executor = Executors.newCachedThreadPool();
+ private PowerManager.WakeLock mWakeLock;
@Override
public void onReceive(Context context, Intent intent) {
+ if (mWakeLock == null) {
+ PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+ mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CalendarReceiver_Provider");
+ mWakeLock.setReferenceCounted(true);
+ }
+ mWakeLock.acquire();
+
final String action = intent.getAction();
final ContentResolver cr = context.getContentResolver();
final PendingResult result = goAsync();
@@ -53,6 +62,7 @@
removeScheduledAlarms(cr);
}
result.finish();
+ mWakeLock.release();
}
});
}