Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6ea42dcf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents b51d58e6 0116d1a2
Loading
Loading
Loading
Loading
+36 −2
Original line number Diff line number Diff line
@@ -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)
    }
}