Improve X axis labels in battery chart (1)

Support showing labels under the trapezoids instead of between the
trapezoids. For daily chart, the labels are under the trapezoids, for
hourly chart, the labels are between the trapezoids.

Test: manual
Bug: 239491373
Bug: 236101166
Change-Id: I2efb5192d4baafc7745ce269224639511848293e
This commit is contained in:
Zaiyue Xue
2022-07-26 21:08:13 +08:00
committed by YK Hung
parent eb1f39499b
commit e9ab2f5365
5 changed files with 74 additions and 23 deletions

View File

@@ -178,7 +178,8 @@ public final class BatteryChartPreferenceControllerV2Test {
verify(mHourlyChartView).setViewModel(new BatteryChartViewModel(
List.of(100, 97, 95),
List.of("8 am", "10 am", "12 pm"),
BatteryChartViewModel.SELECTED_INDEX_ALL));
BatteryChartViewModel.SELECTED_INDEX_ALL,
BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS));
}
@Test
@@ -193,7 +194,8 @@ public final class BatteryChartPreferenceControllerV2Test {
verify(mDailyChartView).setViewModel(new BatteryChartViewModel(
List.of(100, 83, 59, 41),
List.of("SAT", "SUN", "MON", "MON"),
BatteryChartViewModel.SELECTED_INDEX_ALL));
BatteryChartViewModel.SELECTED_INDEX_ALL,
BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS));
reset(mDailyChartView);
reset(mHourlyChartView);
@@ -204,12 +206,14 @@ public final class BatteryChartPreferenceControllerV2Test {
verify(mDailyChartView).setViewModel(new BatteryChartViewModel(
List.of(100, 83, 59, 41),
List.of("SAT", "SUN", "MON", "MON"),
0));
0,
BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS));
verify(mHourlyChartView).setViewModel(new BatteryChartViewModel(
List.of(100, 97, 95, 93, 91, 89, 87, 85, 83),
List.of("8 am", "10 am", "12 pm", "2 pm", "4 pm", "6 pm", "8 pm", "10 pm",
"12 am"),
BatteryChartViewModel.SELECTED_INDEX_ALL));
BatteryChartViewModel.SELECTED_INDEX_ALL,
BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS));
reset(mDailyChartView);
reset(mHourlyChartView);
@@ -221,12 +225,14 @@ public final class BatteryChartPreferenceControllerV2Test {
verify(mDailyChartView).setViewModel(new BatteryChartViewModel(
List.of(100, 83, 59, 41),
List.of("SAT", "SUN", "MON", "MON"),
1));
1,
BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS));
verify(mHourlyChartView).setViewModel(new BatteryChartViewModel(
List.of(83, 81, 79, 77, 75, 73, 71, 69, 67, 65, 63, 61, 59),
List.of("12 am", "2 am", "4 am", "6 am", "8 am", "10 am", "12 pm", "2 pm",
"4 pm", "6 pm", "8 pm", "10 pm", "12 am"),
6));
6,
BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS));
reset(mDailyChartView);
reset(mHourlyChartView);
@@ -239,12 +245,14 @@ public final class BatteryChartPreferenceControllerV2Test {
verify(mDailyChartView).setViewModel(new BatteryChartViewModel(
List.of(100, 83, 59, 41),
List.of("SAT", "SUN", "MON", "MON"),
2));
2,
BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS));
verify(mHourlyChartView).setViewModel(new BatteryChartViewModel(
List.of(59, 57, 55, 53, 51, 49, 47, 45, 43, 41),
List.of("12 am", "2 am", "4 am", "6 am", "8 am", "10 am", "12 pm", "2 pm",
"4 pm", "6 pm"),
BatteryChartViewModel.SELECTED_INDEX_ALL));
BatteryChartViewModel.SELECTED_INDEX_ALL,
BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS));
}
@Test

View File

@@ -104,7 +104,8 @@ public final class BatteryChartViewV2Test {
final int originalSelectedIndex = 2;
mBatteryChartView.setViewModel(
new BatteryChartViewModel(List.of(90, 80, 70, 60), List.of("", "", "", ""),
originalSelectedIndex));
originalSelectedIndex,
BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS));
for (int i = 0; i < mBatteryChartView.mTrapezoidSlots.length; i++) {
mBatteryChartView.mTrapezoidSlots[i] = new BatteryChartViewV2.TrapezoidSlot();
mBatteryChartView.mTrapezoidSlots[i].mLeft = i;
@@ -136,6 +137,7 @@ public final class BatteryChartViewV2Test {
.thenReturn(false);
mBatteryChartView.onAttachedToWindow();
assertThat(mBatteryChartView.isClickable()).isFalse();
assertThat(mBatteryChartView.mTrapezoidCurvePaint).isNotNull();
}
@@ -148,6 +150,7 @@ public final class BatteryChartViewV2Test {
doReturn(false).when(mMockAccessibilityManager).isEnabled();
mBatteryChartView.onAttachedToWindow();
assertThat(mBatteryChartView.isClickable()).isTrue();
assertThat(mBatteryChartView.mTrapezoidCurvePaint).isNull();
}
@@ -163,6 +166,7 @@ public final class BatteryChartViewV2Test {
.getEnabledAccessibilityServiceList(anyInt());
mBatteryChartView.onAttachedToWindow();
assertThat(mBatteryChartView.isClickable()).isTrue();
assertThat(mBatteryChartView.mTrapezoidCurvePaint).isNull();
}
@@ -175,6 +179,7 @@ public final class BatteryChartViewV2Test {
doReturn(true).when(mMockAccessibilityManager).isEnabled();
mBatteryChartView.onAttachedToWindow();
assertThat(mBatteryChartView.isClickable()).isFalse();
assertThat(mBatteryChartView.mTrapezoidCurvePaint).isNotNull();
}
@@ -188,7 +193,8 @@ public final class BatteryChartViewV2Test {
texts.add("");
}
mBatteryChartView.setViewModel(new BatteryChartViewModel(
levels, texts, BatteryChartViewModel.SELECTED_INDEX_ALL));
levels, texts, BatteryChartViewModel.SELECTED_INDEX_ALL,
BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS));
mBatteryChartView.setClickableForce(true);
when(mPowerUsageFeatureProvider.isChartGraphSlotsEnabled(mContext))
.thenReturn(true);