showOverlay method

  1. @override
Future<bool> showOverlay({
  1. String? title,
  2. String? content,
  3. String? buttonText,
  4. NativeOverlayStyle? style,
  5. dynamic customImageBytes,
  6. dynamic avatarBytes,
  7. bool isDraggable = true,
  8. Duration? duration,
})
override

Implementation

@override
Future<bool> showOverlay({
  String? title,
  String? content,
  String? buttonText,
  NativeOverlayStyle? style,
  dynamic customImageBytes,
  dynamic avatarBytes,
  bool isDraggable = true,
  Duration? duration,
}) async {
  final Map<String, dynamic> arguments = {
    'title': title,
    'content': content,
    'buttonText': buttonText,
    'isDraggable': isDraggable,
    'durationMs': duration?.inMilliseconds,
  };

  if (customImageBytes != null) {
    arguments['customImageBytes'] = customImageBytes;
  }

  if (avatarBytes != null) {
    debugPrint('Sending avatarBytes to native: ${avatarBytes.length} bytes');
    arguments['avatarBytes'] = avatarBytes;
  }

  if (style != null) {
    arguments.addAll(style.toMap());
  }

  final result = await methodChannel.invokeMethod<bool>('showOverlay', arguments);
  return result ?? false;
}