From 9d3aaa1035665b2e5b6c169debadd63e864af0da Mon Sep 17 00:00:00 2001 From: Olivier St-Onge Date: Wed, 29 May 2024 09:18:42 -0400 Subject: Prevent ConcurrentModificationException for IndividualSensorPrivacyControllerImpl Using ListenerSet instead of ArraySet as suggested by com.android.systemui.statusbar.policy.CallbackController Fix: 343290231 Test: manually using the sensor privacy tiles Test: presubmits Flag: EXEMPT bugfix Change-Id: I9c1ca7fb733b39181b405a85655357e8367a928b --- .../statusbar/policy/IndividualSensorPrivacyControllerImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java index 58b82f166623..da928a364984 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java @@ -32,6 +32,7 @@ import android.util.SparseBooleanArray; import androidx.annotation.NonNull; import com.android.internal.camera.flags.Flags; +import com.android.systemui.util.ListenerSet; import java.util.Set; @@ -43,7 +44,7 @@ public class IndividualSensorPrivacyControllerImpl implements IndividualSensorPr private final SparseBooleanArray mSoftwareToggleState = new SparseBooleanArray(); private final SparseBooleanArray mHardwareToggleState = new SparseBooleanArray(); private Boolean mRequiresAuthentication; - private final Set mCallbacks = new ArraySet<>(); + private final ListenerSet mCallbacks = new ListenerSet<>(); public IndividualSensorPrivacyControllerImpl( @NonNull SensorPrivacyManager sensorPrivacyManager) { @@ -115,7 +116,7 @@ public class IndividualSensorPrivacyControllerImpl implements IndividualSensorPr @Override public void addCallback(@NonNull Callback listener) { - mCallbacks.add(listener); + mCallbacks.addIfAbsent(listener); } @Override -- cgit v1.2.3-59-g8ed1b