diff --git a/packages/SystemUI/docs/broadcasts.md b/packages/SystemUI/docs/broadcasts.md index 8ec20f5689ff4..e709278db43ab 100644 --- a/packages/SystemUI/docs/broadcasts.md +++ b/packages/SystemUI/docs/broadcasts.md @@ -62,17 +62,17 @@ Acquire the dispatcher by using `@Inject` to obtain a `BroadcastDispatcher`. The * @param executor An executor to dispatch [BroadcastReceiver.onReceive]. Pass null to use an * executor in the main thread (default). * @param user A user handle to determine which broadcast should be dispatched to this receiver. - * By default, it is the user of the context (system user in SystemUI). + * Pass `null` to use the user of the context (system user in SystemUI). * @throws IllegalArgumentException if the filter has other constraints that are not actions or * categories or the filter has no actions. */ @JvmOverloads -fun registerReceiver( - BroadcastReceiver, - IntentFilter, - Executor? = context.mainExecutor, - UserHandle = context.user -) { +open fun registerReceiver( + receiver: BroadcastReceiver, + filter: IntentFilter, + executor: Executor? = null, + user: UserHandle? = null +) ``` All subscriptions are done with the same overloaded method. As specified in the doc, in order to pass a `UserHandle` with the default `Executor`, pass `null` for the `Executor`. diff --git a/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt b/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt index 83de3243602be..eea168ad16b3d 100644 --- a/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt +++ b/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt @@ -112,7 +112,7 @@ open class BroadcastDispatcher constructor ( * @param executor An executor to dispatch [BroadcastReceiver.onReceive]. Pass null to use an * executor in the main thread (default). * @param user A user handle to determine which broadcast should be dispatched to this receiver. - * By default, it is the user of the context (system user in SystemUI). + * Pass `null` to use the user of the context (system user in SystemUI). * @throws IllegalArgumentException if the filter has other constraints that are not actions or * categories or the filter has no actions. */ @@ -120,13 +120,17 @@ open class BroadcastDispatcher constructor ( open fun registerReceiver( receiver: BroadcastReceiver, filter: IntentFilter, - executor: Executor? = context.mainExecutor, - user: UserHandle = context.user + executor: Executor? = null, + user: UserHandle? = null ) { checkFilter(filter) this.handler - .obtainMessage(MSG_ADD_RECEIVER, - ReceiverData(receiver, filter, executor ?: context.mainExecutor, user)) + .obtainMessage(MSG_ADD_RECEIVER, ReceiverData( + receiver, + filter, + executor ?: context.mainExecutor, + user ?: context.user + )) .sendToTarget() } diff --git a/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt b/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt index da00e7e9518b7..1a78ca4074676 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt @@ -53,7 +53,7 @@ class FakeBroadcastDispatcher( receiver: BroadcastReceiver, filter: IntentFilter, executor: Executor?, - user: UserHandle + user: UserHandle? ) { registeredReceivers.add(receiver) }