From 206f406aeb8758978cbe968ecaf5c0e090228ff0 Mon Sep 17 00:00:00 2001 From: Lei Yu Date: Tue, 13 Mar 2018 14:19:04 -0700 Subject: [PATCH] update strings in battery settings(Round 1) This cl updates the strings in several battery settings pages and dialogs, also add footers for battery manager page and restrict app page. Update the strings in battery settings except: 1. Summary for smart battery toggle 2. "Full charge lasts" 3. Restrict dialog 4. App info page Bug: 73018395 Test: RunSettingsRoboTests Change-Id: I4955cc7c19b5f1df18f21cfb47e8859c997e19d1 --- res/values/strings.xml | 71 +++++++++++-------- res/xml/battery_saver_settings.xml | 1 - .../fuelgauge/RestrictedAppDetails.java | 5 ++ .../fuelgauge/SmartBatterySettings.java | 2 +- .../batterytip/BatteryTipDialogFragment.java | 6 +- .../batterytip/tips/HighUsageTip.java | 3 +- .../batterytip/tips/RestrictAppTip.java | 22 +++--- .../BatteryTipDialogFragmentTest.java | 4 +- .../BatteryTipPreferenceControllerTest.java | 2 +- .../batterytip/tips/EarlyWarningTipTest.java | 8 +-- .../batterytip/tips/HighUsageTipTest.java | 2 +- .../batterytip/tips/RestrictAppTipTest.java | 29 ++++++-- 12 files changed, 94 insertions(+), 61 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index a3e409252f6..4d6e337d794 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4825,37 +4825,41 @@ Battery is in good shape - Apps are behaving normally + Apps are running normally Low battery capacity Battery can\'t provide good battery life - Turn on smart battery manager + Improve your phone\'s battery life + + Improve your tablet\'s battery life + + Improve your device\'s battery life - Turn on to optimize battery usage + Turn on Battery Manager - Turn on Low Battery Mode + Turn on Battery Saver - Extend your battery life + Battery may run out earlier than usual - Low Battery Mode is on + Battery Saver is on - Some features are limited + Some features may be limited - Phone used heavily + Phone used more than usual - Tablet used heavily + Tablet used more than usual - Device used heavily - - About %1$s used since last full charge + Device used more than usual + + Battery may run out soon - Your phone was used heavily and this consumed a lot of battery. Your battery is behaving normally.\n\n Your phone was used for about %1$s since last full charge.\n\n Total usage: + Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop %1$d apps since last charge: - Your tablet was used heavily and this consumed a lot of battery. Your battery is behaving normally.\n\n Your tablet was used for about %1$s since last full charge.\n\n Total usage: + Your tablet has been used more than usual. Your battery may run out sooner than expected.\n\nTop %1$d apps since last charge: - Your device was used heavily and this consumed a lot of battery. Your battery is behaving normally.\n\n Your device was used for about %1$s since last full charge.\n\n Total usage: + Your device has been used more than usual. Your battery may run out sooner than expected.\n\nTop %1$d apps since last charge: Restrict %1$d app @@ -4863,16 +4867,19 @@ - %1$d recently restricted - %1$d apps recently restricted + %1$s recently restricted + %2$d apps recently restricted - %1$s has high battery usage - %2$d apps have high battery usage + %1$s has high background battery usage + %2$d apps have high background battery usage - App changes are in progress + + This app can\'t run in the background + These apps can\'t run in the background + @@ -4888,13 +4895,13 @@ Restrict - Remove restriction for %1$s? + Remove restriction? - This app will be able to use battery in the background. This may cause your battery to be used up faster. + This app will be able to use battery in the background. Your battery may run out sooner than expected. Remove - Not now + Cancel Based on your usage, your battery usually lasts about %1$s when fully charged.\n\nIf you need to extend your battery life, turn on Battery Saver. @@ -4902,11 +4909,13 @@ If you need to extend your battery life, turn on Battery Saver - Smart battery manager + Battery Manager - Auto-manage battery + Manage apps automatically - Automatically adjust power usage by apps based on usage + Limit battery for infrequently used apps and apps that consume battery + + Battery Manager prevents apps from consuming battery when you aren\’t using them Restricted apps @@ -4915,6 +4924,9 @@ %1$d apps + + Apps shown here aren\'t behaving properly and have been using battery in the background.\n\nThese apps are now blocked from using battery in the background. As a result, some app notifications may be delayed. + Restrict apps automatically @@ -5168,13 +5180,10 @@ App optimization - Reduced power mode + Battery Saver - Schedule - - - Turn on Reduced power mode automatically when battery is low + Turn on automatically Turn on automatically at %1$s diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml index 43971991b6f..29d268c58d4 100644 --- a/res/xml/battery_saver_settings.xml +++ b/res/xml/battery_saver_settings.xml @@ -24,7 +24,6 @@ appInfos) { @@ -82,6 +85,8 @@ public class RestrictedAppDetails extends DashboardFragment { super.onCreate(icicle); final Context context = getContext(); + mFooterPreferenceMixin.createFooterPreference().setTitle( + R.string.restricted_app_detail_footer); mRestrictedAppListGroup = (PreferenceGroup) findPreference(KEY_PREF_RESTRICTED_APP_LIST); mAppInfos = getArguments().getParcelableArrayList(EXTRA_APP_INFO_LIST); mPackageManager = context.getPackageManager(); diff --git a/src/com/android/settings/fuelgauge/SmartBatterySettings.java b/src/com/android/settings/fuelgauge/SmartBatterySettings.java index 34f930a6b9f..43ac960679c 100644 --- a/src/com/android/settings/fuelgauge/SmartBatterySettings.java +++ b/src/com/android/settings/fuelgauge/SmartBatterySettings.java @@ -45,7 +45,7 @@ public class SmartBatterySettings extends DashboardFragment { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - mFooterPreferenceMixin.createFooterPreference().setTitle(R.string.battery_footer_summary); + mFooterPreferenceMixin.createFooterPreference().setTitle(R.string.smart_battery_footer); } @Override diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java index a7d542ca69e..cb508b34c0b 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java @@ -97,9 +97,7 @@ public class BatteryTipDialogFragment extends InstrumentedDialogFragment impleme return new AlertDialog.Builder(context) .setMessage(getString(R.string.battery_tip_dialog_message, - StringUtil.formatElapsedTime( - context, highUsageTip.getScreenTimeMs(), - false /* withSeconds */))) + highUsageTip.getHighUsageAppList().size())) .setView(view) .setPositiveButton(android.R.string.ok, null) .create(); @@ -140,7 +138,7 @@ public class BatteryTipDialogFragment extends InstrumentedDialogFragment impleme unrestrictAppTip.getPackageName()); return new AlertDialog.Builder(context) - .setTitle(getString(R.string.battery_tip_unrestrict_app_dialog_title, name)) + .setTitle(getString(R.string.battery_tip_unrestrict_app_dialog_title)) .setMessage(R.string.battery_tip_unrestrict_app_dialog_message) .setPositiveButton(R.string.battery_tip_unrestrict_app_dialog_ok, this) .setNegativeButton(R.string.battery_tip_unrestrict_app_dialog_cancel, null) diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java index 3ce753851e1..72d1fa4a5f2 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java @@ -66,8 +66,7 @@ public class HighUsageTip extends BatteryTip { @Override public CharSequence getSummary(Context context) { - return context.getString(R.string.battery_tip_high_usage_summary, - StringUtil.formatElapsedTime(context, mScreenTimeMs, false)); + return context.getString(R.string.battery_tip_high_usage_summary); } @Override diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java index 9c3a9bdc9e0..d4e950cf19b 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java @@ -17,6 +17,7 @@ package com.android.settings.fuelgauge.batterytip.tips; import android.content.Context; +import android.content.res.Resources; import android.icu.text.ListFormatter; import android.os.Parcel; import android.text.TextUtils; @@ -58,11 +59,14 @@ public class RestrictAppTip extends BatteryTip { @Override public CharSequence getTitle(Context context) { final int num = mRestrictAppList.size(); - return context.getResources().getQuantityString( - mState == StateType.HANDLED - ? R.plurals.battery_tip_restrict_handled_title - : R.plurals.battery_tip_restrict_title, - num, num); + final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context, + mRestrictAppList.get(0).packageName) : ""; + final Resources resources = context.getResources(); + + return mState == StateType.HANDLED + ? resources.getQuantityString(R.plurals.battery_tip_restrict_handled_title, num, + appLabel, num) + : resources.getQuantityString(R.plurals.battery_tip_restrict_title, num, num); } @Override @@ -70,10 +74,10 @@ public class RestrictAppTip extends BatteryTip { final int num = mRestrictAppList.size(); final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context, mRestrictAppList.get(0).packageName) : ""; - return mState == StateType.HANDLED - ? context.getString(R.string.battery_tip_restrict_handled_summary) - : context.getResources().getQuantityString(R.plurals.battery_tip_restrict_summary, - num, appLabel, num); + final int resId = mState == StateType.HANDLED + ? R.plurals.battery_tip_restrict_handled_summary + : R.plurals.battery_tip_restrict_summary; + return context.getResources().getQuantityString(resId, num, appLabel, num); } @Override diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java index 85e5b1e05a4..f09e5693fce 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java @@ -112,7 +112,7 @@ public class BatteryTipDialogFragmentTest { ShadowAlertDialog shadowDialog = shadowOf(dialog); assertThat(shadowDialog.getMessage()) - .isEqualTo(mContext.getString(R.string.battery_tip_dialog_message, "1h")); + .isEqualTo(mContext.getString(R.string.battery_tip_dialog_message, 1)); } @Test @@ -185,7 +185,7 @@ public class BatteryTipDialogFragmentTest { final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog(); ShadowAlertDialog shadowDialog = shadowOf(dialog); - assertThat(shadowDialog.getTitle()).isEqualTo("Remove restriction for app?"); + assertThat(shadowDialog.getTitle()).isEqualTo("Remove restriction?"); assertThat(shadowDialog.getMessage()) .isEqualTo(mContext.getString(R.string.battery_tip_unrestrict_app_dialog_message)); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java index 0ac94c01082..612f569b589 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java @@ -150,6 +150,6 @@ public class BatteryTipPreferenceControllerTest { final Preference preference = preferenceGroup.getPreference(0); assertThat(preference.getTitle()).isEqualTo("Battery is in good shape"); - assertThat(preference.getSummary()).isEqualTo("Apps are behaving normally"); + assertThat(preference.getSummary()).isEqualTo("Apps are running normally"); } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java index 1cac495d79e..3b1764fad83 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java @@ -67,8 +67,8 @@ public class EarlyWarningTipTest { final EarlyWarningTip tip = new EarlyWarningTip(BatteryTip.StateType.NEW, false /* powerModeOn */); - assertThat(tip.getTitle(mContext)).isEqualTo("Turn on Low Battery Mode"); - assertThat(tip.getSummary(mContext)).isEqualTo("Extend your battery life"); + assertThat(tip.getTitle(mContext)).isEqualTo("Turn on Battery Saver"); + assertThat(tip.getSummary(mContext)).isEqualTo("Battery may run out earlier than usual"); assertThat(tip.getIconId()).isEqualTo(R.drawable.ic_battery_alert_24dp); } @@ -77,8 +77,8 @@ public class EarlyWarningTipTest { final EarlyWarningTip tip = new EarlyWarningTip(BatteryTip.StateType.HANDLED, false /* powerModeOn */); - assertThat(tip.getTitle(mContext)).isEqualTo("Low Battery Mode is on"); - assertThat(tip.getSummary(mContext)).isEqualTo("Some features are limited"); + assertThat(tip.getTitle(mContext)).isEqualTo("Battery Saver is on"); + assertThat(tip.getSummary(mContext)).isEqualTo("Some features may be limited"); assertThat(tip.getIconId()).isEqualTo(R.drawable.ic_perm_device_information_green_24dp); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java index b038a912307..ca1cba38883 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java @@ -72,7 +72,7 @@ public class HighUsageTipTest { final HighUsageTip parcelTip = new HighUsageTip(parcel); - assertThat(parcelTip.getTitle(mContext)).isEqualTo("Phone used heavily"); + assertThat(parcelTip.getTitle(mContext)).isEqualTo("Phone used more than usual"); assertThat(parcelTip.getType()).isEqualTo(BatteryTip.TipType.HIGH_DEVICE_USAGE); assertThat(parcelTip.getState()).isEqualTo(BatteryTip.StateType.NEW); assertThat(parcelTip.getScreenTimeMs()).isEqualTo(SCREEN_TIME); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java index 9d32b2b4da7..7fe617e077a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java @@ -32,8 +32,10 @@ import android.os.Parcel; import android.util.Pair; import com.android.internal.logging.nano.MetricsProto; +import com.android.settings.R; import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.ShadowUtils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import org.junit.Before; @@ -106,20 +108,37 @@ public class RestrictAppTipTest { } @Test - public void getTitle_stateHandled_showHandledTitle() { - assertThat(mHandledBatteryTip.getTitle(mContext)).isEqualTo("1 recently restricted"); + public void getTitle_oneAppHandled_showHandledTitle() { + assertThat(mHandledBatteryTip.getTitle(mContext)).isEqualTo("app recently restricted"); + } + + @Test + public void getTitle_moreAppsHandled_showHandledTitle() { + mUsageAppList.add(new AppInfo.Builder().build()); + mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList); + assertThat(mHandledBatteryTip.getTitle(mContext)).isEqualTo("2 apps recently restricted"); } @Test public void getSummary_stateNew_showRestrictSummary() { assertThat(mNewBatteryTip.getSummary(mContext)) - .isEqualTo("app has high battery usage"); + .isEqualTo("app has high background battery usage"); } @Test - public void getSummary_stateHandled_showHandledSummary() { + public void getSummary_oneAppHandled_showHandledSummary() { + assertThat(mHandledBatteryTip.getSummary(mContext).toString()) + .isEqualTo(mContext.getResources().getQuantityString( + R.plurals.battery_tip_restrict_handled_summary, 1)); + } + + @Test + public void getSummary_moreAppsHandled_showHandledSummary() { + mUsageAppList.add(new AppInfo.Builder().build()); + mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList); assertThat(mHandledBatteryTip.getSummary(mContext)) - .isEqualTo("App changes are in progress"); + .isEqualTo(mContext.getResources().getQuantityString( + R.plurals.battery_tip_restrict_handled_summary, 2)); } @Test