From 981726c0e779622a9140462269b535e130b5aac3 Mon Sep 17 00:00:00 2001 From: ykhung Date: Wed, 10 May 2023 16:19:32 +0800 Subject: [PATCH] Move duplicate operations in the BackupHelper to OptimizeUtils Test command for backup manager: adb shell bmgr backupnow com.android.settings adb shell dumpsys backup | grep Current adb shell bmgr restore 34bbf79f36c8ed43 com.android.settings Bug: 192523697 Test: make SettingsRoboTests Change-Id: I2bc8842849998841aa38af3564f51bb81606c8cf --- .../fuelgauge/BatteryBackupHelper.java | 20 ++++++------------- .../fuelgauge/BatteryOptimizeUtils.java | 10 +++++++--- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java index bf874bb6ed5..0558d46c3b8 100644 --- a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java +++ b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java @@ -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 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; } } diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java index 6354f3b6f65..b9ac64dd781 100644 --- a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java @@ -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);