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

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23123004

Change-Id: Ib94ebfd423cf3cf200f8af4bef1c1247bc3a7015
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
YK Hung
2023-05-10 11:28:22 +00:00
committed by Automerger Merge Worker
2 changed files with 13 additions and 17 deletions

View File

@@ -24,7 +24,6 @@ import android.app.backup.BackupHelper;
import android.content.Context; import android.content.Context;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager; import android.content.pm.IPackageManager;
import android.os.Build;
import android.os.IDeviceIdleController; import android.os.IDeviceIdleController;
import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor;
import android.os.RemoteException; import android.os.RemoteException;
@@ -48,7 +47,6 @@ public final class BatteryBackupHelper implements BackupHelper {
/** An inditifier for {@link BackupHelper}. */ /** An inditifier for {@link BackupHelper}. */
public static final String TAG = "BatteryBackupHelper"; public static final String TAG = "BatteryBackupHelper";
private static final String DEVICE_IDLE_SERVICE = "deviceidle"; 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 = ",";
static final String DELIMITER_MODE = ":"; static final String DELIMITER_MODE = ":";
@@ -119,7 +117,7 @@ public final class BatteryBackupHelper implements BackupHelper {
Log.e(TAG, "backupFullPowerList() failed", e); Log.e(TAG, "backupFullPowerList() failed", e);
return null; return null;
} }
// Ignores unexpected emptty result case. // Ignores unexpected empty result case.
if (allowlistedApps == null || allowlistedApps.length == 0) { if (allowlistedApps == null || allowlistedApps.length == 0) {
Log.w(TAG, "no data found in the getFullPowerList()"); Log.w(TAG, "no data found in the getFullPowerList()");
return new ArrayList<>(); return new ArrayList<>();
@@ -145,8 +143,7 @@ public final class BatteryBackupHelper implements BackupHelper {
final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class); final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
// Converts application into the AppUsageState. // Converts application into the AppUsageState.
for (ApplicationInfo info : applications) { for (ApplicationInfo info : applications) {
final int mode = appOps.checkOpNoThrow( final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, info.uid, info.packageName);
@BatteryOptimizeUtils.OptimizationMode @BatteryOptimizeUtils.OptimizationMode
final int optimizationMode = BatteryOptimizeUtils.getAppOptimizationMode( final int optimizationMode = BatteryOptimizeUtils.getAppOptimizationMode(
mode, allowlistedApps.contains(info.packageName)); mode, allowlistedApps.contains(info.packageName));
@@ -159,7 +156,7 @@ public final class BatteryBackupHelper implements BackupHelper {
final String packageOptimizeMode = final String packageOptimizeMode =
info.packageName + DELIMITER_MODE + optimizationMode; info.packageName + DELIMITER_MODE + optimizationMode;
builder.append(packageOptimizeMode + DELIMITER); builder.append(packageOptimizeMode + DELIMITER);
debugLog(packageOptimizeMode); Log.d(TAG, "backupOptimizationMode: " + packageOptimizeMode);
backupCount++; backupCount++;
} }
@@ -255,9 +252,8 @@ public final class BatteryBackupHelper implements BackupHelper {
} }
private boolean isSystemOrDefaultApp(String packageName, int uid) { private boolean isSystemOrDefaultApp(String packageName, int uid) {
final PowerAllowlistBackend powerAllowlistBackend = getPowerAllowlistBackend(); return BatteryOptimizeUtils.isSystemOrDefaultApp(
return powerAllowlistBackend.isSysAllowlisted(packageName) getPowerAllowlistBackend(), packageName, uid);
|| powerAllowlistBackend.isDefaultActiveApp(packageName, uid);
} }
private ArraySet<ApplicationInfo> getInstalledApplications() { private ArraySet<ApplicationInfo> getInstalledApplications() {
@@ -267,10 +263,6 @@ public final class BatteryBackupHelper implements BackupHelper {
return BatteryOptimizeUtils.getInstalledApplications(mContext, getIPackageManager()); return BatteryOptimizeUtils.getInstalledApplications(mContext, getIPackageManager());
} }
private void debugLog(String debugContent) {
if (DEBUG) Log.d(TAG, debugContent);
}
private static void writeBackupData( private static void writeBackupData(
BackupDataOutput data, String dataKey, String dataContent) { BackupDataOutput data, String dataKey, String dataContent) {
final byte[] dataContentBytes = dataContent.getBytes(); final byte[] dataContentBytes = dataContent.getBytes();
@@ -283,6 +275,6 @@ public final class BatteryBackupHelper implements BackupHelper {
} }
private static boolean isOwner() { private static boolean isOwner() {
return UserHandle.myUserId() == UserHandle.USER_OWNER; return UserHandle.myUserId() == UserHandle.USER_SYSTEM;
} }
} }

View File

@@ -83,8 +83,7 @@ public class BatteryOptimizeUtils {
mAppOpsManager = context.getSystemService(AppOpsManager.class); mAppOpsManager = context.getSystemService(AppOpsManager.class);
mBatteryUtils = BatteryUtils.getInstance(context); mBatteryUtils = BatteryUtils.getInstance(context);
mPowerAllowListBackend = PowerAllowlistBackend.getInstance(context); mPowerAllowListBackend = PowerAllowlistBackend.getInstance(context);
mMode = mAppOpsManager mMode = getMode(mAppOpsManager, mUid, mPackageName);
.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, mUid, mPackageName);
mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName, mUid); mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName, mUid);
} }
@@ -204,7 +203,12 @@ public class BatteryOptimizeUtils {
return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName; 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) { PowerAllowlistBackend powerAllowlistBackend, String packageName, int uid) {
return powerAllowlistBackend.isSysAllowlisted(packageName) return powerAllowlistBackend.isSysAllowlisted(packageName)
|| powerAllowlistBackend.isDefaultActiveApp(packageName, uid); || powerAllowlistBackend.isDefaultActiveApp(packageName, uid);