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

Commit 48c3533c authored by ykhung's avatar ykhung
Browse files

Fix incorrect usage for the logging method to cause no data in WW

Fix incorrect usage for the logging method to cause the schedule type
and percentage data is not logged  into the WW, since
MetricsFeatureProvider doesn't support log Pair.of() data into the
WestWorld or Clearcut directly, it is used for EventLogWriter only

Bug: 202906853
Test: make SettingsRoboTests
Change-Id: I0ca87ca96647f025adbd23f9f93a3cbd5f7d8579
parent 15f9ce95
Loading
Loading
Loading
Loading
+7 −25
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import android.os.Handler;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.View;
import android.util.Pair;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -184,35 +183,18 @@ public class BatterySaverScheduleSettings extends RadioButtonPickerFragment {
    }

    private void logPowerSaver() {
        int currentSaverPercentage = getSaverPercentage();
        String currentSaverScheduleKey = mRadioButtonController.getDefaultKey();
        final int currentSaverPercentage = getSaverPercentage();
        final String currentSaverScheduleKey = mRadioButtonController.getDefaultKey();
        if (mSaverScheduleKey.equals(currentSaverScheduleKey)
                && mSaverPercentage == currentSaverPercentage) {
            return;
        }
        int scheduleType = -1;
        int schedulePercentage = -1;
        switch (currentSaverScheduleKey) {
            case BatterySaverScheduleRadioButtonsController.KEY_NO_SCHEDULE:
                scheduleType = SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_NO_SCHEDULE;
                break;
            case BatterySaverScheduleRadioButtonsController.KEY_ROUTINE:
                scheduleType = SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_ROUTINE;
                break;
            case BatterySaverScheduleRadioButtonsController.KEY_PERCENTAGE:
                scheduleType = SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_PERCENTAGE;
                schedulePercentage = currentSaverPercentage;
                break;
            // Unknown schedule type.
            default:
                return;
        }
        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
                .action(mContext, SettingsEnums.FUELGAUGE_BATTERY_SAVER,
                        Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
                                scheduleType),
                        Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
                                schedulePercentage));
                .action(SettingsEnums.FUELGAUGE_BATTERY_SAVER,
                        SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
                        SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
                        currentSaverScheduleKey,
                        currentSaverPercentage);
    }

    private int getSaverPercentage() {
+13 −16
Original line number Diff line number Diff line
@@ -43,22 +43,22 @@ public final class BatterySaverScheduleSettingsTest {

    @Test
    public void onPause_withNoScheduleType_logExpectedData() {
        setSchedule(PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE, 0);
        int expectedPercentage = 0;
        setSchedule(PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE, expectedPercentage);

        mBatterySaverScheduleSettings.onPause();

        verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_NO_SCHEDULE,
                /* schedulePercentage= */ -1);
        verifySchedule("key_battery_saver_no_schedule", expectedPercentage);
    }

    @Test
    public void onPause_withRoutineScheduleType_logExpectedData() {
        setSchedule(PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC, 0);
        int expectedPercentage = 0;
        setSchedule(PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC, expectedPercentage);

        mBatterySaverScheduleSettings.onPause();

        verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_ROUTINE,
                /* schedulePercentage= */ -1);
        verifySchedule("key_battery_saver_routine", expectedPercentage);
    }

    @Test
@@ -68,8 +68,7 @@ public final class BatterySaverScheduleSettingsTest {

        mBatterySaverScheduleSettings.onPause();

        verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_PERCENTAGE,
                expectedPercentage);
        verifySchedule("key_battery_saver_percentage", expectedPercentage);
    }

    @Test
@@ -90,8 +89,7 @@ public final class BatterySaverScheduleSettingsTest {

        mBatterySaverScheduleSettings.onPause();

        verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_PERCENTAGE,
                expectedPercentage);
        verifySchedule("key_battery_saver_percentage", expectedPercentage);
    }

    private void setSchedule(int scheduleType, int schedulePercentage) {
@@ -101,13 +99,12 @@ public final class BatterySaverScheduleSettingsTest {
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, schedulePercentage);
    }

    private void verifySchedule(int scheduleType, int schedulePercentage) {
    private void verifySchedule(String scheduleTypeKey, int schedulePercentage) {
        waitAWhile();
        verify(mMetricsFeatureProvider).action(mContext, SettingsEnums.FUELGAUGE_BATTERY_SAVER,
                Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
                        scheduleType),
                Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
                        schedulePercentage));
        verify(mMetricsFeatureProvider).action(SettingsEnums.FUELGAUGE_BATTERY_SAVER,
                SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
                SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
                scheduleTypeKey, schedulePercentage);
    }

    private void waitAWhile() {