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
This commit is contained in:
Evan Severson
2022-03-07 11:24:03 -08:00
parent ba688138fb
commit de6a41b71b

View File

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