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

Commit 1656f9a8 authored by Kweku Adams's avatar Kweku Adams
Browse files

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

Some classes of devices will not have auto power save modes enabled. On
those devices, we should skip tests that require the modes be enabled.

Bug: 240108412
Bug: 240630396
Test: Manually go through CTS-V "Ignore Battery Optimizations Test"
Test: atest CtsUsageStatsTestCases:UsageStatsTest
Change-Id: Icc64fbe75213386a1f41fae258e50c4032920b0a
(cherry picked from commit ba3b5d7e)
Merged-In: Icc64fbe75213386a1f41fae258e50c4032920b0a
parent 6ee06fa1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1554,8 +1554,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;
        }

+2 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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();
+13 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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);
Loading