Merge "Update home controls activity to exit to dream" into tm-qpr-dev

This commit is contained in:
Lucas Silva
2022-10-19 14:18:03 +00:00
committed by Android (Google) Code Review
3 changed files with 32 additions and 5 deletions

View File

@@ -21,6 +21,8 @@ import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import android.os.RemoteException
import android.service.dreams.IDreamManager
import android.view.View
import android.view.ViewGroup
import android.view.WindowInsets
@@ -40,11 +42,13 @@ import javax.inject.Inject
*/
class ControlsActivity @Inject constructor(
private val uiController: ControlsUiController,
private val broadcastDispatcher: BroadcastDispatcher
private val broadcastDispatcher: BroadcastDispatcher,
private val dreamManager: IDreamManager,
) : ComponentActivity() {
private lateinit var parent: ViewGroup
private lateinit var broadcastReceiver: BroadcastReceiver
private var mExitToDream: Boolean = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -81,17 +85,36 @@ class ControlsActivity @Inject constructor(
parent = requireViewById<ViewGroup>(R.id.global_actions_controls)
parent.alpha = 0f
uiController.show(parent, { finish() }, this)
uiController.show(parent, { finishOrReturnToDream() }, this)
ControlsAnimations.enterAnimation(parent).start()
}
override fun onBackPressed() {
override fun onResume() {
super.onResume()
mExitToDream = intent.getBooleanExtra(ControlsUiController.EXIT_TO_DREAM, false)
}
fun finishOrReturnToDream() {
if (mExitToDream) {
try {
mExitToDream = false
dreamManager.dream()
return
} catch (e: RemoteException) {
// Fall through
}
}
finish()
}
override fun onBackPressed() {
finishOrReturnToDream()
}
override fun onStop() {
super.onStop()
mExitToDream = false
uiController.hide()
}
@@ -106,7 +129,8 @@ class ControlsActivity @Inject constructor(
broadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.getAction()
if (Intent.ACTION_SCREEN_OFF.equals(action)) {
if (action == Intent.ACTION_SCREEN_OFF ||
action == Intent.ACTION_DREAMING_STARTED) {
finish()
}
}
@@ -114,6 +138,7 @@ class ControlsActivity @Inject constructor(
val filter = IntentFilter()
filter.addAction(Intent.ACTION_SCREEN_OFF)
filter.addAction(Intent.ACTION_DREAMING_STARTED)
broadcastDispatcher.registerReceiver(broadcastReceiver, filter)
}
}

View File

@@ -27,6 +27,7 @@ interface ControlsUiController {
companion object {
public const val TAG = "ControlsUiController"
public const val EXTRA_ANIMATE = "extra_animate"
public const val EXIT_TO_DREAM = "extra_exit_to_dream"
}
fun show(parent: ViewGroup, onDismiss: Runnable, activityContext: Context)

View File

@@ -210,7 +210,8 @@ public class DreamHomeControlsComplication implements Complication {
final Intent intent = new Intent(mContext, ControlsActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(ControlsUiController.EXTRA_ANIMATE, true);
.putExtra(ControlsUiController.EXTRA_ANIMATE, true)
.putExtra(ControlsUiController.EXIT_TO_DREAM, true);
final ActivityLaunchAnimator.Controller controller =
v != null ? ActivityLaunchAnimator.Controller.fromView(v, null /* cujType */)