From 540d421d3bb6f449d6f52bd4817e24255f892941 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AD=99=E5=A8=87?=
Date: Mon, 26 Feb 2024 23:58:44 +0800
Subject: [PATCH] use `CustomDialog` to add `constraints`
---
lib/dialogs/increment_dialog.dart | 3 ++-
lib/dialogs/insert_dialog.dart | 3 ++-
lib/dialogs/metadata_dialog.dart | 4 +++-
lib/dialogs/rearrange_dialog.dart | 3 ++-
lib/dialogs/replace_dialog.dart | 3 ++-
lib/dialogs/transliterate_dialog.dart | 3 ++-
lib/dialogs/truncate_dialog.dart | 3 ++-
lib/main.dart | 5 +++--
lib/pages/home_page.dart | 3 ++-
lib/tools/rename.dart | 3 ++-
lib/widget/custom_dialog.dart | 20 ++++++++++++++++++++
11 files changed, 42 insertions(+), 11 deletions(-)
create mode 100644 lib/widget/custom_dialog.dart
diff --git a/lib/dialogs/increment_dialog.dart b/lib/dialogs/increment_dialog.dart
index 6735b17..130834c 100644
--- a/lib/dialogs/increment_dialog.dart
+++ b/lib/dialogs/increment_dialog.dart
@@ -5,6 +5,7 @@ import '../entity/constants.dart';
import '../l10n/l10n.dart';
import '../rules/rule.dart';
import '../widget/checkbox_tile.dart';
+import '../widget/custom_dialog.dart';
void showIncrementDialog(BuildContext context, Function(Rule) onSave) => showDialog(
context: context,
@@ -35,7 +36,7 @@ class _IncrementDialogState extends State {
@override
Widget build(BuildContext context) {
- return AlertDialog(
+ return CustomDialog(
title: Text('${L10n.current.addRule}: ${L10n.current.increment}'),
content: SingleChildScrollView(
child: Column(
diff --git a/lib/dialogs/insert_dialog.dart b/lib/dialogs/insert_dialog.dart
index d55eb70..73f23ef 100644
--- a/lib/dialogs/insert_dialog.dart
+++ b/lib/dialogs/insert_dialog.dart
@@ -7,6 +7,7 @@ import '../l10n/l10n.dart';
import '../tools/ex_text_editing_controller.dart';
import '../rules/rule.dart';
import '../widget/checkbox_tile.dart';
+import '../widget/custom_dialog.dart';
void showInsertDialog(BuildContext context, Function(Rule) onSave) => showDialog(
context: context,
@@ -36,7 +37,7 @@ class _InsertDialogState extends State {
@override
Widget build(BuildContext context) {
- return AlertDialog(
+ return CustomDialog(
title: Text('${L10n.current.addRule}: ${L10n.current.insert}'),
content: SingleChildScrollView(
child: Column(
diff --git a/lib/dialogs/metadata_dialog.dart b/lib/dialogs/metadata_dialog.dart
index 02b2a9c..b6a67cd 100644
--- a/lib/dialogs/metadata_dialog.dart
+++ b/lib/dialogs/metadata_dialog.dart
@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:renamer/l10n/l10n.dart';
+import '../widget/custom_dialog.dart';
+
void showMetadataDialog(BuildContext context, Function(String tag) onInsert) => showDialog(
context: context,
builder: (context) => MetadataDialog(
@@ -38,7 +40,7 @@ class MetadataDialog extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return AlertDialog(
+ return CustomDialog(
title: Text(L10n.current.metadataTags),
content: SingleChildScrollView(
child: Column(
diff --git a/lib/dialogs/rearrange_dialog.dart b/lib/dialogs/rearrange_dialog.dart
index 8e9fcf0..677720d 100644
--- a/lib/dialogs/rearrange_dialog.dart
+++ b/lib/dialogs/rearrange_dialog.dart
@@ -5,6 +5,7 @@ import '../entity/constants.dart';
import '../l10n/l10n.dart';
import '../rules/rule.dart';
import '../widget/checkbox_tile.dart';
+import '../widget/custom_dialog.dart';
void showRearrangeDialog(BuildContext context, Function(Rule) onSave) => showDialog(
context: context,
@@ -29,7 +30,7 @@ class _RearrangeDialogState extends State {
@override
Widget build(BuildContext context) {
- return AlertDialog(
+ return CustomDialog(
title: Text('${L10n.current.addRule}: ${L10n.current.rearrange}'),
content: SingleChildScrollView(
child: Column(
diff --git a/lib/dialogs/replace_dialog.dart b/lib/dialogs/replace_dialog.dart
index 76e1570..c40d766 100644
--- a/lib/dialogs/replace_dialog.dart
+++ b/lib/dialogs/replace_dialog.dart
@@ -6,6 +6,7 @@ import '../l10n/l10n.dart';
import '../tools/ex_text_editing_controller.dart';
import '../rules/rule.dart';
import '../widget/checkbox_tile.dart';
+import '../widget/custom_dialog.dart';
import 'metadata_dialog.dart';
void showReplaceDialog(BuildContext context, Function(Rule) onSave) => showDialog(
@@ -49,7 +50,7 @@ class _ReplaceDialogState extends State {
@override
Widget build(BuildContext context) {
- return AlertDialog(
+ return CustomDialog(
title: Text('${L10n.current.addRule}: $ruleName'),
content: SingleChildScrollView(
child: Column(
diff --git a/lib/dialogs/transliterate_dialog.dart b/lib/dialogs/transliterate_dialog.dart
index abfb377..cc16fc8 100644
--- a/lib/dialogs/transliterate_dialog.dart
+++ b/lib/dialogs/transliterate_dialog.dart
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import '../entity/transliterate.dart';
import '../l10n/l10n.dart';
+import '../widget/custom_dialog.dart';
import '../widget/custom_drop.dart';
import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
@@ -28,7 +29,7 @@ class _TransliterateDialogState extends State {
@override
Widget build(BuildContext context) {
- return AlertDialog(
+ return CustomDialog(
title: Text('${L10n.current.addRule}: ${L10n.current.transliterate}'),
content: SingleChildScrollView(
child: Column(
diff --git a/lib/dialogs/truncate_dialog.dart b/lib/dialogs/truncate_dialog.dart
index b0e8f21..c885f76 100644
--- a/lib/dialogs/truncate_dialog.dart
+++ b/lib/dialogs/truncate_dialog.dart
@@ -5,6 +5,7 @@ import '../entity/constants.dart';
import '../l10n/l10n.dart';
import '../rules/rule.dart';
import '../widget/checkbox_tile.dart';
+import '../widget/custom_dialog.dart';
void showTruncateDialog(BuildContext context, Function(Rule) onSave) => showDialog(
context: context,
@@ -55,7 +56,7 @@ class _TruncateDialogState extends State {
@override
Widget build(BuildContext context) {
- return AlertDialog(
+ return CustomDialog(
title: Text('${L10n.current.addRule}: ${L10n.current.truncate}'),
content: SingleChildScrollView(
child: Column(
diff --git a/lib/main.dart b/lib/main.dart
index 174d28b..19ba73c 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -8,6 +8,7 @@ import 'entity/sharedpref.dart';
import 'entity/theme_extension.dart';
import 'l10n/l10n.dart';
import 'pages/home_page.dart';
+import 'widget/custom_dialog.dart';
late Locale _appLocale;
@@ -106,7 +107,7 @@ class AppPage extends StatelessWidget {
void _permissionRequest(BuildContext context) => showDialog(
context: context,
- builder: (contextD) => AlertDialog(
+ builder: (contextD) => CustomDialog(
title: Text(L10n.current.permissionTitle),
content: Text(L10n.current.permissionContent),
actions: [
@@ -129,7 +130,7 @@ class AppPage extends StatelessWidget {
void _cannotRun(BuildContext context) {
showDialog(
context: context,
- builder: (context) => AlertDialog(
+ builder: (context) => CustomDialog(
title: Text(L10n.current.exitTitle),
content: Text(L10n.current.exitContent),
actions: [
diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart
index d3283bc..c35b2e6 100644
--- a/lib/pages/home_page.dart
+++ b/lib/pages/home_page.dart
@@ -10,6 +10,7 @@ import '../l10n/l10n.dart';
import '../rules/rule.dart';
import '../tools/file_metadata.dart';
import '../tools/responsive.dart';
+import '../widget/custom_dialog.dart';
import 'rules_page.dart';
import 'files_page.dart';
@@ -228,7 +229,7 @@ class _HomeToolBarState extends State {
void ratingMyApp() => showDialog(
context: context,
- builder: (context) => AlertDialog(
+ builder: (context) => CustomDialog(
title: Text(L10n.current.ratingTitle),
content: Text(L10n.current.ratingContent),
actions: [
diff --git a/lib/tools/rename.dart b/lib/tools/rename.dart
index 79d03da..ce3db33 100644
--- a/lib/tools/rename.dart
+++ b/lib/tools/rename.dart
@@ -6,6 +6,7 @@ import 'package:flutter/services.dart';
import '../l10n/l10n.dart';
import '../tools/ex_file.dart';
+import '../widget/custom_dialog.dart';
Future rename(
FileSystemEntity file, {
@@ -28,7 +29,7 @@ Future rename(
if (context != null && context.mounted) {
showDialog(
context: context,
- builder: (dContext) => AlertDialog(
+ builder: (dContext) => CustomDialog(
title: Text(L10n.current.appError),
content: Column(
mainAxisSize: MainAxisSize.min,
diff --git a/lib/widget/custom_dialog.dart b/lib/widget/custom_dialog.dart
new file mode 100644
index 0000000..41fab00
--- /dev/null
+++ b/lib/widget/custom_dialog.dart
@@ -0,0 +1,20 @@
+import 'package:flutter/material.dart';
+
+class CustomDialog extends StatelessWidget {
+ const CustomDialog({super.key, this.title, this.content, this.actions});
+ final Widget? title;
+ final Widget? content;
+ final List? actions;
+
+ @override
+ Widget build(BuildContext context) {
+ return AlertDialog(
+ title: title,
+ actions: actions,
+ content: Container(
+ constraints: const BoxConstraints(minWidth: 200, maxWidth: 400),
+ child: content,
+ ),
+ );
+ }
+}