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

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

Change-Id: I8d106c507913a9f1e0311ac47a5e1da5d34a6ee0
This commit is contained in:
Rambo Wang
2021-11-19 23:21:26 +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");
}