Loading src/com/android/deskclock/AlarmInitReceiver.java +2 −2 Original line number Diff line number Diff line Loading @@ -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))) { Loading src/com/android/deskclock/provider/AlarmInstance.java +28 −0 Original line number Diff line number Diff line Loading @@ -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; Loading src/com/android/deskclock/settings/ScreensaverSettingsActivity.java +4 −1 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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); } Loading Loading
src/com/android/deskclock/AlarmInitReceiver.java +2 −2 Original line number Diff line number Diff line Loading @@ -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))) { Loading
src/com/android/deskclock/provider/AlarmInstance.java +28 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
src/com/android/deskclock/settings/ScreensaverSettingsActivity.java +4 −1 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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); } Loading