diff --git a/res/values/strings.xml b/res/values/strings.xml index 6944990ec77..ae67f35f2ff 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4824,37 +4824,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 @@ -4862,16 +4866,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 + @@ -4887,13 +4894,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. @@ -4901,11 +4908,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 @@ -4914,6 +4923,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 @@ -5167,13 +5179,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