summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-09-22 05:18:28 -0700
committerLinux Build Service Account <lnxbuild@localhost>2016-09-22 05:18:28 -0700
commita537fe8cdff6487dd1407f156ab31aedb6a0682d (patch)
tree7b636627a438dc7ed5b39ece4d0fb51046e3df56
parent56cac009214f23e16ee8556bf969308d2fd3b90f (diff)
parent335a32dcc3227bd5aa7a92a35e0a8a12be9d3a59 (diff)
downloadandroid_packages_apps_DeskClock-a537fe8cdff6487dd1407f156ab31aedb6a0682d.tar.gz
android_packages_apps_DeskClock-a537fe8cdff6487dd1407f156ab31aedb6a0682d.tar.bz2
android_packages_apps_DeskClock-a537fe8cdff6487dd1407f156ab31aedb6a0682d.zip
Merge 335a32dcc3227bd5aa7a92a35e0a8a12be9d3a59 on remote branch
Change-Id: I7d611b413166cf68650d5b7f773d26b2e0803039
-rw-r--r--src/com/android/deskclock/AlarmInitReceiver.java4
-rwxr-xr-xsrc/com/android/deskclock/provider/AlarmInstance.java28
-rw-r--r--src/com/android/deskclock/settings/ScreensaverSettingsActivity.java5
3 files changed, 34 insertions, 3 deletions
diff --git a/src/com/android/deskclock/AlarmInitReceiver.java b/src/com/android/deskclock/AlarmInitReceiver.java
index 0fe4a9dbf..467f85825 100644
--- a/src/com/android/deskclock/AlarmInitReceiver.java
+++ b/src/com/android/deskclock/AlarmInitReceiver.java
@@ -125,8 +125,8 @@ public class AlarmInitReceiver extends BroadcastReceiver {
// 1. Normal mode: just get next firing alarm and pass it to alarm activity
// 2. Encryption mode: We need to create an alarm as there is no firing alarm
// in this mode.
- if (ACTION_POWER_OFF_ALARM.equals(action)) {
- AlarmInstance instance = AlarmStateManager.getNextFiringAlarm(context);
+ if (Intent.ACTION_BOOT_COMPLETED.equals(action) && isAlarmBoot) {
+ AlarmInstance instance = AlarmInstance.getFirstAlarmInstance(cr);
String cryptState = SystemProperties.get(DECRYPT_PROP);
if (instance == null && (ENCRYPTING_STATE.equals(cryptState) ||
ENCRYPTED_STATE.equals(cryptState))) {
diff --git a/src/com/android/deskclock/provider/AlarmInstance.java b/src/com/android/deskclock/provider/AlarmInstance.java
index caa05412d..e837d3316 100755
--- a/src/com/android/deskclock/provider/AlarmInstance.java
+++ b/src/com/android/deskclock/provider/AlarmInstance.java
@@ -284,6 +284,34 @@ public final class AlarmInstance implements ClockContract.InstancesColumns {
}
}
+ /**
+ * Get first alarm instance of power off alarm which is the closest missed alarm.
+ *
+ * @param contentResolver to access the content provider
+ */
+ public static AlarmInstance getFirstAlarmInstance(ContentResolver contentResolver) {
+ List<AlarmInstance> alertAlarms = getInstances(contentResolver, null);
+ long currentTime = System.currentTimeMillis();
+
+ AlarmInstance firstAlarm = null;
+ long closestMissAlarmElapse = 0;
+
+ for (AlarmInstance ai : alertAlarms) {
+ long time = currentTime - ai.getAlarmTime().getTimeInMillis();
+
+ if (time < 0) {
+ continue;
+ }
+
+ if (firstAlarm == null || closestMissAlarmElapse > time) {
+ firstAlarm = ai;
+ closestMissAlarmElapse = time;
+ }
+ }
+
+ return firstAlarm;
+ }
+
// Public fields
public long mId;
public int mYear;
diff --git a/src/com/android/deskclock/settings/ScreensaverSettingsActivity.java b/src/com/android/deskclock/settings/ScreensaverSettingsActivity.java
index 3f643799a..f811b385f 100644
--- a/src/com/android/deskclock/settings/ScreensaverSettingsActivity.java
+++ b/src/com/android/deskclock/settings/ScreensaverSettingsActivity.java
@@ -24,7 +24,7 @@ import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import com.android.deskclock.R;
-
+import com.android.deskclock.Utils;
/**
* Settings for Clock Daydream
*/
@@ -58,6 +58,9 @@ public final class ScreensaverSettingsActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (Utils.isNOrLater()) {
+ getPreferenceManager().setStorageDeviceProtected();
+ }
addPreferencesFromResource(R.xml.dream_settings);
}