Make NightDisplayService robust to early alarms
am: 4346f63dbf
Change-Id: I0ab6422a9d3da3a673f23f3e217682710e8ae296
This commit is contained in:
@@ -20,6 +20,7 @@ import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.TypeEvaluator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.AlarmManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
@@ -361,13 +362,12 @@ public final class NightDisplayService extends SystemService
|
||||
if (setActivated) {
|
||||
mController.setActivated(activated);
|
||||
}
|
||||
updateNextAlarm();
|
||||
updateNextAlarm(mIsActivated, now);
|
||||
}
|
||||
|
||||
private void updateNextAlarm() {
|
||||
if (mIsActivated != null) {
|
||||
final Calendar now = Calendar.getInstance();
|
||||
final Calendar next = mIsActivated ? mEndTime.getDateTimeAfter(now)
|
||||
private void updateNextAlarm(@Nullable Boolean activated, @NonNull Calendar now) {
|
||||
if (activated != null) {
|
||||
final Calendar next = activated ? mEndTime.getDateTimeAfter(now)
|
||||
: mStartTime.getDateTimeAfter(now);
|
||||
mAlarmManager.setExact(AlarmManager.RTC, next.getTimeInMillis(), TAG, this, null);
|
||||
}
|
||||
@@ -396,10 +396,11 @@ public final class NightDisplayService extends SystemService
|
||||
|
||||
@Override
|
||||
public void onActivated(boolean activated) {
|
||||
final Calendar now = Calendar.getInstance();
|
||||
if (mIsActivated != null) {
|
||||
mLastActivatedTime = Calendar.getInstance();
|
||||
mLastActivatedTime = now;
|
||||
}
|
||||
updateNextAlarm();
|
||||
updateNextAlarm(activated, now);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user