summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt8
2 files changed, 8 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index d8fc21af9724..4755e2845587 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -134,7 +134,6 @@ import com.android.keyguard.ViewMediatorCallback;
import com.android.keyguard.mediator.ScreenOnCoordinator;
import com.android.systemui.CoreStartable;
import com.android.systemui.DejankUtils;
-import com.android.systemui.Dumpable;
import com.android.systemui.EventLogTags;
import com.android.systemui.animation.ActivityTransitionAnimator;
import com.android.systemui.animation.TransitionAnimator;
@@ -194,7 +193,6 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executor;
@@ -4129,14 +4127,14 @@ public class KeyguardViewMediator implements CoreStartable,
private void notifyLockNowCallback() {
List<LockNowCallback> callbacks;
+
synchronized (mLockNowCallbacks) {
- callbacks = new ArrayList<LockNowCallback>(mLockNowCallbacks);
+ callbacks = new ArrayList<>(mLockNowCallbacks);
mLockNowCallbacks.clear();
}
- Iterator<LockNowCallback> iter = callbacks.listIterator();
- while (iter.hasNext()) {
- LockNowCallback callback = iter.next();
- iter.remove();
+
+ for (int i = 0; i < callbacks.size(); i++) {
+ final LockNowCallback callback = callbacks.get(i);
if (callback.mUserId != mSelectedUserInteractor.getSelectedUserId()) {
Log.i(TAG, "Not notifying lockNowCallback due to user mismatch");
continue;
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
index 07a31e16384c..6c084038f328 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
@@ -139,18 +139,16 @@ constructor(
/** Notifies the callbacks that we've either locked, or decided not to lock. */
private fun notifyShowLockscreenCallbacks() {
var callbacks: MutableList<ShowLockscreenCallback>
+
synchronized(repository.showLockscreenCallbacks) {
callbacks = ArrayList(repository.showLockscreenCallbacks)
repository.showLockscreenCallbacks.clear()
}
- val iter: MutableIterator<ShowLockscreenCallback> = callbacks.listIterator()
- while (iter.hasNext()) {
- val callback = iter.next()
- iter.remove()
+ callbacks.forEach { callback ->
if (callback.userId != selectedUserInteractor.getSelectedUserId()) {
Log.i(TAG, "Not notifying lockNowCallback due to user mismatch")
- continue
+ return
}
Log.i(TAG, "Notifying lockNowCallback")
try {