1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 00:05:16 +00:00

Added conversation message statistics

This commit is contained in:
2021-03-11 17:27:20 +01:00
parent 217111e3fd
commit c8ca80f6e7
4 changed files with 134 additions and 2 deletions

View File

@ -18,9 +18,11 @@ enum _MenuChoices {
COPY_URL,
COPY_MESSAGE,
DELETE,
REQUEST_UPDATE_CONTENT
REQUEST_UPDATE_CONTENT,
GET_STATS,
}
typedef OnRequestMessageStats = void Function(ConversationMessage);
typedef OnRequestMessageUpdate = void Function(ConversationMessage);
typedef OnRequestMessageDelete = void Function(ConversationMessage);
@ -30,6 +32,7 @@ class ConversationMessageTile extends StatelessWidget {
final User userInfo;
final bool isLastMessage;
final bool isFirstMessage;
final OnRequestMessageStats onRequestMessageStats;
final OnRequestMessageUpdate onRequestMessageUpdate;
final OnRequestMessageDelete onRequestMessageDelete;
@ -40,12 +43,14 @@ class ConversationMessageTile extends StatelessWidget {
@required this.userInfo,
@required this.isLastMessage,
@required this.isFirstMessage,
@required this.onRequestMessageStats,
@required this.onRequestMessageUpdate,
@required this.onRequestMessageDelete,
}) : assert(message != null),
assert(userInfo != null),
assert(isLastMessage != null),
assert(isFirstMessage != null),
assert(onRequestMessageStats != null),
assert(onRequestMessageUpdate != null),
assert(onRequestMessageDelete != null),
super(key: key);
@ -66,7 +71,6 @@ class ConversationMessageTile extends StatelessWidget {
width: 35.0,
),
itemBuilder: (c) => [
PopupMenuItem(
enabled: (message.message?.content ?? "") != "",
value: _MenuChoices.COPY_MESSAGE,
@ -78,6 +82,12 @@ class ConversationMessageTile extends StatelessWidget {
value: _MenuChoices.COPY_URL,
child: Text(tr("Copy URL")),
),
PopupMenuItem(
value: _MenuChoices.GET_STATS,
child: Text(tr("Statistics")),
),
// Update message content
PopupMenuItem(
enabled: message.isOwner,
@ -275,6 +285,10 @@ class ConversationMessageTile extends StatelessWidget {
FlutterClipboard.copy(message.file.url);
break;
case _MenuChoices.GET_STATS:
onRequestMessageStats(message);
break;
case _MenuChoices.REQUEST_UPDATE_CONTENT:
onRequestMessageUpdate(message);
break;