Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24fe6d9f authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Use BatteryOptimizeUtils to add packageName into...

Merge "Revert "Use BatteryOptimizeUtils to add packageName into PowerSaveWhitelistUserApps allowlist, which will set app into Unrestricted Mode"" into main
parents 8dc9b533 b7783cb6
Loading
Loading
Loading
Loading
+16 −21
Original line number Diff line number Diff line
@@ -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.content.pm.PackageManager;
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 @@ public class RequestIgnoreBatteryOptimizations extends AlertActivity
                        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 @@ public class RequestIgnoreBatteryOptimizations extends AlertActivity
            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 @@ public class RequestIgnoreBatteryOptimizations extends AlertActivity
        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 class RequestIgnoreBatteryOptimizations extends AlertActivity
    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;