From 1eb3d839e2fefda4e5e365d79bba60c7a798a070 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 2 Mar 2017 11:27:15 -0500 Subject: [PATCH] Copy callback list to avoid crash Change-Id: I66928a793a1712cdd753055a4d0457a94eb5588b Fixes: 35591913 Test: Unlock ryu --- .../systemui/statusbar/policy/KeyguardMonitorImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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