initialize method

  1. @override
Future<void> initialize()
override

Initialize the printer plugin.

Implementation

@override
Future<void> initialize() async {
  //print('🔄 Flutter: Starting initialization...');

  try {
    // Set up method call handler first
    methodChannel.setMethodCallHandler(_handleMethodCall);
    //print('✅ Flutter: Method call handler set up');

    // Call native initialization with explicit timeout
    //print('📱 Flutter: Calling native initialize method...');

    final result = await methodChannel.invokeMethod('initialize').timeout(
      const Duration(seconds: 10),
      onTimeout: () {
        //print('⏰ Flutter: Initialize method call timed out');
        throw TimeoutException(
            'Initialize method call timed out', const Duration(seconds: 10));
      },
    );

    //print('📱 Flutter: Native initialize returned: $result');

    if (result == true) {
      _isInitialized = true;
      //print('✅ Flutter: XPrinterPck initialized successfully');
    } else {
      _isInitialized = false;
      //print('❌ Flutter: Native initialize returned false');
      throw Exception('Native initialization returned false');
    }
  } on PlatformException {
    _isInitialized = false;
    //print(
    // '❌ Flutter: PlatformException during initialization: ${e.code} - ${e.message}');
    //print('   Details: ${e.details}');
    rethrow;
  } on TimeoutException {
    _isInitialized = false;
    //print('❌ Flutter: Timeout during initialization: $e');
    rethrow;
  } catch (e) {
    _isInitialized = false;
    //print('❌ Flutter: Unexpected error during initialization: $e');
    rethrow;
  }
}