From f1be8693bf32c4f26ce0f1e05d0444816e5d5e19 Mon Sep 17 00:00:00 2001 From: Nicolo' Mazzucato Date: Fri, 9 Dec 2022 15:01:39 +0000 Subject: [PATCH] Fix large screen QS header The problem happened when going form the expanded clock layout (when QS are fully expanded), to the large screen transition layout. This fix sets the header transition to start when on large screens. Without doing this, the transition was staying at the latest progress in the previous constraintSet. Bug: 261791489 Test: presubmits + tested locally Change-Id: Ice698e169b1328c3a83189c268dbac820b564cf7 --- .../res/xml/combined_qs_header_scene.xml | 5 +++++ .../shade/LargeScreenShadeHeaderController.kt | 21 +++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/res/xml/combined_qs_header_scene.xml b/packages/SystemUI/res/xml/combined_qs_header_scene.xml index c32de70771d08..38c1640233150 100644 --- a/packages/SystemUI/res/xml/combined_qs_header_scene.xml +++ b/packages/SystemUI/res/xml/combined_qs_header_scene.xml @@ -124,6 +124,11 @@ + + diff --git a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt index b511b5463cbfe..7fc0a5f6d4bf3 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt @@ -101,6 +101,8 @@ class LargeScreenShadeHeaderController @Inject constructor( @VisibleForTesting internal val HEADER_TRANSITION_ID = R.id.header_transition @VisibleForTesting + internal val LARGE_SCREEN_HEADER_TRANSITION_ID = R.id.large_screen_header_transition + @VisibleForTesting internal val QQS_HEADER_CONSTRAINT = R.id.qqs_header_constraint @VisibleForTesting internal val QS_HEADER_CONSTRAINT = R.id.qs_header_constraint @@ -429,8 +431,11 @@ class LargeScreenShadeHeaderController @Inject constructor( } header as MotionLayout if (largeScreenActive) { - header.getConstraintSet(LARGE_SCREEN_HEADER_CONSTRAINT).applyTo(header) + logInstantEvent("Large screen constraints set") + header.setTransition(HEADER_TRANSITION_ID) + header.transitionToStart() } else { + logInstantEvent("Small screen constraints set") header.setTransition(HEADER_TRANSITION_ID) header.transitionToStart() updatePosition() @@ -440,15 +445,19 @@ class LargeScreenShadeHeaderController @Inject constructor( private fun updatePosition() { if (header is MotionLayout && !largeScreenActive && visible) { - Trace.instantForTrack( - TRACE_TAG_APP, - "LargeScreenHeaderController - updatePosition", - "position: $qsExpandedFraction" - ) + logInstantEvent("updatePosition: $qsExpandedFraction") header.progress = qsExpandedFraction } } + private fun logInstantEvent(message: String) { + Trace.instantForTrack( + TRACE_TAG_APP, + "LargeScreenHeaderController", + message + ) + } + private fun updateListeners() { qsCarrierGroupController.setListening(visible) if (visible) {