Revert "Use BatteryOptimizeUtils to add packageName into PowerSaveWhitelistUserApps allowlist, which will set app into Unrestricted Mode"

This reverts commit 1b83703adc1780cbf9aa8ff531f16e483e94360d.

Reason for revert: locating b/393033745 root cause
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b7783cb6c96586eb7d72707554f5a38b69bfaa4c)
Merged-In: I04f90b42907d07c6111a7b41a531f7717df33672
Change-Id: I04f90b42907d07c6111a7b41a531f7717df33672
diff --git a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
index 9b070f9..d948cc0 100644
--- a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
+++ b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.fuelgauge;
 
-import static com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNRESTRICTED;
-
 import android.Manifest;
 import android.content.DialogInterface;
 import android.content.pm.ApplicationInfo;
@@ -26,20 +24,20 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.PowerManager;
-import android.text.TextUtils;
+import android.os.PowerWhitelistManager;
 import android.util.Log;
 
 import com.android.internal.app.AlertActivity;
 import com.android.internal.app.AlertController;
 import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
 
 public class RequestIgnoreBatteryOptimizations extends AlertActivity
         implements DialogInterface.OnClickListener {
     private static final String TAG = "RequestIgnoreBatteryOptimizations";
     private static final boolean DEBUG = false;
 
-    private ApplicationInfo mApplicationInfo;
+    private PowerWhitelistManager mPowerWhitelistManager;
+    private String mPackageName;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -49,6 +47,8 @@
                         android.view.WindowManager.LayoutParams
                                 .SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
 
+        mPowerWhitelistManager = getSystemService(PowerWhitelistManager.class);
+
         Uri data = getIntent().getData();
         if (data == null) {
             debugLog(
@@ -56,18 +56,17 @@
             finish();
             return;
         }
-        final String packageName = data.getSchemeSpecificPart();
-        if (TextUtils.isEmpty(packageName)) {
+        mPackageName = data.getSchemeSpecificPart();
+        if (mPackageName == null) {
             debugLog(
                     "No data supplied for IGNORE_BATTERY_OPTIMIZATION_SETTINGS in: " + getIntent());
             finish();
             return;
         }
 
-        // Package in Unrestricted mode already ignoring the battery optimizations.
         PowerManager power = getSystemService(PowerManager.class);
-        if (power.isIgnoringBatteryOptimizations(packageName)) {
-            debugLog("Not should prompt, already ignoring optimizations: " + packageName);
+        if (power.isIgnoringBatteryOptimizations(mPackageName)) {
+            debugLog("Not should prompt, already ignoring optimizations: " + mPackageName);
             finish();
             return;
         }
@@ -75,28 +74,29 @@
         if (getPackageManager()
                         .checkPermission(
                                 Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,
-                                packageName)
+                                mPackageName)
                 != PackageManager.PERMISSION_GRANTED) {
             debugLog(
                     "Requested package "
-                            + packageName
+                            + mPackageName
                             + " does not hold permission "
                             + Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
             finish();
             return;
         }
 
+        ApplicationInfo ai;
         try {
-            mApplicationInfo = getPackageManager().getApplicationInfo(packageName, 0);
+            ai = getPackageManager().getApplicationInfo(mPackageName, 0);
         } catch (PackageManager.NameNotFoundException e) {
-            debugLog("Requested package doesn't exist: " + packageName);
+            debugLog("Requested package doesn't exist: " + mPackageName);
             finish();
             return;
         }
 
         final AlertController.AlertParams p = mAlertParams;
         final CharSequence appLabel =
-                mApplicationInfo.loadSafeLabel(
+                ai.loadSafeLabel(
                         getPackageManager(),
                         PackageItemInfo.DEFAULT_MAX_LABEL_SIZE_PX,
                         PackageItemInfo.SAFE_LABEL_FLAG_TRIM
@@ -114,12 +114,7 @@
     public void onClick(DialogInterface dialog, int which) {
         switch (which) {
             case BUTTON_POSITIVE:
-                BatteryOptimizeUtils batteryOptimizeUtils =
-                        new BatteryOptimizeUtils(
-                                getApplicationContext(),
-                                mApplicationInfo.uid,
-                                mApplicationInfo.packageName);
-                batteryOptimizeUtils.setAppUsageState(MODE_UNRESTRICTED, Action.APPLY);
+                mPowerWhitelistManager.addToWhitelist(mPackageName);
                 break;
             case BUTTON_NEGATIVE:
                 break;