toRequestOptions method
Convert the input requests to a RequestOptions object needed for the web navigator request.
Implementation
RequestOptions toRequestOptions() {
final filters = _requestFilters.map((final e) => e.toScanFilter()).toList();
final optionalServices = _optionalServices?.isNotEmpty ?? false
? _optionalServices?.map((final e) => e.toLowerCase()).toList()
: null;
final exclusionFilters = _exclusionFilters?.isNotEmpty ?? false
? _exclusionFilters?.map((final e) => e.toScanFilter()).toList()
: null;
final optionalManufacturerData =
_optionalManufacturerData?.isNotEmpty ?? false
? _optionalManufacturerData
: null;
if (_acceptAllDevices) {
if (optionalServices == null && optionalManufacturerData == null) {
return RequestOptions(acceptAllDevices: true);
} else if (optionalServices != null && optionalManufacturerData == null) {
return RequestOptions(
acceptAllDevices: true,
optionalServices: optionalServices,
);
} else if (optionalServices == null && optionalManufacturerData != null) {
return RequestOptions(
acceptAllDevices: true,
optionalManufacturerData: optionalManufacturerData,
);
} else {
return RequestOptions(
acceptAllDevices: true,
optionalServices: optionalServices!,
optionalManufacturerData: optionalManufacturerData!,
);
}
} else {
if (optionalServices == null &&
exclusionFilters == null &&
optionalManufacturerData == null) {
return RequestOptions(
filters: filters,
);
} else if (optionalServices != null &&
exclusionFilters == null &&
optionalManufacturerData == null) {
return RequestOptions(
filters: filters,
optionalServices: optionalServices,
);
} else if (optionalServices == null &&
exclusionFilters != null &&
optionalManufacturerData == null) {
return RequestOptions(
filters: filters,
exclusionFilters: exclusionFilters,
);
} else if (optionalServices == null &&
exclusionFilters == null &&
optionalManufacturerData != null) {
return RequestOptions(
filters: filters,
optionalManufacturerData: optionalManufacturerData,
);
} else if (optionalServices != null &&
exclusionFilters != null &&
optionalManufacturerData == null) {
return RequestOptions(
filters: filters,
optionalServices: optionalServices,
exclusionFilters: exclusionFilters,
);
} else if (optionalServices == null &&
exclusionFilters != null &&
optionalManufacturerData != null) {
return RequestOptions(
filters: filters,
optionalManufacturerData: optionalManufacturerData,
exclusionFilters: exclusionFilters,
);
} else if (optionalServices != null &&
exclusionFilters == null &&
optionalManufacturerData != null) {
return RequestOptions(
filters: filters,
optionalServices: optionalServices,
optionalManufacturerData: optionalManufacturerData,
);
} else {
return RequestOptions(
filters: filters,
optionalServices: optionalServices!,
optionalManufacturerData: optionalManufacturerData!,
exclusionFilters: exclusionFilters!,
);
}
}
}