Merge "Do not allow null signal thresholds in SignalStrengthUpdateRequest"
This commit is contained in:
@@ -71,12 +71,7 @@ public final class SignalStrengthUpdateRequest implements Parcelable {
|
|||||||
@Nullable List<SignalThresholdInfo> signalThresholdInfos,
|
@Nullable List<SignalThresholdInfo> signalThresholdInfos,
|
||||||
boolean isReportingRequestedWhileIdle,
|
boolean isReportingRequestedWhileIdle,
|
||||||
boolean isSystemThresholdReportingRequestedWhileIdle) {
|
boolean isSystemThresholdReportingRequestedWhileIdle) {
|
||||||
// System app (like Bluetooth) can specify the request to report system thresholds while
|
validate(signalThresholdInfos, isSystemThresholdReportingRequestedWhileIdle);
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
mSignalThresholdInfos = signalThresholdInfos;
|
mSignalThresholdInfos = signalThresholdInfos;
|
||||||
mIsReportingRequestedWhileIdle = isReportingRequestedWhileIdle;
|
mIsReportingRequestedWhileIdle = isReportingRequestedWhileIdle;
|
||||||
@@ -274,8 +269,12 @@ public final class SignalStrengthUpdateRequest implements Parcelable {
|
|||||||
* Throw IAE if SignalThresholdInfo collection is null or empty,
|
* Throw IAE if SignalThresholdInfo collection is null or empty,
|
||||||
* or the SignalMeasurementType for the same RAN in the collection is not unique.
|
* or the SignalMeasurementType for the same RAN in the collection is not unique.
|
||||||
*/
|
*/
|
||||||
private static void validate(Collection<SignalThresholdInfo> infos) {
|
private static void validate(Collection<SignalThresholdInfo> infos,
|
||||||
if (infos == null || infos.isEmpty()) {
|
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");
|
throw new IllegalArgumentException("SignalThresholdInfo collection is null or empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user