mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Can copy message to clipboard
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import 'package:clipboard/clipboard.dart';
|
||||
import 'package:comunic/models/conversation.dart';
|
||||
import 'package:comunic/models/conversation_message.dart';
|
||||
import 'package:comunic/models/user.dart';
|
||||
@ -13,7 +14,12 @@ import 'package:flutter/material.dart';
|
||||
///
|
||||
/// @author Pierre HUBERT
|
||||
|
||||
enum _MenuChoices { DELETE, REQUEST_UPDATE_CONTENT }
|
||||
enum _MenuChoices {
|
||||
COPY_URL,
|
||||
COPY_MESSAGE,
|
||||
DELETE,
|
||||
REQUEST_UPDATE_CONTENT
|
||||
}
|
||||
|
||||
typedef OnRequestMessageUpdate = void Function(ConversationMessage);
|
||||
typedef OnRequestMessageDelete = void Function(ConversationMessage);
|
||||
@ -60,6 +66,18 @@ class ConversationMessageTile extends StatelessWidget {
|
||||
width: 35.0,
|
||||
),
|
||||
itemBuilder: (c) => [
|
||||
|
||||
PopupMenuItem(
|
||||
enabled: (message.message?.content ?? "") != "",
|
||||
value: _MenuChoices.COPY_MESSAGE,
|
||||
child: Text(tr("Copy message")),
|
||||
),
|
||||
|
||||
PopupMenuItem(
|
||||
enabled: message.file != null,
|
||||
value: _MenuChoices.COPY_URL,
|
||||
child: Text(tr("Copy URL")),
|
||||
),
|
||||
// Update message content
|
||||
PopupMenuItem(
|
||||
enabled: message.isOwner,
|
||||
@ -249,6 +267,14 @@ class ConversationMessageTile extends StatelessWidget {
|
||||
/// Process menu choice
|
||||
void _menuOptionSelected(_MenuChoices value) {
|
||||
switch (value) {
|
||||
case _MenuChoices.COPY_MESSAGE:
|
||||
FlutterClipboard.copy(message.message.content);
|
||||
break;
|
||||
|
||||
case _MenuChoices.COPY_URL:
|
||||
FlutterClipboard.copy(message.file.url);
|
||||
break;
|
||||
|
||||
case _MenuChoices.REQUEST_UPDATE_CONTENT:
|
||||
onRequestMessageUpdate(message);
|
||||
break;
|
||||
|
Reference in New Issue
Block a user