summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java23
1 files changed, 5 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
index 0c5472f0ecfb..16334d3c9860 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
@@ -41,15 +41,14 @@ import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
-import com.android.systemui.log.core.LogLevel;
import com.android.systemui.res.R;
import com.android.systemui.user.domain.interactor.SelectedUserInteractor;
import dagger.Lazy;
import java.io.PrintWriter;
-import java.util.ArrayList;
import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
import javax.inject.Inject;
@@ -63,7 +62,8 @@ public class KeyguardStateControllerImpl implements KeyguardStateController, Dum
private static final boolean DEBUG_AUTH_WITH_ADB = false;
private static final String AUTH_BROADCAST_KEY = "debug_trigger_auth";
- private final ArrayList<Callback> mCallbacks = new ArrayList<>();
+ private final ConcurrentHashMap.KeySetView<Callback, Boolean> mCallbacks =
+ ConcurrentHashMap.<Callback>newKeySet();
private final Context mContext;
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
private final LockPatternUtils mLockPatternUtils;
@@ -157,9 +157,7 @@ public class KeyguardStateControllerImpl implements KeyguardStateController, Dum
@Override
public void addCallback(@NonNull Callback callback) {
Objects.requireNonNull(callback, "Callback must not be null. b/128895449");
- if (!mCallbacks.contains(callback)) {
- mCallbacks.add(callback);
- }
+ mCallbacks.add(callback);
}
@Override
@@ -221,18 +219,7 @@ public class KeyguardStateControllerImpl implements KeyguardStateController, Dum
}
private void invokeForEachCallback(Consumer<Callback> consumer) {
- // Copy the list to allow removal during callback.
- ArrayList<Callback> copyOfCallbacks = new ArrayList<>(mCallbacks);
- for (int i = 0; i < copyOfCallbacks.size(); i++) {
- Callback callback = copyOfCallbacks.get(i);
- // Temporary fix for b/315731775, callback is null even though only non-null callbacks
- // are added to the list by addCallback
- if (callback != null) {
- consumer.accept(callback);
- } else {
- mLogger.log("KeyguardStateController callback is null", LogLevel.DEBUG);
- }
- }
+ mCallbacks.forEach(consumer);
}
private void notifyUnlockedChanged() {