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
This commit is contained in:
ykhung
2021-11-09 19:10:59 +08:00
parent 15f9ce95d1
commit 48c3533cd0
2 changed files with 20 additions and 41 deletions

View File

@@ -29,7 +29,6 @@ import android.os.Handler;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.util.Pair;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@@ -184,35 +183,18 @@ public class BatterySaverScheduleSettings extends RadioButtonPickerFragment {
} }
private void logPowerSaver() { private void logPowerSaver() {
int currentSaverPercentage = getSaverPercentage(); final int currentSaverPercentage = getSaverPercentage();
String currentSaverScheduleKey = mRadioButtonController.getDefaultKey(); final String currentSaverScheduleKey = mRadioButtonController.getDefaultKey();
if (mSaverScheduleKey.equals(currentSaverScheduleKey) if (mSaverScheduleKey.equals(currentSaverScheduleKey)
&& mSaverPercentage == currentSaverPercentage) { && mSaverPercentage == currentSaverPercentage) {
return; 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() FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
.action(mContext, SettingsEnums.FUELGAUGE_BATTERY_SAVER, .action(SettingsEnums.FUELGAUGE_BATTERY_SAVER,
Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE, SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
scheduleType), SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE, currentSaverScheduleKey,
schedulePercentage)); currentSaverPercentage);
} }
private int getSaverPercentage() { private int getSaverPercentage() {

View File

@@ -43,22 +43,22 @@ public final class BatterySaverScheduleSettingsTest {
@Test @Test
public void onPause_withNoScheduleType_logExpectedData() { 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(); mBatterySaverScheduleSettings.onPause();
verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_NO_SCHEDULE, verifySchedule("key_battery_saver_no_schedule", expectedPercentage);
/* schedulePercentage= */ -1);
} }
@Test @Test
public void onPause_withRoutineScheduleType_logExpectedData() { 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(); mBatterySaverScheduleSettings.onPause();
verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_ROUTINE, verifySchedule("key_battery_saver_routine", expectedPercentage);
/* schedulePercentage= */ -1);
} }
@Test @Test
@@ -68,8 +68,7 @@ public final class BatterySaverScheduleSettingsTest {
mBatterySaverScheduleSettings.onPause(); mBatterySaverScheduleSettings.onPause();
verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_PERCENTAGE, verifySchedule("key_battery_saver_percentage", expectedPercentage);
expectedPercentage);
} }
@Test @Test
@@ -90,8 +89,7 @@ public final class BatterySaverScheduleSettingsTest {
mBatterySaverScheduleSettings.onPause(); mBatterySaverScheduleSettings.onPause();
verifySchedule(SettingsEnums.BATTERY_SAVER_SCHEDULE_TYPE_BASED_ON_PERCENTAGE, verifySchedule("key_battery_saver_percentage", expectedPercentage);
expectedPercentage);
} }
private void setSchedule(int scheduleType, int schedulePercentage) { private void setSchedule(int scheduleType, int schedulePercentage) {
@@ -101,13 +99,12 @@ public final class BatterySaverScheduleSettingsTest {
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, schedulePercentage); Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, schedulePercentage);
} }
private void verifySchedule(int scheduleType, int schedulePercentage) { private void verifySchedule(String scheduleTypeKey, int schedulePercentage) {
waitAWhile(); waitAWhile();
verify(mMetricsFeatureProvider).action(mContext, SettingsEnums.FUELGAUGE_BATTERY_SAVER, verify(mMetricsFeatureProvider).action(SettingsEnums.FUELGAUGE_BATTERY_SAVER,
Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE, SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
scheduleType), SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
Pair.create(SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE, scheduleTypeKey, schedulePercentage);
schedulePercentage));
} }
private void waitAWhile() { private void waitAWhile() {