From 16ee1da74ecf4b402810665ef2d6f5934404fe50 Mon Sep 17 00:00:00 2001 From: Michael Groover Date: Thu, 20 Jan 2022 10:05:41 -0800 Subject: [PATCH] Add required flags to registerReceiver calls in sysui Android T adds support to allow a runtime receiver to be registered as not exported, but to ensure apps can take advantage of this, calls to registerReceiver must specify a flag indicating whether the receiver should be exported for apps targeting T+ that are registering for non-system broadcasts. This commit adds the RECEIVER_EXPORTED flag to the receiver in DebugModeFilterProvider since this broadcast is expected from the shell for debuggable builds, and the RECEIVER_NOT_EXPORTED flag to the receiver in ControlsControllerImpl as this broadcast is sent from the local app. Bug: 161145287 Test: Build Change-Id: I346b6ce4e1dd4e4d2f07953c284c5a1809982e35 --- .../systemui/controls/controller/ControlsControllerImpl.kt | 3 ++- .../collection/provider/DebugModeFilterProvider.kt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt index 25985181364d4..8367e11280337 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt @@ -244,7 +244,8 @@ class ControlsControllerImpl @Inject constructor ( restoreFinishedReceiver, IntentFilter(BackupHelper.ACTION_RESTORE_FINISHED), PERMISSION_SELF, - null + null, + Context.RECEIVER_NOT_EXPORTED ) listingController.addCallback(listingCallback) } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/DebugModeFilterProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/DebugModeFilterProvider.kt index d16d76ad2f9ac..ab777de21e345 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/DebugModeFilterProvider.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/DebugModeFilterProvider.kt @@ -77,7 +77,7 @@ class DebugModeFilterProvider @Inject constructor( if (needsInitialization) { val filter = IntentFilter().apply { addAction(ACTION_SET_NOTIF_DEBUG_MODE) } val permission = NOTIF_DEBUG_MODE_PERMISSION - context.registerReceiver(mReceiver, filter, permission, null) + context.registerReceiver(mReceiver, filter, permission, null, Context.RECEIVER_EXPORTED) Log.d(TAG, "Registered: $mReceiver") } }