Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80bf09e5 authored by YK Hung's avatar YK Hung Committed by Android (Google) Code Review
Browse files

Merge "Support data logging for battery usage new chart view"

parents 2c1decd7 65b63585
Loading
Loading
Loading
Loading
+23 −2
Original line number Original line Diff line number Diff line
@@ -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<>();
+12 −0
Original line number Original line Diff line number Diff line
@@ -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;