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

Commit b7cfe002 authored by YK Hung's avatar YK Hung Committed by Android (Google) Code Review
Browse files

Merge "Move duplicate operations in the BackupHelper to OptimizeUtils" into udc-dev

parents f5a34853 981726c0
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.app.backup.BackupHelper;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
import android.os.Build;
import android.os.IDeviceIdleController;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
@@ -48,7 +47,6 @@ public final class BatteryBackupHelper implements BackupHelper {
    /** An inditifier for {@link BackupHelper}. */
    public static final String TAG = "BatteryBackupHelper";
    private static final String DEVICE_IDLE_SERVICE = "deviceidle";
    private static final boolean DEBUG = Build.TYPE.equals("userdebug");

    static final String DELIMITER = ",";
    static final String DELIMITER_MODE = ":";
@@ -119,7 +117,7 @@ public final class BatteryBackupHelper implements BackupHelper {
            Log.e(TAG, "backupFullPowerList() failed", e);
            return null;
        }
        // Ignores unexpected emptty result case.
        // Ignores unexpected empty result case.
        if (allowlistedApps == null || allowlistedApps.length == 0) {
            Log.w(TAG, "no data found in the getFullPowerList()");
            return new ArrayList<>();
@@ -145,8 +143,7 @@ public final class BatteryBackupHelper implements BackupHelper {
        final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
        // Converts application into the AppUsageState.
        for (ApplicationInfo info : applications) {
            final int mode = appOps.checkOpNoThrow(
                    AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, info.uid, info.packageName);
            final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
            @BatteryOptimizeUtils.OptimizationMode
            final int optimizationMode = BatteryOptimizeUtils.getAppOptimizationMode(
                    mode, allowlistedApps.contains(info.packageName));
@@ -159,7 +156,7 @@ public final class BatteryBackupHelper implements BackupHelper {
            final String packageOptimizeMode =
                    info.packageName + DELIMITER_MODE + optimizationMode;
            builder.append(packageOptimizeMode + DELIMITER);
            debugLog(packageOptimizeMode);
            Log.d(TAG, "backupOptimizationMode: " + packageOptimizeMode);
            backupCount++;
        }

@@ -255,9 +252,8 @@ public final class BatteryBackupHelper implements BackupHelper {
    }

    private boolean isSystemOrDefaultApp(String packageName, int uid) {
        final PowerAllowlistBackend powerAllowlistBackend = getPowerAllowlistBackend();
        return powerAllowlistBackend.isSysAllowlisted(packageName)
                || powerAllowlistBackend.isDefaultActiveApp(packageName, uid);
        return BatteryOptimizeUtils.isSystemOrDefaultApp(
                getPowerAllowlistBackend(), packageName, uid);
    }

    private ArraySet<ApplicationInfo> getInstalledApplications() {
@@ -267,10 +263,6 @@ public final class BatteryBackupHelper implements BackupHelper {
        return BatteryOptimizeUtils.getInstalledApplications(mContext, getIPackageManager());
    }

    private void debugLog(String debugContent) {
        if (DEBUG) Log.d(TAG, debugContent);
    }

    private static void writeBackupData(
            BackupDataOutput data, String dataKey, String dataContent) {
        final byte[] dataContentBytes = dataContent.getBytes();
@@ -283,6 +275,6 @@ public final class BatteryBackupHelper implements BackupHelper {
    }

    private static boolean isOwner() {
        return UserHandle.myUserId() == UserHandle.USER_OWNER;
        return UserHandle.myUserId() == UserHandle.USER_SYSTEM;
    }
}
+7 −3
Original line number Diff line number Diff line
@@ -83,8 +83,7 @@ public class BatteryOptimizeUtils {
        mAppOpsManager = context.getSystemService(AppOpsManager.class);
        mBatteryUtils = BatteryUtils.getInstance(context);
        mPowerAllowListBackend = PowerAllowlistBackend.getInstance(context);
        mMode = mAppOpsManager
                .checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, mUid, mPackageName);
        mMode = getMode(mAppOpsManager, mUid, mPackageName);
        mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName, mUid);
    }

@@ -204,7 +203,12 @@ public class BatteryOptimizeUtils {
        return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName;
    }

    private static boolean isSystemOrDefaultApp(
    static int getMode(AppOpsManager appOpsManager, int uid, String packageName) {
        return appOpsManager.checkOpNoThrow(
                AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName);
    }

    static boolean isSystemOrDefaultApp(
            PowerAllowlistBackend powerAllowlistBackend, String packageName, int uid) {
        return powerAllowlistBackend.isSysAllowlisted(packageName)
                || powerAllowlistBackend.isDefaultActiveApp(packageName, uid);