Merge "Import translations. DO NOT MERGE ANYWHERE" into tm-qpr-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 62d55fa..5de57fe 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6410,21 +6410,21 @@
     <!-- Summary for the battery high usage tip, which presents apps with highest usage [CHAR LIMIT=NONE] -->
     <string name="battery_tip_high_usage_summary">See apps with highest usage</string>
     <!-- Title for the battery limited temporarily tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_limited_temporarily_title">Charging is paused</string>
+    <string name="battery_tip_limited_temporarily_title">Charging optimized to protect your battery</string>
     <!-- Summary for the battery limited temporarily tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_limited_temporarily_summary">Protecting battery to extend battery lifespan</string>
+    <string name="battery_tip_limited_temporarily_summary">To help extend your batter\'s lifespan, charging is optimized</string>
     <!-- Title for the battery dock defender future bypass tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_future_bypass_title">Charging to <xliff:g id="percent" example="10%">%1$s</xliff:g> to protect the battery</string>
+    <string name="battery_tip_dock_defender_future_bypass_title">Charging optimized to protect your battery</string>
     <!-- Summary for the battery dock defender future bypass tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_future_bypass_summary">When your tablet is docked, charging will be paused at <xliff:g id="percent" example="10%">%1$s</xliff:g> to extend battery lifespan</string>
+    <string name="battery_tip_dock_defender_future_bypass_summary">To help extend your battery\'s lifespan, charging is optimized while docked</string>
     <!-- Title for the battery dock defender active tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_active_title">Charging paused to protect battery</string>
+    <string name="battery_tip_dock_defender_active_title">Charging optimized to protect your battery</string>
     <!-- Summary for the battery dock defender active tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_active_summary">When your tablet is docked, charging is paused at <xliff:g id="percent" example="10%">%1$s</xliff:g> to extend battery lifespan</string>
+    <string name="battery_tip_dock_defender_active_summary">To help extend your battery\'s lifespan, charging is optimized while docked</string>
     <!-- Title for the battery dock defender temporarily bypassed tip [CHAR LIMIT=NONE] -->
     <string name="battery_tip_dock_defender_temporarily_bypassed_title">Charging to full</string>
     <!-- Summary for the battery dock defender temporarily bypassed tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary">To protect your battery, charging will be paused at <xliff:g id="percent" example="10%">%1$s</xliff:g> the next time your tablet is docked</string>
+    <string name="battery_tip_dock_defender_temporarily_bypassed_summary">To protect your battery, charging will be optimized the next time your tablet is docked</string>
     <!-- Content description for the battery limited temporarily tip secondary button [CHAR LIMIT=NONE] -->
     <string name="battery_tip_limited_temporarily_sec_button_content_description">Learn more about charging is paused</string>
     <!-- Text of battery limited temporarily tip resume charge button. [CHAR LIMIT=NONE] -->
@@ -8141,6 +8141,8 @@
     <string name="help_url_battery" translatable="false"></string>
     <!-- Help URL, Battery Defender [DO NOT TRANSLATE] -->
     <string name="help_url_battery_defender" translatable="false"></string>
+    <!-- Help URL, Dock Defender [DO NOT TRANSLATE] -->
+    <string name="help_url_dock_defender" translatable="false"></string>
     <!-- Help URL, Accounts [DO NOT TRANSLATE] -->
     <string name="help_url_accounts" translatable="false"></string>
     <!-- Help URL, Choose lockscreen [DO NOT TRANSLATE] -->
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 3705dfc..7d080c9 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -301,7 +301,6 @@
 
             notifyBackupManager();
             logMetricCategory(selectedPreference);
-            mBatteryOptimizeUtils.setAppUsageState(selectedPreference);
             Log.d(TAG, "Leave with mode: " + selectedPreference);
         }
     }
@@ -468,6 +467,7 @@
         updatePreferenceState(mUnrestrictedPreference, selectedKey);
         updatePreferenceState(mOptimizePreference, selectedKey);
         updatePreferenceState(mRestrictedPreference, selectedKey);
+	mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference());
     }
 
     private void updatePreferenceState(SelectorWithWidgetPreference preference,
diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index 52d6d58..da3bbe4 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -42,8 +42,6 @@
 import com.android.settingslib.utils.PowerUtil;
 import com.android.settingslib.utils.StringUtil;
 
-import java.text.NumberFormat;
-
 public class BatteryInfo {
     private static final String TAG = "BatteryInfo";
 
@@ -305,13 +303,9 @@
                     timeString);
             info.chargeLabel = context.getString(resId, info.batteryPercentString, timeString);
         } else if (dockDefenderMode == BatteryUtils.DockDefenderMode.FUTURE_BYPASS) {
-            // Dock defender will be triggered in the future, charging will be paused at 90%.
-            final int extraValue = context.getResources().getInteger(
-                    R.integer.config_battery_extra_tip_value);
-            final String extraPercentage = NumberFormat.getPercentInstance().format(
-                    extraValue * 0.01f);
+            // Dock defender will be triggered in the future, charging will be optimized.
             info.chargeLabel = context.getString(R.string.power_charging_future_paused,
-                    info.batteryPercentString, extraPercentage);
+                    info.batteryPercentString);
         } else {
             final String chargeStatusLabel = Utils.getBatteryStatus(context, batteryBroadcast,
                     compactStatus);
diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
index dbfacc6..e2a4efe 100644
--- a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
@@ -24,7 +24,6 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ParceledListSlice;
 import android.content.pm.UserInfo;
-import android.os.AsyncTask;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.ArraySet;
@@ -222,10 +221,8 @@
                 mode == MODE_RESTRICTED ? AppOpsManager.MODE_IGNORED : AppOpsManager.MODE_ALLOWED;
         final boolean allowListed = mode == MODE_UNRESTRICTED;
 
-        AsyncTask.execute(() -> {
-            setAppOptimizationModeInternal(appOpsManagerMode, allowListed, uid, packageName,
+        setAppOptimizationModeInternal(appOpsManagerMode, allowListed, uid, packageName,
                     batteryUtils, powerAllowlistBackend);
-        });
     }
 
     private static void setAppOptimizationModeInternal(
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
index dae4af4..bc0ba08 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
@@ -32,8 +32,6 @@
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
-import java.text.NumberFormat;
-
 /**
  * Tip to show dock defender status
  */
@@ -58,8 +56,7 @@
     public CharSequence getTitle(Context context) {
         switch (mMode) {
             case DockDefenderMode.FUTURE_BYPASS:
-                return context.getString(R.string.battery_tip_dock_defender_future_bypass_title,
-                        getExtraPercentage(context));
+                return context.getString(R.string.battery_tip_dock_defender_future_bypass_title);
             case DockDefenderMode.ACTIVE:
                 return context.getString(R.string.battery_tip_dock_defender_active_title);
             case DockDefenderMode.TEMPORARILY_BYPASSED:
@@ -74,15 +71,12 @@
     public CharSequence getSummary(Context context) {
         switch (mMode) {
             case DockDefenderMode.FUTURE_BYPASS:
-                return context.getString(R.string.battery_tip_dock_defender_future_bypass_summary,
-                        getExtraPercentage(context));
+                return context.getString(R.string.battery_tip_dock_defender_future_bypass_summary);
             case DockDefenderMode.ACTIVE:
-                return context.getString(R.string.battery_tip_dock_defender_active_summary,
-                        getExtraPercentage(context));
+                return context.getString(R.string.battery_tip_dock_defender_active_summary);
             case DockDefenderMode.TEMPORARILY_BYPASSED:
                 return context.getString(
-                        R.string.battery_tip_dock_defender_temporarily_bypassed_summary,
-                        getExtraPercentage(context));
+                        R.string.battery_tip_dock_defender_temporarily_bypassed_summary);
             default:
                 return null;
         }
@@ -145,12 +139,11 @@
         }
 
         cardPreference.setSecondaryButtonText(context.getString(R.string.learn_more));
-        //TODO: update helper string
         cardPreference.setSecondaryButtonClickListener(
                 button -> button.startActivityForResult(
                         HelpUtils.getHelpIntent(
                                 context,
-                                context.getString(R.string.help_url_battery_defender),
+                                context.getString(R.string.help_url_dock_defender),
                                 /* backupContext */ ""), /* requestCode */ 0));
         cardPreference.setSecondaryButtonVisible(true);
         cardPreference.setSecondaryButtonContentDescription(context.getString(
@@ -174,13 +167,6 @@
         Log.i(TAG, "send resume charging broadcast intent=" + intent);
     }
 
-    private String getExtraPercentage(Context context) {
-        final int extraValue = context.getResources()
-                .getInteger(R.integer.config_battery_extra_tip_value);
-        return NumberFormat.getPercentInstance()
-                .format(extraValue * 0.01f);
-    }
-
     public static final Creator CREATOR = new Creator() {
         public BatteryTip createFromParcel(Parcel in) {
             return new DockDefenderTip(in);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 59c0f68..2fac0eb 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -67,8 +67,8 @@
     private static final String STATUS_CHARGING_NO_TIME = "50% - charging";
     private static final String STATUS_CHARGING_TIME = "50% - 0 min left until full";
     private static final String STATUS_NOT_CHARGING = "Not charging";
-    private static final String STATUS_CHARGING_FUTURE_BYPASS = "50% - Charging to 12%";
-    private static final String STATUS_CHARGING_PAUSED = "50% - Charging paused";
+    private static final String STATUS_CHARGING_FUTURE_BYPASS = "50% - Charging optimized";
+    private static final String STATUS_CHARGING_PAUSED = "50% - Charging optimized";
     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
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java
index 69d5477..e897a1c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java
@@ -44,8 +44,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.shadows.ShadowLog;
 
-import java.text.NumberFormat;
-
 @RunWith(RobolectricTestRunner.class)
 public class DockDefenderTipTest {
     private Context mContext;
@@ -85,8 +83,7 @@
     @Test
     public void testGetTitle() {
         assertThat(mDockDefenderTipFutureBypass.getTitle(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_future_bypass_title,
-                        getExtraPercentage(mContext)));
+                mContext.getString(R.string.battery_tip_dock_defender_future_bypass_title));
         assertThat(mDockDefenderTipActive.getTitle(mContext).toString()).isEqualTo(
                 mContext.getString(R.string.battery_tip_dock_defender_active_title));
         assertThat(mDockDefenderTipTemporarilyBypassed.getTitle(mContext).toString()).isEqualTo(
@@ -97,14 +94,12 @@
     @Test
     public void testGetSummary() {
         assertThat(mDockDefenderTipFutureBypass.getSummary(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_future_bypass_summary,
-                        getExtraPercentage(mContext)));
+                mContext.getString(R.string.battery_tip_dock_defender_future_bypass_summary));
         assertThat(mDockDefenderTipActive.getSummary(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_active_summary,
-                        getExtraPercentage(mContext)));
+                mContext.getString(R.string.battery_tip_dock_defender_active_summary));
         assertThat(mDockDefenderTipTemporarilyBypassed.getSummary(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_temporarily_bypassed_summary,
-                        getExtraPercentage(mContext)));
+                mContext.getString(
+                        R.string.battery_tip_dock_defender_temporarily_bypassed_summary));
         assertThat(mDockDefenderTipDisabled.getSummary(mContext)).isNull();
     }
 
@@ -195,11 +190,4 @@
     private ShadowLog.LogItem createErrorLog(String msg) {
         return new ShadowLog.LogItem(Log.ERROR, "tag", msg, null);
     }
-
-    private String getExtraPercentage(Context context) {
-        final int extraValue = context.getResources().getInteger(
-                R.integer.config_battery_extra_tip_value);
-        return NumberFormat.getPercentInstance().format(extraValue * 0.01f);
-    }
-
 }