Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ build/.last_build_id
widgets/matrix_widget_api/build/.last_build_id
widgets/calendar/android/local.properties
.vscode/settings.json
.idea/
9 changes: 9 additions & 0 deletions commet/lib/config/preferences.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ class Preferences {
static const String _fallbackTurnServer = "fallback_turn_server";
static const String _urlPreviewInE2EEChat = "use_url_preview_in_e2ee_chat";
static const String _messageEffectsEnabled = "message_effects_enabled";
static const String _askBeforeDeletingMessageEnabled =
"ask_before_deleting_message_enabled";
static const String _lastForegroundServiceSucceeded =
"did_last_foreground_service_run_succeed";
static const String _showRoomAvatars = "show_room_avatars";
Expand Down Expand Up @@ -331,6 +333,13 @@ class Preferences {
}
}

Future<void> setAskBeforeDeletingMessageEnabled(bool value) async {
await _preferences!.setBool(_askBeforeDeletingMessageEnabled, value);
}

bool get askBeforeDeletingMessageEnabled =>
_preferences!.getBool(_askBeforeDeletingMessageEnabled) ?? true;

Future<void> setMessageEffectsEnabled(bool value) async {
await _preferences!.setBool(_messageEffectsEnabled, value);
}
Expand Down
17 changes: 11 additions & 6 deletions commet/lib/ui/molecules/timeline_events/timeline_event_menu.dart
Original file line number Diff line number Diff line change
Expand Up @@ -263,13 +263,18 @@ class TimelineEventMenu {
TimelineEventMenuEntry(
name: CommonStrings.promptDelete,
icon: Icons.delete,
action: (BuildContext context) => {
AdaptiveDialog.confirmation(context).then((value) {
if (value == true) {
timeline.deleteEvent(event);
}
action: (BuildContext context) {
if (preferences.askBeforeDeletingMessageEnabled) {
AdaptiveDialog.confirmation(context).then((value) {
if (value == true) {
timeline.deleteEvent(event);
}
onActionFinished?.call();
});
} else {
timeline.deleteEvent(event);
onActionFinished?.call();
}),
}
},
),
];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,22 @@ class GeneralSettingsPageState extends State<GeneralSettingsPage> {
"description for the toggle for enabling and disabling use of url previews in encrypted chats",
name: "labelUrlPreviewInEncryptedChatDescription");

String get labelAppBehaviourTitle => Intl.message("App Behaviour",
desc: "Header for the app behaviour section in settings",
name: "labelAppBehaviourTitle");

String get labelAskBeforeDeletingMessageToggle => Intl.message(
"Ask before deleting messages",
desc:
"Label for the toggle for enabling and disabling message deletion confirmation",
name: "labelAskBeforeDeletingMessageToggle");

String get labelAskBeforeDeletingMessageDescription => Intl.message(
"Enables the pop-up asking for confirmation when deleting a message.",
desc:
"Label describing what 'asking before deleting messages' even means",
name: "labelAskBeforeDeletingMessageDescription");

String get labelMessageEffectsTitle => Intl.message("Message Effects",
desc:
"Header for the settings tile for message effects, such as confetti",
Expand Down Expand Up @@ -136,6 +152,24 @@ class GeneralSettingsPageState extends State<GeneralSettingsPage> {
const SizedBox(
height: 10,
),
Panel(
header: labelAppBehaviourTitle,
mode: TileType.surfaceContainerLow,
child: Column(children: [
settingToggle(
preferences.askBeforeDeletingMessageEnabled,
title: labelAskBeforeDeletingMessageToggle,
description: labelAskBeforeDeletingMessageDescription,
onChanged: (value) async {
await preferences.setAskBeforeDeletingMessageEnabled(value);
setState(() {});
},
),
]),
),
const SizedBox(
height: 10,
),
Panel(
header: labelMessageEffectsTitle,
mode: TileType.surfaceContainerLow,
Expand Down