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();
|
refreshUi();
|
||||||
});
|
});
|
||||||
Log.d(TAG, "getBatteryLevelData: " + batteryLevelData);
|
Log.d(TAG, "getBatteryLevelData: " + batteryLevelData);
|
||||||
|
mMetricsFeatureProvider.action(
|
||||||
|
mPrefContext,
|
||||||
|
SettingsEnums.ACTION_BATTERY_HISTORY_LOADED,
|
||||||
|
getTotalHours(batteryLevelData));
|
||||||
|
|
||||||
if (batteryLevelData == null) {
|
if (batteryLevelData == null) {
|
||||||
mDailyTimestampFullTexts = null;
|
mDailyTimestampFullTexts = null;
|
||||||
mDailyViewModel = null;
|
mDailyViewModel = null;
|
||||||
@@ -313,7 +318,12 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
|||||||
mDailyChartIndex = trapezoidIndex;
|
mDailyChartIndex = trapezoidIndex;
|
||||||
mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
|
mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
|
||||||
refreshUi();
|
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 = hourlyChartView;
|
||||||
mHourlyChartView.setOnSelectListener(trapezoidIndex -> {
|
mHourlyChartView.setOnSelectListener(trapezoidIndex -> {
|
||||||
@@ -327,7 +337,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
|||||||
mPrefContext,
|
mPrefContext,
|
||||||
trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
|
trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
|
||||||
? SettingsEnums.ACTION_BATTERY_USAGE_SHOW_ALL
|
? SettingsEnums.ACTION_BATTERY_USAGE_SHOW_ALL
|
||||||
: SettingsEnums.ACTION_BATTERY_USAGE_TIME_SLOT);
|
: SettingsEnums.ACTION_BATTERY_USAGE_TIME_SLOT,
|
||||||
|
mHourlyChartIndex);
|
||||||
});
|
});
|
||||||
refreshUi();
|
refreshUi();
|
||||||
}
|
}
|
||||||
@@ -623,6 +634,16 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
|||||||
&& mHourlyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL;
|
&& 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,
|
private static List<String> generateTimestampDayOfWeekTexts(@NonNull final Context context,
|
||||||
@NonNull final List<Long> timestamps, final boolean isAbbreviation) {
|
@NonNull final List<Long> timestamps, final boolean isAbbreviation) {
|
||||||
final ArrayList<String> texts = new ArrayList<>();
|
final ArrayList<String> texts = new ArrayList<>();
|
||||||
|
@@ -630,6 +630,18 @@ public final class BatteryChartPreferenceControllerTest {
|
|||||||
.isFalse();
|
.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) {
|
private static Long generateTimestamp(int index) {
|
||||||
// "2021-04-23 07:00:00 UTC" + index hours
|
// "2021-04-23 07:00:00 UTC" + index hours
|
||||||
return 1619247600000L + index * DateUtils.HOUR_IN_MILLIS;
|
return 1619247600000L + index * DateUtils.HOUR_IN_MILLIS;
|
||||||
|
Reference in New Issue
Block a user