diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-09-22 05:18:28 -0700 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2016-09-22 05:18:28 -0700 |
commit | a537fe8cdff6487dd1407f156ab31aedb6a0682d (patch) | |
tree | 7b636627a438dc7ed5b39ece4d0fb51046e3df56 | |
parent | 56cac009214f23e16ee8556bf969308d2fd3b90f (diff) | |
parent | 335a32dcc3227bd5aa7a92a35e0a8a12be9d3a59 (diff) | |
download | android_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
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); } |