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
This commit is contained in:
Michael Groover
2022-01-20 10:05:41 -08:00
parent 900d7785a0
commit 16ee1da74e
2 changed files with 3 additions and 2 deletions

View File

@@ -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)
}

View File

@@ -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")
}
}