mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +00:00
Can delete conversation messages
This commit is contained in:
@ -4,6 +4,7 @@ import 'package:comunic/helpers/conversations_helper.dart';
|
||||
import 'package:comunic/helpers/users_helper.dart';
|
||||
import 'package:comunic/lists/conversation_messages_list.dart';
|
||||
import 'package:comunic/lists/users_list.dart';
|
||||
import 'package:comunic/models/conversation_message.dart';
|
||||
import 'package:comunic/models/new_conversation_message.dart';
|
||||
import 'package:comunic/ui/tiles/conversation_message_tile.dart';
|
||||
import 'package:comunic/ui/widgets/scroll_watcher.dart';
|
||||
@ -288,6 +289,7 @@ class _ConversationScreenState extends State<ConversationScreen> {
|
||||
userInfo: _usersInfo.getUser(_messages[i].userID),
|
||||
isLastMessage: _isLastMessage(i),
|
||||
isFirstMessage: _isFirstMessage(i),
|
||||
onRequestMessageDelete: _deleteMessage,
|
||||
);
|
||||
}),
|
||||
);
|
||||
@ -386,4 +388,45 @@ class _ConversationScreenState extends State<ConversationScreen> {
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
/// Request message deletion
|
||||
Future<void> _deleteMessage(ConversationMessage message) async {
|
||||
final choice = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (c) => AlertDialog(
|
||||
title: Text(tr("Confirm deletion")),
|
||||
content: Text(
|
||||
tr("Do you really want to delete this message ? The operation can not be cancelled !"),
|
||||
textAlign: TextAlign.justify,
|
||||
),
|
||||
actions: <Widget>[
|
||||
FlatButton(
|
||||
child: Text(
|
||||
tr("Cancel").toUpperCase(),
|
||||
),
|
||||
onPressed: () => Navigator.pop(c, false),
|
||||
),
|
||||
FlatButton(
|
||||
child: Text(
|
||||
tr("Confirm").toUpperCase(),
|
||||
style: TextStyle(color: Colors.red),
|
||||
),
|
||||
onPressed: () => Navigator.pop(c, true),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
if(choice == null || !choice)
|
||||
return;
|
||||
|
||||
// Execute the request
|
||||
if(!await _conversationsHelper.deleteMessage(message.id))
|
||||
showSimpleSnack(context, tr("Could not delete conversation message!"));
|
||||
|
||||
// Remove the message from the list
|
||||
setState(() {
|
||||
_messages.remove(message);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user