toRequestOptions method

RequestOptions toRequestOptions()

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!,
      );
    }
  }
}