AI_Drawing/lib/common/dialog_util.dart
2024-06-03 15:30:15 +08:00

35 lines
1.1 KiB
Dart

import 'dart:convert';
import 'package:convert/convert.dart';
import 'package:crypto/crypto.dart';
import 'package:flutter/material.dart';
/// @desc 弹窗 widget 统一创建类
/// @time 2019-11-06 09:42
/// @author Cheney
class DialogUtil {
///对话框提示显示
///[id] 同一对话框唯一标识
static Widget createTipWidget(BuildContext context, Widget dialog, String message,
{String? id, bool hasTips = true, bool canceled = true, String? cancelText, String? confirmText, final Function? onTap
/* OnCancelListener onCancelListener,
OnConfirmListener onConfirmListener,*/
}) {
return WillPopScope(key: ValueKey(id ?? generateId("createTipWidget$message")), child: dialog, onWillPop: () async => canceled);
}
///生成对话框 id
static String generateId(String txt) {
assert(txt != null);
return generateMd5(txt);
}
/// md5 加密
static String generateMd5(String data) {
var content = Utf8Encoder().convert(data);
var digest = md5.convert(content);
// 这里其实就是 digest.toString()
return hex.encode(digest.bytes);
}
}