summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt13
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt14
2 files changed, 15 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt b/packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt
index ff57a73a8d6d..3eec7fa0e84a 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt
@@ -39,12 +39,19 @@ constructor(
* [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
* animation.
- *
- * Note: short-circuiting this value until a comprehensive fix for b/282044659 is finished.
*/
@BatteryMeterView.BatteryPercentMode
fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? =
- BatteryMeterView.MODE_ON
+ when {
+ qsExpandedFraction > fadeInStartFraction -> BatteryMeterView.MODE_ESTIMATE
+ qsExpandedFraction < fadeOutCompleteFraction ->
+ if (hasCenterCutout(cutout)) {
+ BatteryMeterView.MODE_ON
+ } else {
+ BatteryMeterView.MODE_ESTIMATE
+ }
+ else -> null
+ }
fun updateResources() {
fadeInStartFraction =
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt
index b028f1fd3664..d421acac2daa 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt
@@ -63,40 +63,36 @@ class QsBatteryModeControllerTest : SysuiTestCase() {
@Test
fun returnsMODE_ESTIMATEforQsWithCenterCutout() {
- // TODO (b/282044659): revert this test to previous behavior
assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction()))
- .isEqualTo(BatteryMeterView.MODE_ON)
+ .isEqualTo(BatteryMeterView.MODE_ESTIMATE)
}
@Test
fun returnsMODE_ONforQqsWithCornerCutout() {
whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true)
- // TODO (b/282044659): revert this test to previous behavior
assertThat(
controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.prevFrameToFraction())
)
- .isEqualTo(BatteryMeterView.MODE_ON)
+ .isEqualTo(BatteryMeterView.MODE_ESTIMATE)
}
@Test
fun returnsMODE_ESTIMATEforQsWithCornerCutout() {
whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true)
- // TODO (b/282044659): revert this test to previous behavior
assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction()))
- .isEqualTo(BatteryMeterView.MODE_ON)
+ .isEqualTo(BatteryMeterView.MODE_ESTIMATE)
}
@Test
fun returnsNullInBetween() {
- // TODO (b/282044659): revert this test to previous behavior
assertThat(
controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.nextFrameToFraction())
)
- .isEqualTo(BatteryMeterView.MODE_ON)
+ .isNull()
assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.prevFrameToFraction()))
- .isEqualTo(BatteryMeterView.MODE_ON)
+ .isNull()
}
private fun Int.prevFrameToFraction(): Float = (this - 1) / MOTION_LAYOUT_MAX_FRAME.toFloat()