show method

void show(
  1. String message, {
  2. ComToastConfig? config,
  3. bool skipDuplicateFilter = false,
})

Implementation

void show(
  String message, {
  ComToastConfig? config,
  bool skipDuplicateFilter = false, // 可选:跳过重复过滤
}) {
  // 合并配置以获取最终类型
  final finalConfig = _mergeConfigs(config);

  // 自动过滤空消息(但custom类型例外,因为它们使用builder构建内容)
  if (message.trim().isEmpty && finalConfig.type != ComToastType.custom) {
    return;
  }

  // 1秒内相同消息自动过滤(可跳过)
  if (!skipDuplicateFilter) {
    final now = DateTime.now();
    if (_lastMessage == message &&
        _lastShowTime != null &&
        now.difference(_lastShowTime!).inMilliseconds <
            _duplicateFilterDuration) {
      return;
    }

    // 记录当前消息和时间
    _lastMessage = message;
    _lastShowTime = now;
  }

  // 如果有正在显示的Toast,立即替换
  if (_overlayManager.isToastShowing) {
    _dismissCurrent();
  }

  _showToast(message, finalConfig);
}