From 48c3533cd0e89c2bc8d203c4c53446b60b417637 Mon Sep 17 00:00:00 2001 From: ykhung Date: Tue, 9 Nov 2021 19:10:59 +0800 Subject: [PATCH] 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 --- .../BatterySaverScheduleSettings.java | 32 ++++--------------- .../BatterySaverScheduleSettingsTest.java | 29 ++++++++--------- 2 files changed, 20 insertions(+), 41 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java index ead6fc68c11..05a1e8f7f1d 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java @@ -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() { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java index afd7f66d56b..5c24da9aedb 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java @@ -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() {