Copy callback list to avoid crash

Change-Id: I66928a793a1712cdd753055a4d0457a94eb5588b
Fixes: 35591913
Test: Unlock ryu
This commit is contained in:
Jason Monk
2017-03-02 11:27:15 -05:00
parent 28cc166060
commit 1eb3d839e2

View File

@@ -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<Callback>(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