applyCameraControlConfig method

  1. @override
Future<Map<String, dynamic>> applyCameraControlConfig(
  1. CameraControlConfig config
)
override

Apply complete camera control configuration

Implementation

@override
Future<Map<String, dynamic>> applyCameraControlConfig(CameraControlConfig config) async {
  try {
    if (kDebugMode) {
      debugPrint('QuickQR Scanner: Applying camera control config - $config');
    }

    // Validate configuration
    final warnings = config.validate();
    if (warnings.isNotEmpty && kDebugMode) {
      debugPrint('QuickQR Scanner: Camera control config warnings - $warnings');
    }

    final arguments = config.toMap();
    final result = await methodChannel.invokeMethod<Map<Object?, Object?>>(
      'applyCameraControlConfig',
      arguments
    );
    final configResult = Map<String, dynamic>.from(result ?? {});

    if (kDebugMode) {
      debugPrint('QuickQR Scanner: Camera control config applied - $configResult');
    }

    return configResult;
  } on PlatformException catch (e) {
    throw _handlePlatformException(e, 'applyCameraControlConfig');
  } catch (e) {
    throw ScannerException(
      ScannerErrorCode.internalError,
      'Failed to apply camera control config: $e',
    );
  }
}