initializeVless method

  1. @override
Future<void> initializeVless({
  1. required void onStatusChanged(
    1. VlessStatus status
    ),
  2. required String notificationIconResourceType,
  3. required String notificationIconResourceName,
  4. required String providerBundleIdentifier,
  5. required String groupIdentifier,
})
override

Initializes platform channels and native configuration.

Implementation

@override
Future<void> initializeVless({
  required void Function(VlessStatus status) onStatusChanged,
  required String notificationIconResourceType,
  required String notificationIconResourceName,
  required String providerBundleIdentifier,
  required String groupIdentifier,
}) async {
  await _statusSubscription?.cancel();
  _statusSubscription = eventChannel
      .receiveBroadcastStream()
      .distinct()
      .listen((Object? event) {
    final status = VlessStatus.tryParse(event);
    if (status != null) {
      onStatusChanged(status);
    } else {
      debugPrint('Ignoring malformed VLESS status payload: $event');
    }
  }, onError: (Object error, StackTrace stackTrace) {
    debugPrint('VLESS status stream error: $error');
  });

  await methodChannel.invokeMethod(
    'initializeVless',
    {
      'notificationIconResourceType': notificationIconResourceType,
      'notificationIconResourceName': notificationIconResourceName,
      'providerBundleIdentifier': providerBundleIdentifier,
      'groupIdentifier': groupIdentifier,
    },
  );
}