Fix fatal exception in FakeBroadcastReceiver.

It seems like an exception is thrown because ArraySet is not
thread-safe.

Use a synchronized hash set for the receivers.

Fixes: 261099639
Test: atest KeyguardQuickAffordanceProviderTest
Change-Id: I39c43bb2d5dbdc6705b5dec4b362d75189c136d9
This commit is contained in:
Aaron Liu
2022-12-01 18:48:18 -08:00
parent e7aef726bb
commit 8b5178beac

View File

@@ -22,12 +22,12 @@ import android.content.IntentFilter
import android.os.Handler
import android.os.Looper
import android.os.UserHandle
import android.util.ArraySet
import android.util.Log
import com.android.systemui.SysuiTestableContext
import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger
import com.android.systemui.dump.DumpManager
import com.android.systemui.settings.UserTracker
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.Executor
class FakeBroadcastDispatcher(
@@ -50,7 +50,7 @@ class FakeBroadcastDispatcher(
PendingRemovalStore(logger)
) {
val registeredReceivers = ArraySet<BroadcastReceiver>()
val registeredReceivers: MutableSet<BroadcastReceiver> = ConcurrentHashMap.newKeySet()
override fun registerReceiverWithHandler(
receiver: BroadcastReceiver,