setAutoReloadConfiguration method

  1. @override
Future<AutoReloadConfig> setAutoReloadConfiguration({
  1. required AutoReloadConfigurationRequest request,
})
override

Set the auto reload configuration for a customer.

Implementation

@override
Future<AutoReloadConfig> setAutoReloadConfiguration(
    {required AutoReloadConfigurationRequest request}) async {
  try {
    final result = await methodChannel.invokeMethod(
      'setAutoReloadConfiguration',
      {'request': request.toMap()},
    );
    if (result != null) {
      if (result is Map && result.containsKey('config')) {
        // Handle the case where the result is nested inside a 'config' key (iOS)
        final configMap = result['config'] as Map<dynamic, dynamic>;
        final autoReloadConfigurationMap =
            Map<String, dynamic>.from(configMap);
        final autoReloadConfiguration =
            AutoReloadConfig.fromMap(autoReloadConfigurationMap);
        return autoReloadConfiguration;
      } else if (result is Map) {
        // Handle the case where the result is a direct map (Android)
        final autoReloadConfigurationMap = Map<String, dynamic>.from(result);
        final autoReloadConfiguration =
            AutoReloadConfig.fromMap(autoReloadConfigurationMap);
        return autoReloadConfiguration;
      } else {
        throw PlatformException(
          code: 'INVALID_RESULT',
          message: 'getAutoReloadConfiguration returned an invalid result',
        );
      }
    } else {
      throw PlatformException(
        code: 'NULL_RESULT',
        message: 'setAutoReloadConfiguration returned null',
      );
    }
  } on PlatformException {
    rethrow;
  }
}