From deda67b7bf7117784f9e46ac19d81ef3b45636a6 Mon Sep 17 00:00:00 2001 From: Raff Tsai Date: Fri, 8 Mar 2019 14:42:03 +0000 Subject: [PATCH] Revert "Revert "Change battery tip text"" This reverts commit 39beb2533fa560afd9645c9e6bbc4560b199cedd. Reason for revert: Fixes: 121042353 Test: adb shell settings put global battery_tip_constants test_low_battery_tip=true Then go to Settings -> battery to see the text Change-Id: I83cc187d5bfda5312410e91ee636373f305ef449 --- src/com/android/settings/fuelgauge/BatteryInfo.java | 5 +++++ .../batterytip/detectors/LowBatteryDetector.java | 2 +- .../com/android/settings/fuelgauge/BatteryInfoTest.java | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java index 1f11f5a0cf..c851a7178f 100644 --- a/src/com/android/settings/fuelgauge/BatteryInfo.java +++ b/src/com/android/settings/fuelgauge/BatteryInfo.java @@ -47,6 +47,7 @@ public class BatteryInfo { public long averageTimeToDischarge = Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN; public String batteryPercentString; public String statusLabel; + public String suggestionLabel; private boolean mCharging; private BatteryStats mStats; private static final String LOG_TAG = "BatteryInfo"; @@ -247,6 +248,7 @@ public class BatteryInfo { final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN); info.discharging = false; + info.suggestionLabel = null; if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) { info.remainingTimeUs = chargeTime; CharSequence timeString = StringUtil.formatElapsedTime(context, @@ -282,8 +284,11 @@ public class BatteryInfo { info.batteryPercentString, estimate.isBasedOnUsage && !shortString ); + info.suggestionLabel = PowerUtil.getBatteryTipStringFormatted( + context, PowerUtil.convertUsToMs(drainTimeUs)); } else { info.remainingLabel = null; + info.suggestionLabel = null; info.chargeLabel = info.batteryPercentString; } } diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java index 21cc28a450..ca9141d0e7 100644 --- a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java +++ b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java @@ -62,6 +62,6 @@ public class LowBatteryDetector implements BatteryTipDetector { } return new LowBatteryTip( - state, powerSaveModeOn, mBatteryInfo.remainingLabel); + state, powerSaveModeOn, mBatteryInfo.suggestionLabel); } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java index 0103031590..d5e0ed8817 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java @@ -65,7 +65,9 @@ public class BatteryInfoTest { private static final String STATUS_NOT_CHARGING = "Not charging"; private static final long REMAINING_TIME_NULL = -1; private static final long REMAINING_TIME = 2; + // Strings are defined in frameworks/base/packages/SettingsLib/res/values/strings.xml private static final String ENHANCED_STRING_SUFFIX = "based on your usage"; + private static final String EXTEND_PREFIX = "Extend battery life past"; private static final long TEST_CHARGE_TIME_REMAINING = TimeUnit.MINUTES.toMicros(1); private static final String TEST_CHARGE_TIME_REMAINING_STRINGIFIED = "1 min left until fully charged"; @@ -148,8 +150,10 @@ public class BatteryInfoTest { // We only add special mention for the long string assertThat(info.remainingLabel.toString()).contains(ENHANCED_STRING_SUFFIX); + assertThat(info.suggestionLabel).contains(EXTEND_PREFIX); // shortened string should not have extra text assertThat(info2.remainingLabel.toString()).doesNotContain(ENHANCED_STRING_SUFFIX); + assertThat(info2.suggestionLabel).contains(EXTEND_PREFIX); } @Test @@ -169,6 +173,19 @@ public class BatteryInfoTest { mContext.getString(R.string.power_remaining_duration_only_shutdown_imminent)); assertThat(info2.remainingLabel.toString()).isEqualTo( mContext.getString(R.string.power_remaining_duration_only_shutdown_imminent)); + assertThat(info2.suggestionLabel).contains(EXTEND_PREFIX); + } + + @Test + public void getBatteryInfo_MoreThanOneDay_suggestionLabelIsCorrectString() { + Estimate estimate = new Estimate(Duration.ofDays(3).toMillis(), + true /* isBasedOnUsage */, + 1000 /* averageDischargeTime */); + BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast, + mBatteryStats, estimate, SystemClock.elapsedRealtime() * 1000, + false /* shortString */); + + assertThat(info.suggestionLabel).doesNotContain(EXTEND_PREFIX); } @Test -- 2.11.0