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:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user