setFocusMode method

  1. @override
Future<Map<String, dynamic>> setFocusMode(
  1. FocusMode focusMode, [
  2. FocusPoint? focusPoint
])
override

Set focus mode and point

Implementation

@override
Future<Map<String, dynamic>> setFocusMode(FocusMode focusMode, [FocusPoint? focusPoint]) async {
  try {
    if (kDebugMode) {
      debugPrint('QuickQR Scanner: Setting focus mode to ${focusMode.value}');
    }

    final arguments = {
      'focusMode': focusMode.value,
      if (focusPoint != null) 'focusPoint': focusPoint.toMap(),
    };

    final result = await methodChannel.invokeMethod<Map<Object?, Object?>>(
      'setFocusMode',
      arguments
    );
    final focusState = Map<String, dynamic>.from(result ?? {});

    if (kDebugMode) {
      debugPrint('QuickQR Scanner: Focus mode set - $focusState');
    }

    return focusState;
  } on PlatformException catch (e) {
    throw _handlePlatformException(e, 'setFocusMode');
  } catch (e) {
    throw ScannerException(
      ScannerErrorCode.internalError,
      'Failed to set focus mode: $e',
    );
  }
}