Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c4817da authored by SongFerngWang's avatar SongFerngWang
Browse files

Fix the broadcast receiver

The broadcast can't receive the intent action

Bug: 318310357
Bug: 298898436
Bug: 298891941
Test: build BroadcastReceiverFlowTest
Change-Id: I95eff5108d700447b4b8eb20561c88874b1d14d9
parent 376a6a6a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -37,10 +37,11 @@ private const val TAG = "BroadcastReceiverFlow"
fun Context.broadcastReceiverFlow(intentFilter: IntentFilter): Flow<Intent> = callbackFlow {
    val broadcastReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            Log.d(TAG, "onReceive: $intent")
            trySend(intent)
        }
    }
    registerReceiver(broadcastReceiver, intentFilter, Context.RECEIVER_NOT_EXPORTED)
    registerReceiver(broadcastReceiver, intentFilter, Context.RECEIVER_VISIBLE_TO_INSTANT_APPS)

    awaitClose { unregisterReceiver(broadcastReceiver) }
}.catch { e ->
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ class BroadcastReceiverFlowTest {

    private val context = mock<Context> {
        on {
            registerReceiver(any(), eq(INTENT_FILTER), eq(Context.RECEIVER_NOT_EXPORTED))
            registerReceiver(any(), eq(INTENT_FILTER), eq(Context.RECEIVER_VISIBLE_TO_INSTANT_APPS))
        } doAnswer {
            registeredBroadcastReceiver = it.arguments[0] as BroadcastReceiver
            null