diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java | 23 |
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() { |