From 1bbc0e2a8a91c717e7947f6d710a5512eceae3c9 Mon Sep 17 00:00:00 2001 From: JHubi1 Date: Wed, 29 May 2024 12:42:44 +0200 Subject: [PATCH] Added warning before new chat --- README.md | 2 +- assets/screenshots/other/s02.png | Bin 11985 -> 14018 bytes lib/l10n/app_de.arb | 47 +++++++++++++-- lib/l10n/app_en.arb | 40 +++++++++++-- lib/main.dart | 17 ++++-- lib/worker_setter.dart | 97 ++++++++++++++++++++++++++++--- 6 files changed, 177 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index d8502e9..97840e2 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ That's it, you can now just chat. Enter a message into the box at the bottom and ## Side Menu -The button on the top left opens the menu. In it, you have two options for now: `New Chat` and `Settings`. The first option clears the chat (-> creates a new one), and the second one reopens the host dialog from the initial start of the app to adapt to changing hosts. +The button on the top left opens the menu. In it, you have three options: `New Chat`, `Ask before Deletion` and `Set Host`. The first option clears the chat (-> creates a new one), the second one opens a new dialog that has a toggle you can toggle if you don't want to be asked or want to be asked again before deleting a chat, and the third option reopens the host dialog from the initial start of the app to adapt to changing hosts. ![side menu](assets/screenshots/other/s02.png) diff --git a/assets/screenshots/other/s02.png b/assets/screenshots/other/s02.png index 005a5a3da51742cb071aec1f1bb01f6cde64643f..98e0ee2f588887216184362c127fd7e0bf65d005 100644 GIT binary patch literal 14018 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 M5$P9sLONdm0eM=EjsO4v literal 11985 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 diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index fd028c6..20fe960 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -5,16 +5,21 @@ "description": "Title of the application", "context": "Visible in the side bar" }, - "optionSettings": "Einstellungen", - "@optionSettings": { - "description": "Text displayed for settings option", - "context": "Visible in the side bar" - }, "optionNewChat": "Neuer Chat", "@optionNewChat": { "description": "Text displayed for new chat option", "context": "Visible in the side bar" }, + "optionSetHost": "Host Setzen", + "@optionSetHost": { + "description": "Text displayed for set host option", + "context": "Visible in the side bar" + }, + "optionSetAskDeletion": "Vor dem Löschen fragen", + "@optionSetAskDeletion": { + "description": "Text displayed for ask before deletion option", + "context": "Visible in the side bar" + }, "takeImage": "Bild Aufnehmen", "@takeImage": { "description": "Text displayed for take image button", @@ -35,7 +40,7 @@ "description": "Text displayed when no model is selected", "context": "Visible in the chat view" }, - "hostDialogTitle": "Host Festlegen", + "hostDialogTitle": "Host Setzen", "@hostDialogTitle": { "description": "Title of the host dialog", "context": "Visible in the host dialog" @@ -60,6 +65,11 @@ "description": "Text displayed for save host button, should be capitalized", "context": "Visible in the host dialog" }, + "hostDialogCancel": "Abbrechen", + "@hostDialogCancel": { + "description": "Text displayed for cancel button, should be capitalized", + "context": "Visible in the host dialog" + }, "noSelectedModel": "", "@noSelectedModel": { "description": "Text displayed when no model is selected", @@ -74,5 +84,30 @@ "@modelDialogAddSteps": { "description": "Steps to add a new model", "context": "Visible in the model dialog" + }, + "deleteDialogTitle": "Löschen Bestätigen", + "@deleteDialogTitle": { + "description": "Title of the delete dialog", + "context": "Visible in the delete dialog" + }, + "deleteDialogDescription": "Bist du sicher, dass du fortfahren möchtest? Dies wird alle Erinnerungen dieses Chats löschen und kann nicht rückgängig gemacht werden.", + "@deleteDialogDescription": { + "description": "Description of the delete dialog", + "context": "Visible in the delete dialog" + }, + "deleteDialogDelete": "Löschen", + "@deleteDialogDelete": { + "description": "Text displayed for delete button, should be capitalized", + "context": "Visible in the delete dialog" + }, + "deleteDialogCancel": "Abbrechen", + "@deleteDialogCancel": { + "description": "Text displayed for cancel button, should be capitalized", + "context": "Visible in the delete dialog" + }, + "deleteDialogAskAlways": "Jedesmal nachfragen", + "@deleteDialogAskAlways": { + "description": "Text displayed for ask me always again checkbox", + "context": "Visible in the delete dialog" } } \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6fc224b..488040d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -5,16 +5,21 @@ "description": "Title of the application", "context": "Visible in the side bar" }, - "optionSettings": "Settings", - "@optionSettings": { - "description": "Text displayed for settings option", - "context": "Visible in the side bar" - }, "optionNewChat": "New Chat", "@optionNewChat": { "description": "Text displayed for new chat option", "context": "Visible in the side bar" }, + "optionSetHost": "Set Host", + "@optionSetHost": { + "description": "Text displayed for set host option", + "context": "Visible in the side bar" + }, + "optionSetAskDeletion": "Ask before Deletion", + "@optionSetAskDeletion": { + "description": "Text displayed for ask before deletion option", + "context": "Visible in the side bar" + }, "takeImage": "Take Image", "@takeImage": { "description": "Text displayed for take image button", @@ -79,5 +84,30 @@ "@modelDialogAddSteps": { "description": "Steps to add a new model", "context": "Visible in the model dialog" + }, + "deleteDialogTitle": "Confirm Deletion", + "@deleteDialogTitle": { + "description": "Title of the delete dialog", + "context": "Visible in the delete dialog" + }, + "deleteDialogDescription": "Are you sure you want to continue? This will wipe all memory of this chat and cannot be undone.", + "@deleteDialogDescription": { + "description": "Description of the delete dialog", + "context": "Visible in the delete dialog" + }, + "deleteDialogDelete": "Delete", + "@deleteDialogDelete": { + "description": "Text displayed for delete button, should be capitalized", + "context": "Visible in the delete dialog" + }, + "deleteDialogCancel": "Cancel", + "@deleteDialogCancel": { + "description": "Text displayed for cancel button, should be capitalized", + "context": "Visible in the delete dialog" + }, + "deleteDialogAskAlways": "Ask me every time", + "@deleteDialogAskAlways": { + "description": "Text displayed for ask me always again checkbox", + "context": "Visible in the delete dialog" } } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 0bd11f6..44ea751 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -209,7 +209,7 @@ class _MainAppState extends State { onPressed: () { HapticFeedback.selectionClick(); if (!chatAllowed) return; - messages = []; + deleteChat(context, setState); setState(() {}); }, icon: const Icon(Icons.restart_alt_rounded)) @@ -497,9 +497,12 @@ class _MainAppState extends State { HapticFeedback.selectionClick(); Navigator.of(context).pop(); if (!chatAllowed) return; - messages = []; - setState(() {}); + deleteChat(context, setState); } else if (value == 2) { + HapticFeedback.selectionClick(); + Navigator.of(context).pop(); + setAskBeforeDeletion(context, setState); + } else if (value == 3) { HapticFeedback.selectionClick(); Navigator.of(context).pop(); if (!chatAllowed) return; @@ -517,11 +520,15 @@ class _MainAppState extends State { NavigationDrawerDestination( icon: const Icon(Icons.add_rounded), label: Text(AppLocalizations.of(context)!.optionNewChat)), + NavigationDrawerDestination( + icon: const Icon(Icons.live_help_rounded), + label: + Text(AppLocalizations.of(context)!.optionSetAskDeletion)), (useHost) ? const SizedBox.shrink() : NavigationDrawerDestination( - icon: const Icon(Icons.settings_rounded), - label: Text(AppLocalizations.of(context)!.optionSettings)) + icon: const Icon(Icons.dns_rounded), + label: Text(AppLocalizations.of(context)!.optionSetHost)), ])); } } diff --git a/lib/worker_setter.dart b/lib/worker_setter.dart index df104b4..d5900c1 100644 --- a/lib/worker_setter.dart +++ b/lib/worker_setter.dart @@ -52,6 +52,14 @@ void setHost(BuildContext context, [bool force = true]) { hintText: "http://example.com:8080")) ]), actions: [ + !force + ? TextButton( + onPressed: () { + Navigator.of(context).pop(); + }, + child: Text( + AppLocalizations.of(context)!.hostDialogCancel)) + : const SizedBox.shrink(), TextButton( onPressed: () async { setState(() { @@ -108,15 +116,7 @@ void setHost(BuildContext context, [bool force = true]) { } }, child: - Text(AppLocalizations.of(context)!.hostDialogSave)), - !force - ? TextButton( - onPressed: () { - Navigator.of(context).pop(); - }, - child: Text( - AppLocalizations.of(context)!.hostDialogCancel)) - : const SizedBox.shrink() + Text(AppLocalizations.of(context)!.hostDialogSave)) ])))); } @@ -269,3 +269,82 @@ void setModel(BuildContext context, Function setState) { }); }); } + +void deleteChat(BuildContext context, Function setState) { + if (prefs!.getBool("askBeforeDeletion") ?? true && messages.isNotEmpty) { + showDialog( + context: context, + builder: (context) { + return StatefulBuilder(builder: (context, setLocalState) { + return AlertDialog( + title: Text(AppLocalizations.of(context)!.deleteDialogTitle), + content: Column(mainAxisSize: MainAxisSize.min, children: [ + Text(AppLocalizations.of(context)!.deleteDialogDescription), + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text(AppLocalizations.of(context)! + .deleteDialogAskAlways), + const Expanded(child: SizedBox()), + Switch( + value: prefs!.getBool("askBeforeDeletion") ?? true, + onChanged: (value) { + prefs!.setBool("askBeforeDeletion", value); + setLocalState(() {}); + }, + ) + ]) + ]), + actions: [ + TextButton( + onPressed: () { + HapticFeedback.selectionClick(); + Navigator.of(context).pop(); + }, + child: Text( + AppLocalizations.of(context)!.deleteDialogCancel)), + TextButton( + onPressed: () { + HapticFeedback.selectionClick(); + Navigator.of(context).pop(); + messages = []; + setState(() {}); + }, + child: Text( + AppLocalizations.of(context)!.deleteDialogDelete)) + ]); + }); + }); + } else { + messages = []; + setState(() {}); + } +} + +void setAskBeforeDeletion(BuildContext context, Function setState) { + showDialog( + context: context, + builder: (context) { + return StatefulBuilder(builder: (context, setLocalState) { + return Dialog( + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text(AppLocalizations.of(context)! + .deleteDialogAskAlways), + const Expanded(child: SizedBox()), + Switch( + value: prefs!.getBool("askBeforeDeletion") ?? true, + onChanged: (value) { + prefs!.setBool("askBeforeDeletion", value); + setLocalState(() {}); + }, + ) + ]))); + }); + }); +}