From de6a41b71b665e93bb03e0e0b416df8cc81eba1c Mon Sep 17 00:00:00 2001 From: Evan Severson Date: Mon, 7 Mar 2022 11:24:03 -0800 Subject: [PATCH] Add broadcast receiver for FGS manager dialog Test: adb shell am broadcast \ -a android.intent.action.SHOW_FOREGROUND_SERVICE_MANAGER \ --receiver-include-background Fixes: 223224237 Change-Id: I1b0dfe05e4cc94411cc7c4532447ea837f8924ec --- .../android/systemui/qs/FgsManagerController.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt b/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt index 89735c3a547d4..ea4ad1be27c67 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt @@ -18,7 +18,10 @@ package com.android.systemui.qs import android.app.IActivityManager import android.app.IForegroundServiceObserver +import android.content.BroadcastReceiver import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.content.pm.PackageManager import android.graphics.drawable.Drawable import android.os.IBinder @@ -42,6 +45,7 @@ import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.TASK_MANAGER_ import com.android.systemui.Dumpable import com.android.systemui.R import com.android.systemui.animation.DialogLaunchAnimator +import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main @@ -67,6 +71,7 @@ class FgsManagerController @Inject constructor( private val packageManager: PackageManager, private val deviceConfigProxy: DeviceConfigProxy, private val dialogLaunchAnimator: DialogLaunchAnimator, + private val broadcastDispatcher: BroadcastDispatcher, private val dumpManager: DumpManager ) : IForegroundServiceObserver.Stub(), Dumpable { @@ -125,6 +130,18 @@ class FgsManagerController @Inject constructor( dumpManager.registerDumpable(this) + broadcastDispatcher.registerReceiver( + object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == Intent.ACTION_SHOW_FOREGROUND_SERVICE_MANAGER) { + showDialog(null) + } + } + }, + IntentFilter(Intent.ACTION_SHOW_FOREGROUND_SERVICE_MANAGER), + executor = mainExecutor, + flags = Context.RECEIVER_NOT_EXPORTED) + initialized = true } }