Merge "Controls Activity - Always close when keyguard becomes active" into sc-qpr1-dev

This commit is contained in:
TreeHugger Robot
2021-09-16 16:05:43 +00:00
committed by Android (Google) Code Review

View File

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