diff options
| author | 2021-09-16 16:05:43 +0000 | |
|---|---|---|
| committer | 2021-09-16 16:05:43 +0000 | |
| commit | 6ea42dcf9f6d3c4f53d75ec2987ed35e7bfdd1de (patch) | |
| tree | 4ea072589acd5baa73291699be3320cccb3584b7 | |
| parent | b51d58e6fdc6d9d297e8a2e10681bd31589f89bc (diff) | |
| parent | 0116d1a207cec2ac71684b1e2e6c8219fd0685a3 (diff) | |
Merge "Controls Activity - Always close when keyguard becomes active" into sc-qpr1-dev
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt index 4104e3184efd..46a03e809b06 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt @@ -16,6 +16,10 @@ package com.android.systemui.controls.ui +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.os.Bundle import android.view.View import android.view.ViewGroup @@ -23,18 +27,25 @@ import android.view.WindowInsets import android.view.WindowInsets.Type import com.android.systemui.R +import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.controls.management.ControlsAnimations import com.android.systemui.util.LifecycleActivity import javax.inject.Inject /** - * Displays Device Controls inside an activity + * Displays Device Controls inside an activity. This activity is available to be displayed over the + * lockscreen if the user has allowed it via + * [android.provider.Settings.Secure.LOCKSCREEN_SHOW_CONTROLS]. This activity will be + * destroyed on SCREEN_OFF events, due to issues with occluded activities over lockscreen as well as + * user expectations for the activity to not continue running. */ class ControlsActivity @Inject constructor( - private val uiController: ControlsUiController + private val uiController: ControlsUiController, + private val broadcastDispatcher: BroadcastDispatcher ) : LifecycleActivity() { private lateinit var parent: ViewGroup + private lateinit var broadcastReceiver: BroadcastReceiver override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -62,6 +73,8 @@ class ControlsActivity @Inject constructor( WindowInsets.CONSUMED } } + + initBroadcastReceiver() } override fun onResume() { @@ -83,4 +96,25 @@ class ControlsActivity @Inject constructor( uiController.hide() } + + override fun onDestroy() { + super.onDestroy() + + broadcastDispatcher.unregisterReceiver(broadcastReceiver) + } + + private fun initBroadcastReceiver() { + broadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + val action = intent.getAction() + if (Intent.ACTION_SCREEN_OFF.equals(action)) { + finish() + } + } + } + + val filter = IntentFilter() + filter.addAction(Intent.ACTION_SCREEN_OFF) + broadcastDispatcher.registerReceiver(broadcastReceiver, filter) + } } |