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

Commit c57c52b3 authored by Robert Horvath's avatar Robert Horvath Committed by Android (Google) Code Review
Browse files

Merge "Handle `null` LPS policy when LPS is not supported"

parents d7391e70 37ec4b71
Loading
Loading
Loading
Loading
+38 −22
Original line number Original line Diff line number Diff line
@@ -810,7 +810,7 @@ public class LowPowerStandbyController {
        }
        }
    }
    }


    @NonNull
    @Nullable
    LowPowerStandbyPolicy getPolicy() {
    LowPowerStandbyPolicy getPolicy() {
        synchronized (mLock) {
        synchronized (mLock) {
            if (!mSupportedConfig) {
            if (!mSupportedConfig) {
@@ -912,9 +912,10 @@ public class LowPowerStandbyController {
            final int[] allowlistUids = getAllowlistUidsLocked();
            final int[] allowlistUids = getAllowlistUidsLocked();
            ipw.print("Allowed UIDs=");
            ipw.print("Allowed UIDs=");
            ipw.println(Arrays.toString(allowlistUids));
            ipw.println(Arrays.toString(allowlistUids));
            ipw.println();


            final LowPowerStandbyPolicy policy = getPolicy();
            final LowPowerStandbyPolicy policy = getPolicy();
            if (policy != null) {
                ipw.println();
                ipw.println("mPolicy:");
                ipw.println("mPolicy:");
                ipw.increaseIndent();
                ipw.increaseIndent();
                ipw.print("mIdentifier=");
                ipw.print("mIdentifier=");
@@ -926,6 +927,7 @@ public class LowPowerStandbyController {
                ipw.print("mAllowedFeatures=");
                ipw.print("mAllowedFeatures=");
                ipw.println(String.join(",", policy.getAllowedFeatures()));
                ipw.println(String.join(",", policy.getAllowedFeatures()));
                ipw.decreaseIndent();
                ipw.decreaseIndent();
            }


            ipw.println();
            ipw.println();
            ipw.println("UID allowed reasons:");
            ipw.println("UID allowed reasons:");
@@ -965,8 +967,9 @@ public class LowPowerStandbyController {
                proto.write(LowPowerStandbyControllerDumpProto.ALLOWLIST, appId);
                proto.write(LowPowerStandbyControllerDumpProto.ALLOWLIST, appId);
            }
            }


            long policyToken = proto.start(LowPowerStandbyControllerDumpProto.POLICY);
            final LowPowerStandbyPolicy policy = getPolicy();
            final LowPowerStandbyPolicy policy = getPolicy();
            if (policy != null) {
                long policyToken = proto.start(LowPowerStandbyControllerDumpProto.POLICY);
                proto.write(LowPowerStandbyPolicyProto.IDENTIFIER, policy.getIdentifier());
                proto.write(LowPowerStandbyPolicyProto.IDENTIFIER, policy.getIdentifier());
                for (String exemptPackage : policy.getExemptPackages()) {
                for (String exemptPackage : policy.getExemptPackages()) {
                    proto.write(LowPowerStandbyPolicyProto.EXEMPT_PACKAGES, exemptPackage);
                    proto.write(LowPowerStandbyPolicyProto.EXEMPT_PACKAGES, exemptPackage);
@@ -976,6 +979,7 @@ public class LowPowerStandbyController {
                    proto.write(LowPowerStandbyPolicyProto.ALLOWED_FEATURES, feature);
                    proto.write(LowPowerStandbyPolicyProto.ALLOWED_FEATURES, feature);
                }
                }
                proto.end(policyToken);
                proto.end(policyToken);
            }
            proto.end(token);
            proto.end(token);
        }
        }
    }
    }
@@ -1045,6 +1049,9 @@ public class LowPowerStandbyController {
                    "Adding to allowlist: uid=" + uid + ", allowedReason=" + allowedReason);
                    "Adding to allowlist: uid=" + uid + ", allowedReason=" + allowedReason);
        }
        }
        synchronized (mLock) {
        synchronized (mLock) {
            if (!mSupportedConfig) {
                return;
            }
            if (allowedReason != 0 && !hasAllowedReasonLocked(uid, allowedReason)) {
            if (allowedReason != 0 && !hasAllowedReasonLocked(uid, allowedReason)) {
                addAllowedReasonLocked(uid, allowedReason);
                addAllowedReasonLocked(uid, allowedReason);
                if ((getPolicy().getAllowedReasons() & allowedReason) != 0) {
                if ((getPolicy().getAllowedReasons() & allowedReason) != 0) {
@@ -1060,6 +1067,9 @@ public class LowPowerStandbyController {
            Slog.i(TAG, "Removing from allowlist: uid=" + uid + ", allowedReason=" + allowedReason);
            Slog.i(TAG, "Removing from allowlist: uid=" + uid + ", allowedReason=" + allowedReason);
        }
        }
        synchronized (mLock) {
        synchronized (mLock) {
            if (!mSupportedConfig) {
                return;
            }
            if (allowedReason != 0 && hasAllowedReasonLocked(uid, allowedReason)) {
            if (allowedReason != 0 && hasAllowedReasonLocked(uid, allowedReason)) {
                removeAllowedReasonLocked(uid, allowedReason);
                removeAllowedReasonLocked(uid, allowedReason);
                if ((getPolicy().getAllowedReasons() & allowedReason) != 0) {
                if ((getPolicy().getAllowedReasons() & allowedReason) != 0) {
@@ -1075,6 +1085,9 @@ public class LowPowerStandbyController {
        final PackageManager packageManager = mContext.getPackageManager();
        final PackageManager packageManager = mContext.getPackageManager();
        final LowPowerStandbyPolicy policy = getPolicy();
        final LowPowerStandbyPolicy policy = getPolicy();
        final List<Integer> appIds = new ArrayList<>();
        final List<Integer> appIds = new ArrayList<>();
        if (policy == null) {
            return appIds;
        }


        for (String packageName : policy.getExemptPackages()) {
        for (String packageName : policy.getExemptPackages()) {
            try {
            try {
@@ -1098,6 +1111,9 @@ public class LowPowerStandbyController {
        final List<UserHandle> userHandles = userManager.getUserHandles(true);
        final List<UserHandle> userHandles = userManager.getUserHandles(true);
        final ArraySet<Integer> uids = new ArraySet<>(mUidAllowedReasons.size());
        final ArraySet<Integer> uids = new ArraySet<>(mUidAllowedReasons.size());
        final LowPowerStandbyPolicy policy = getPolicy();
        final LowPowerStandbyPolicy policy = getPolicy();
        if (policy == null) {
            return new int[0];
        }


        final int policyAllowedReasons = policy.getAllowedReasons();
        final int policyAllowedReasons = policy.getAllowedReasons();
        for (int i = 0; i < mUidAllowedReasons.size(); i++) {
        for (int i = 0; i < mUidAllowedReasons.size(); i++) {