Merge "Support test skipping when power save modes aren't enabled."

This commit is contained in:
Kweku Adams
2023-06-30 16:32:44 +00:00
committed by Gerrit Code Review
8 changed files with 52 additions and 2 deletions

View File

@@ -1565,8 +1565,10 @@ public class AppStandbyController
@Override
@StandbyBuckets public int getAppStandbyBucket(String packageName, int userId,
long elapsedRealtime, boolean shouldObfuscateInstantApps) {
if (!mAppIdleEnabled || (shouldObfuscateInstantApps
&& mInjector.isPackageEphemeral(userId, packageName))) {
if (!mAppIdleEnabled) {
return STANDBY_BUCKET_EXEMPTED;
}
if (shouldObfuscateInstantApps && mInjector.isPackageEphemeral(userId, packageName)) {
return STANDBY_BUCKET_ACTIVE;
}

View File

@@ -683,6 +683,7 @@ package android.app.usage {
public final class UsageStatsManager {
method public void forceUsageSourceSettingRead();
method public boolean isAppStandbyEnabled();
}
}
@@ -1834,6 +1835,7 @@ package android.os {
}
public final class PowerManager {
method public boolean areAutoPowerSaveModesEnabled();
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER}) public void forceLowPowerStandbyActive(boolean);
field public static final String ACTION_ENHANCED_DISCHARGE_PREDICTION_CHANGED = "android.os.action.ENHANCED_DISCHARGE_PREDICTION_CHANGED";
field @RequiresPermission(android.Manifest.permission.DEVICE_POWER) public static final int SYSTEM_WAKELOCK = -2147483648; // 0x80000000

View File

@@ -44,6 +44,7 @@ interface IUsageStatsManager {
UsageEvents queryEventsForPackageForUser(long beginTime, long endTime, int userId, String pkg, String callingPackage);
@UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
void setAppInactive(String packageName, boolean inactive, int userId);
boolean isAppStandbyEnabled();
@UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
boolean isAppInactive(String packageName, int userId, String callingPackage);
void onCarrierPrivilegedAppsChanged();

View File

@@ -641,6 +641,19 @@ public final class UsageStatsManager {
return aggregatedStats;
}
/**
* Returns whether the app standby bucket feature is enabled.
* @hide
*/
@TestApi
public boolean isAppStandbyEnabled() {
try {
return mService.isAppStandbyEnabled();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Returns whether the specified app is currently considered inactive. This will be true if the
* app hasn't been used directly or indirectly for a period of time defined by the system. This

View File

@@ -53,6 +53,7 @@ interface IPowerManager
float getBrightnessConstraint(int constraint);
@UnsupportedAppUsage
boolean isInteractive();
boolean areAutoPowerSaveModesEnabled();
boolean isPowerSaveMode();
PowerSaveState getPowerSaveState(int serviceType);
boolean setPowerSaveModeEnabled(boolean mode);

View File

@@ -1865,6 +1865,21 @@ public final class PowerManager {
}
}
/**
* Returns true if the platform has auto power save modes (eg. Doze & app standby) enabled.
* This doesn't necessarily mean that the individual features are enabled. For example, if this
* returns true, Doze might be enabled while app standby buckets remain disabled.
* @hide
*/
@TestApi
public boolean areAutoPowerSaveModesEnabled() {
try {
return mService.areAutoPowerSaveModesEnabled();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Returns true if the device is currently in power save mode. When in this mode,
* applications should reduce their functionality in order to conserve battery as

View File

@@ -5824,6 +5824,17 @@ public final class PowerManagerService extends SystemService
}
}
@Override // Binder call
public boolean areAutoPowerSaveModesEnabled() {
final long ident = Binder.clearCallingIdentity();
try {
return mContext.getResources().getBoolean(
com.android.internal.R.bool.config_enableAutoPowerModes);
} finally {
Binder.restoreCallingIdentity(ident);
}
}
@Override // Binder call
public boolean isPowerSaveMode() {
final long ident = Binder.clearCallingIdentity();

View File

@@ -2288,6 +2288,11 @@ public class UsageStatsService extends SystemService implements
}
}
@Override
public boolean isAppStandbyEnabled() {
return mAppStandby.isAppIdleEnabled();
}
@Override
public boolean isAppInactive(String packageName, int userId, String callingPackage) {
final int callingUid = Binder.getCallingUid();