Merge "Handle null LPS policy when LPS is not supported"
This commit is contained in:
committed by
Android (Google) Code Review
commit
c57c52b3e6
@@ -810,7 +810,7 @@ public class LowPowerStandbyController {
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Nullable
|
||||
LowPowerStandbyPolicy getPolicy() {
|
||||
synchronized (mLock) {
|
||||
if (!mSupportedConfig) {
|
||||
@@ -912,20 +912,22 @@ public class LowPowerStandbyController {
|
||||
final int[] allowlistUids = getAllowlistUidsLocked();
|
||||
ipw.print("Allowed UIDs=");
|
||||
ipw.println(Arrays.toString(allowlistUids));
|
||||
ipw.println();
|
||||
|
||||
final LowPowerStandbyPolicy policy = getPolicy();
|
||||
ipw.println("mPolicy:");
|
||||
ipw.increaseIndent();
|
||||
ipw.print("mIdentifier=");
|
||||
ipw.println(policy.getIdentifier());
|
||||
ipw.print("mExemptPackages=");
|
||||
ipw.println(String.join(",", policy.getExemptPackages()));
|
||||
ipw.print("mAllowedReasons=");
|
||||
ipw.println(lowPowerStandbyAllowedReasonsToString(policy.getAllowedReasons()));
|
||||
ipw.print("mAllowedFeatures=");
|
||||
ipw.println(String.join(",", policy.getAllowedFeatures()));
|
||||
ipw.decreaseIndent();
|
||||
if (policy != null) {
|
||||
ipw.println();
|
||||
ipw.println("mPolicy:");
|
||||
ipw.increaseIndent();
|
||||
ipw.print("mIdentifier=");
|
||||
ipw.println(policy.getIdentifier());
|
||||
ipw.print("mExemptPackages=");
|
||||
ipw.println(String.join(",", policy.getExemptPackages()));
|
||||
ipw.print("mAllowedReasons=");
|
||||
ipw.println(lowPowerStandbyAllowedReasonsToString(policy.getAllowedReasons()));
|
||||
ipw.print("mAllowedFeatures=");
|
||||
ipw.println(String.join(",", policy.getAllowedFeatures()));
|
||||
ipw.decreaseIndent();
|
||||
}
|
||||
|
||||
ipw.println();
|
||||
ipw.println("UID allowed reasons:");
|
||||
@@ -965,17 +967,19 @@ public class LowPowerStandbyController {
|
||||
proto.write(LowPowerStandbyControllerDumpProto.ALLOWLIST, appId);
|
||||
}
|
||||
|
||||
long policyToken = proto.start(LowPowerStandbyControllerDumpProto.POLICY);
|
||||
final LowPowerStandbyPolicy policy = getPolicy();
|
||||
proto.write(LowPowerStandbyPolicyProto.IDENTIFIER, policy.getIdentifier());
|
||||
for (String exemptPackage : policy.getExemptPackages()) {
|
||||
proto.write(LowPowerStandbyPolicyProto.EXEMPT_PACKAGES, exemptPackage);
|
||||
if (policy != null) {
|
||||
long policyToken = proto.start(LowPowerStandbyControllerDumpProto.POLICY);
|
||||
proto.write(LowPowerStandbyPolicyProto.IDENTIFIER, policy.getIdentifier());
|
||||
for (String exemptPackage : policy.getExemptPackages()) {
|
||||
proto.write(LowPowerStandbyPolicyProto.EXEMPT_PACKAGES, exemptPackage);
|
||||
}
|
||||
proto.write(LowPowerStandbyPolicyProto.ALLOWED_REASONS, policy.getAllowedReasons());
|
||||
for (String feature : policy.getAllowedFeatures()) {
|
||||
proto.write(LowPowerStandbyPolicyProto.ALLOWED_FEATURES, feature);
|
||||
}
|
||||
proto.end(policyToken);
|
||||
}
|
||||
proto.write(LowPowerStandbyPolicyProto.ALLOWED_REASONS, policy.getAllowedReasons());
|
||||
for (String feature : policy.getAllowedFeatures()) {
|
||||
proto.write(LowPowerStandbyPolicyProto.ALLOWED_FEATURES, feature);
|
||||
}
|
||||
proto.end(policyToken);
|
||||
proto.end(token);
|
||||
}
|
||||
}
|
||||
@@ -1045,6 +1049,9 @@ public class LowPowerStandbyController {
|
||||
"Adding to allowlist: uid=" + uid + ", allowedReason=" + allowedReason);
|
||||
}
|
||||
synchronized (mLock) {
|
||||
if (!mSupportedConfig) {
|
||||
return;
|
||||
}
|
||||
if (allowedReason != 0 && !hasAllowedReasonLocked(uid, allowedReason)) {
|
||||
addAllowedReasonLocked(uid, allowedReason);
|
||||
if ((getPolicy().getAllowedReasons() & allowedReason) != 0) {
|
||||
@@ -1060,6 +1067,9 @@ public class LowPowerStandbyController {
|
||||
Slog.i(TAG, "Removing from allowlist: uid=" + uid + ", allowedReason=" + allowedReason);
|
||||
}
|
||||
synchronized (mLock) {
|
||||
if (!mSupportedConfig) {
|
||||
return;
|
||||
}
|
||||
if (allowedReason != 0 && hasAllowedReasonLocked(uid, allowedReason)) {
|
||||
removeAllowedReasonLocked(uid, allowedReason);
|
||||
if ((getPolicy().getAllowedReasons() & allowedReason) != 0) {
|
||||
@@ -1075,6 +1085,9 @@ public class LowPowerStandbyController {
|
||||
final PackageManager packageManager = mContext.getPackageManager();
|
||||
final LowPowerStandbyPolicy policy = getPolicy();
|
||||
final List<Integer> appIds = new ArrayList<>();
|
||||
if (policy == null) {
|
||||
return appIds;
|
||||
}
|
||||
|
||||
for (String packageName : policy.getExemptPackages()) {
|
||||
try {
|
||||
@@ -1098,6 +1111,9 @@ public class LowPowerStandbyController {
|
||||
final List<UserHandle> userHandles = userManager.getUserHandles(true);
|
||||
final ArraySet<Integer> uids = new ArraySet<>(mUidAllowedReasons.size());
|
||||
final LowPowerStandbyPolicy policy = getPolicy();
|
||||
if (policy == null) {
|
||||
return new int[0];
|
||||
}
|
||||
|
||||
final int policyAllowedReasons = policy.getAllowedReasons();
|
||||
for (int i = 0; i < mUidAllowedReasons.size(); i++) {
|
||||
|
||||
Reference in New Issue
Block a user