Merge "Do not allow null signal thresholds in SignalStrengthUpdateRequest" am: b6aa5b7d37 am: 59cd9748a2

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1894915

Change-Id: I7fc547bcec6a9d16b2a3e148a4fbfaae50f66285
This commit is contained in:
Rambo Wang
2021-11-19 23:37:50 +00:00
committed by Automerger Merge Worker

View File

@@ -71,12 +71,7 @@ public final class SignalStrengthUpdateRequest implements Parcelable {
@Nullable List<SignalThresholdInfo> signalThresholdInfos,
boolean isReportingRequestedWhileIdle,
boolean isSystemThresholdReportingRequestedWhileIdle) {
// System app (like Bluetooth) can specify the request to report system thresholds while
// device is idle (with permission protection). In this case, the request doesn't need to
// provide a non-empty list of SignalThresholdInfo which is only asked for public apps.
if (!isSystemThresholdReportingRequestedWhileIdle) {
validate(signalThresholdInfos);
}
validate(signalThresholdInfos, isSystemThresholdReportingRequestedWhileIdle);
mSignalThresholdInfos = signalThresholdInfos;
mIsReportingRequestedWhileIdle = isReportingRequestedWhileIdle;
@@ -274,8 +269,12 @@ public final class SignalStrengthUpdateRequest implements Parcelable {
* Throw IAE if SignalThresholdInfo collection is null or empty,
* or the SignalMeasurementType for the same RAN in the collection is not unique.
*/
private static void validate(Collection<SignalThresholdInfo> infos) {
if (infos == null || infos.isEmpty()) {
private static void validate(Collection<SignalThresholdInfo> infos,
boolean isSystemThresholdReportingRequestedWhileIdle) {
// System app (like Bluetooth) can specify the request to report system thresholds while
// device is idle (with permission protection). In this case, the request doesn't need to
// provide a non-empty list of SignalThresholdInfo which is only asked for public apps.
if (infos == null || (infos.isEmpty() && !isSystemThresholdReportingRequestedWhileIdle)) {
throw new IllegalArgumentException("SignalThresholdInfo collection is null or empty");
}