Merge "Support data logging for battery usage new chart view"
This commit is contained in:
@@ -267,6 +267,11 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
refreshUi();
|
||||
});
|
||||
Log.d(TAG, "getBatteryLevelData: " + batteryLevelData);
|
||||
mMetricsFeatureProvider.action(
|
||||
mPrefContext,
|
||||
SettingsEnums.ACTION_BATTERY_HISTORY_LOADED,
|
||||
getTotalHours(batteryLevelData));
|
||||
|
||||
if (batteryLevelData == null) {
|
||||
mDailyTimestampFullTexts = null;
|
||||
mDailyViewModel = null;
|
||||
@@ -313,7 +318,12 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
mDailyChartIndex = trapezoidIndex;
|
||||
mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
|
||||
refreshUi();
|
||||
// TODO: Change to log daily data.
|
||||
mMetricsFeatureProvider.action(
|
||||
mPrefContext,
|
||||
trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
|
||||
? SettingsEnums.ACTION_BATTERY_USAGE_DAILY_SHOW_ALL
|
||||
: SettingsEnums.ACTION_BATTERY_USAGE_DAILY_TIME_SLOT,
|
||||
mDailyChartIndex);
|
||||
});
|
||||
mHourlyChartView = hourlyChartView;
|
||||
mHourlyChartView.setOnSelectListener(trapezoidIndex -> {
|
||||
@@ -327,7 +337,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
mPrefContext,
|
||||
trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
|
||||
? SettingsEnums.ACTION_BATTERY_USAGE_SHOW_ALL
|
||||
: SettingsEnums.ACTION_BATTERY_USAGE_TIME_SLOT);
|
||||
: SettingsEnums.ACTION_BATTERY_USAGE_TIME_SLOT,
|
||||
mHourlyChartIndex);
|
||||
});
|
||||
refreshUi();
|
||||
}
|
||||
@@ -623,6 +634,16 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
&& mHourlyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
static int getTotalHours(final BatteryLevelData batteryLevelData) {
|
||||
if (batteryLevelData == null) {
|
||||
return 0;
|
||||
}
|
||||
List<Long> dailyTimestamps = batteryLevelData.getDailyBatteryLevels().getTimestamps();
|
||||
return (int) ((dailyTimestamps.get(dailyTimestamps.size() - 1) - dailyTimestamps.get(0))
|
||||
/ DateUtils.HOUR_IN_MILLIS);
|
||||
}
|
||||
|
||||
private static List<String> generateTimestampDayOfWeekTexts(@NonNull final Context context,
|
||||
@NonNull final List<Long> timestamps, final boolean isAbbreviation) {
|
||||
final ArrayList<String> texts = new ArrayList<>();
|
||||
|
@@ -630,6 +630,18 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTotalHours_getExpectedResult() {
|
||||
Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = createBatteryHistoryMap(60);
|
||||
BatteryLevelData batteryLevelData = DataProcessor.getBatteryLevelData(mContext, null,
|
||||
batteryHistoryMap, null);
|
||||
|
||||
final int totalHour = BatteryChartPreferenceController.getTotalHours(batteryLevelData);
|
||||
|
||||
// Only calculate the even hours.
|
||||
assertThat(totalHour).isEqualTo(58);
|
||||
}
|
||||
|
||||
private static Long generateTimestamp(int index) {
|
||||
// "2021-04-23 07:00:00 UTC" + index hours
|
||||
return 1619247600000L + index * DateUtils.HOUR_IN_MILLIS;
|
||||
|
Reference in New Issue
Block a user