Merge "Show battery percentage in QS header" into udc-dev

This commit is contained in:
Shawn Lee
2023-06-15 17:29:59 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 15 deletions

View File

@@ -39,19 +39,12 @@ constructor(
* [cutout]. We don't show battery estimation in qqs header on the devices with center cutout. * [cutout]. We don't show battery estimation in qqs header on the devices with center cutout.
* The result might be null when the battery icon is invisible during the qs-qqs transition * The result might be null when the battery icon is invisible during the qs-qqs transition
* animation. * animation.
*
* Note: short-circuiting this value until a comprehensive fix for b/282044659 is finished.
*/ */
@BatteryMeterView.BatteryPercentMode @BatteryMeterView.BatteryPercentMode
fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? = fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? =
when { BatteryMeterView.MODE_ON
qsExpandedFraction > fadeInStartFraction -> BatteryMeterView.MODE_ESTIMATE
qsExpandedFraction < fadeOutCompleteFraction ->
if (hasCenterCutout(cutout)) {
BatteryMeterView.MODE_ON
} else {
BatteryMeterView.MODE_ESTIMATE
}
else -> null
}
fun updateResources() { fun updateResources() {
fadeInStartFraction = fadeInStartFraction =

View File

@@ -63,36 +63,40 @@ class QsBatteryModeControllerTest : SysuiTestCase() {
@Test @Test
fun returnsMODE_ESTIMATEforQsWithCenterCutout() { fun returnsMODE_ESTIMATEforQsWithCenterCutout() {
// TODO (b/282044659): revert this test to previous behavior
assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction())) assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction()))
.isEqualTo(BatteryMeterView.MODE_ESTIMATE) .isEqualTo(BatteryMeterView.MODE_ON)
} }
@Test @Test
fun returnsMODE_ONforQqsWithCornerCutout() { fun returnsMODE_ONforQqsWithCornerCutout() {
whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true) whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true)
// TODO (b/282044659): revert this test to previous behavior
assertThat( assertThat(
controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.prevFrameToFraction()) controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.prevFrameToFraction())
) )
.isEqualTo(BatteryMeterView.MODE_ESTIMATE) .isEqualTo(BatteryMeterView.MODE_ON)
} }
@Test @Test
fun returnsMODE_ESTIMATEforQsWithCornerCutout() { fun returnsMODE_ESTIMATEforQsWithCornerCutout() {
whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true) whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true)
// TODO (b/282044659): revert this test to previous behavior
assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction())) assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction()))
.isEqualTo(BatteryMeterView.MODE_ESTIMATE) .isEqualTo(BatteryMeterView.MODE_ON)
} }
@Test @Test
fun returnsNullInBetween() { fun returnsNullInBetween() {
// TODO (b/282044659): revert this test to previous behavior
assertThat( assertThat(
controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.nextFrameToFraction()) controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.nextFrameToFraction())
) )
.isNull() .isEqualTo(BatteryMeterView.MODE_ON)
assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.prevFrameToFraction())) assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.prevFrameToFraction()))
.isNull() .isEqualTo(BatteryMeterView.MODE_ON)
} }
private fun Int.prevFrameToFraction(): Float = (this - 1) / MOTION_LAYOUT_MAX_FRAME.toFloat() private fun Int.prevFrameToFraction(): Float = (this - 1) / MOTION_LAYOUT_MAX_FRAME.toFloat()