summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Chan <chanm@google.com>2012-04-29 13:31:22 -0700
committerMichael Chan <chanm@google.com>2012-05-01 18:03:52 -0700
commitc3f54281b3b4a1646923a726c9a1731bd39324a0 (patch)
tree1b9133f3bded7358bf5de6cea87c0a2f669d928d
parent0332925aa9db8c4826327edd85030a4791b7a8e6 (diff)
downloadandroid_packages_providers_CalendarProvider-c3f54281b3b4a1646923a726c9a1731bd39324a0.tar.gz
android_packages_providers_CalendarProvider-c3f54281b3b4a1646923a726c9a1731bd39324a0.tar.bz2
android_packages_providers_CalendarProvider-c3f54281b3b4a1646923a726c9a1731bd39324a0.zip
Keep the device awake while we schedule the next alarm
Bug: 5777855 Change-Id: I59e97ce69e0dcbaf1b8eaa25407f2d3234140b98
-rw-r--r--src/com/android/providers/calendar/CalendarProvider2.java1
-rw-r--r--src/com/android/providers/calendar/CalendarReceiver.java10
2 files changed, 11 insertions, 0 deletions
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 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun
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.BroadcastReceiver;
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 @@ public class CalendarReceiver extends BroadcastReceiver {
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 @@ public class CalendarReceiver extends BroadcastReceiver {
removeScheduledAlarms(cr);
}
result.finish();
+ mWakeLock.release();
}
});
}