initialize method

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

Implementation

@override
Future<void> initialize(ULinkConfig config) async {
  await methodChannel.invokeMethod('initialize', {'config': config.toMap()});

  // Set up event channel listeners
  _dynamicLinkSubscription =
      dynamicLinkEventChannel.receiveBroadcastStream().listen(
    (dynamic event) {
      if (event != null) {
        final linkData = ULinkResolvedData.fromJson(
          Map<String, dynamic>.from(event),
        );
        _dynamicLinkController.add(linkData);
      }
    },
    onError: (error) {
      debugPrint('Dynamic link event channel error: $error');
    },
  );

  _unifiedLinkSubscription =
      unifiedLinkEventChannel.receiveBroadcastStream().listen(
    (dynamic event) {
      if (event != null) {
        final linkData = ULinkResolvedData.fromJson(
          Map<String, dynamic>.from(event),
        );
        _unifiedLinkController.add(linkData);
      }
    },
    onError: (error) {
      debugPrint('Unified link event channel error: $error');
    },
  );

  _logSubscription = logEventChannel.receiveBroadcastStream().listen(
    (dynamic event) {
      if (event != null) {
        final logEntry = ULinkLogEntry.fromMap(
          Map<dynamic, dynamic>.from(event),
        );
        _logController.add(logEntry);
      }
    },
    onError: (error) {
      debugPrint('Log event channel error: $error');
    },
  );

  _reinstallSubscription =
      reinstallEventChannel.receiveBroadcastStream().listen(
    (dynamic event) {
      if (event != null) {
        final installationInfo = ULinkInstallationInfo.fromJson(
          Map<String, dynamic>.from(event),
        );
        _reinstallController.add(installationInfo);
      }
    },
    onError: (error) {
      debugPrint('Reinstall event channel error: $error');
    },
  );
}