diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java index 821e6358972c4..a87b50a4a8dfe 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java @@ -116,19 +116,20 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback } private void notifyKeyguardChanged() { - mCallbacks.forEach(Callback::onKeyguardShowingChanged); + // Copy the list to allow removal during callback. + new ArrayList(mCallbacks).forEach(Callback::onKeyguardShowingChanged); } public void notifyKeyguardFadingAway(long delay, long fadeoutDuration) { mKeyguardFadingAway = true; mKeyguardFadingAwayDelay = delay; mKeyguardFadingAwayDuration = fadeoutDuration; - mCallbacks.forEach(Callback::onKeyguardShowingChanged); + notifyKeyguardChanged(); } public void notifyKeyguardDoneFading() { mKeyguardFadingAway = false; - mCallbacks.forEach(Callback::onKeyguardShowingChanged); + notifyKeyguardChanged(); } @Override