initialize method
Initialize the QR scanner
Implementation
@override
Future<Map<String, dynamic>> initialize([QRScanConfig? config]) async {
try {
final configuration = config ?? const QRScanConfig();
if (kDebugMode) {
debugPrint('QuickQR Scanner: Initializing with config - $configuration');
}
// Validate configuration
final warnings = configuration.validate();
if (warnings.isNotEmpty && kDebugMode) {
debugPrint('QuickQR Scanner: Configuration warnings - $warnings');
}
final arguments = configuration.toMap();
final result = await methodChannel.invokeMethod<Map<Object?, Object?>>('initialize', arguments);
final initResult = Map<String, dynamic>.from(result ?? {});
if (kDebugMode) {
debugPrint('QuickQR Scanner: Initialization result - $initResult');
}
return initResult;
} on PlatformException catch (e) {
throw _handlePlatformException(e, 'initialize');
} catch (e) {
if (e is ScannerException) rethrow;
throw ScannerException(
ScannerErrorCode.initializationFailed,
'Failed to initialize scanner: $e',
);
}
}