Enforce constrainedWidth in date and icons

That way, the views will properly adapt their content to the space
available. In particular, VariableDateView will choose the best format
to use based on space.

Test: atest CombinedShadeHeaderConstraintsTest
Test: manual using large screen size and text size
Bug: 258083936
Change-Id: Idae918ba27f143ce29ffa6ca3b865e77bbcecff1
This commit is contained in:
Fabian Kozynski
2022-11-14 11:34:07 -05:00
parent 93535dc047
commit 8db8784b18
3 changed files with 21 additions and 0 deletions

View File

@@ -59,6 +59,7 @@
<Layout
android:layout_width="wrap_content"
android:layout_height="@dimen/new_qs_header_non_clickable_element_height"
app:layout_constrainedWidth="true"
app:layout_constraintHeight_min="@dimen/new_qs_header_non_clickable_element_height"
app:layout_constraintStart_toEndOf="@id/date"
app:layout_constraintEnd_toStartOf="@id/batteryRemainingIcon"

View File

@@ -51,6 +51,8 @@ object CombinedShadeHeadersConstraintManagerImpl : CombinedShadeHeadersConstrain
connect(R.id.statusIcons, ConstraintSet.START, R.id.date, ConstraintSet.END)
connect(R.id.privacy_container, ConstraintSet.START, R.id.date, ConstraintSet.END)
constrainWidth(R.id.statusIcons, ViewGroup.LayoutParams.WRAP_CONTENT)
constrainedWidth(R.id.date, true)
constrainedWidth(R.id.statusIcons, true)
}
)
}
@@ -92,6 +94,8 @@ object CombinedShadeHeadersConstraintManagerImpl : CombinedShadeHeadersConstrain
centerEnd,
ConstraintSet.END
)
constrainedWidth(R.id.date, true)
constrainedWidth(R.id.statusIcons, true)
},
qsConstraintsChanges = {
setGuidelineBegin(centerStart, offsetFromEdge)

View File

@@ -363,6 +363,22 @@ class CombinedShadeHeaderConstraintsTest : SysuiTestCase() {
}
}
@Test
fun testEmptyCutoutDateIconsAreConstrainedWidth() {
CombinedShadeHeadersConstraintManagerImpl.emptyCutoutConstraints()()
assertThat(qqsConstraint.getConstraint(R.id.date).layout.constrainedWidth).isTrue()
assertThat(qqsConstraint.getConstraint(R.id.statusIcons).layout.constrainedWidth).isTrue()
}
@Test
fun testCenterCutoutDateIconsAreConstrainedWidth() {
CombinedShadeHeadersConstraintManagerImpl.centerCutoutConstraints(false, 10)()
assertThat(qqsConstraint.getConstraint(R.id.date).layout.constrainedWidth).isTrue()
assertThat(qqsConstraint.getConstraint(R.id.statusIcons).layout.constrainedWidth).isTrue()
}
private operator fun ConstraintsChanges.invoke() {
qqsConstraintsChanges?.invoke(qqsConstraint)
qsConstraintsChanges?.invoke(qsConstraint)