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

Generate video thumbnails

This commit is contained in:
2021-03-12 19:36:42 +01:00
parent 8f7ca14586
commit b84eba59e3
10 changed files with 100 additions and 12 deletions

View File

@ -77,8 +77,8 @@ Future<BytesFile> showPickFileDialog({
@required BuildContext context,
int maxFileSize,
List<String> allowedMimeTypes,
double imageMaxWidth,
double imageMaxHeight,
int imageMaxWidth,
int imageMaxHeight,
}) async {
assert(allowedMimeTypes != null);
@ -113,8 +113,8 @@ Future<BytesFile> showPickFileDialog({
source: choice == _FileChoices.PICK_IMAGE
? ImageSource.gallery
: ImageSource.camera,
maxWidth: imageMaxWidth,
maxHeight: imageMaxHeight,
maxWidth: imageMaxWidth.toDouble(),
maxHeight: imageMaxHeight.toDouble(),
);
if (image == null) return null;

View File

@ -6,6 +6,7 @@ import 'package:comunic/helpers/server_config_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/api_request.dart';
import 'package:comunic/models/conversation.dart';
import 'package:comunic/models/conversation_message.dart';
import 'package:comunic/models/new_conversation_message.dart';
@ -15,11 +16,14 @@ import 'package:comunic/ui/tiles/conversation_message_tile.dart';
import 'package:comunic/ui/tiles/server_conversation_message_tile.dart';
import 'package:comunic/ui/widgets/safe_state.dart';
import 'package:comunic/ui/widgets/scroll_watcher.dart';
import 'package:comunic/utils/files_utils.dart';
import 'package:comunic/utils/intl_utils.dart';
import 'package:comunic/utils/list_utils.dart';
import 'package:comunic/utils/log_utils.dart';
import 'package:comunic/utils/ui_utils.dart';
import 'package:comunic/utils/video_utils.dart';
import 'package:flutter/material.dart';
import 'package:mime/mime.dart';
/// Conversation screen
///
@ -227,16 +231,23 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
context: context,
maxFileSize: srvConfig.conversationsPolicy.filesMaxSize,
allowedMimeTypes: srvConfig.conversationsPolicy.allowedFilesType,
imageMaxWidth: srvConfig.conversationsPolicy.maxMessageImageWidth,
imageMaxHeight: srvConfig.conversationsPolicy.maxMessageImageHeight,
);
if (file == null) return;
BytesFile thumbnail;
if (isVideo(lookupMimeType(file.filename)))
thumbnail = await generateVideoThumbnail(videoFile: file);
await _submitMessage(
NewConversationMessage(
conversationID: widget.conversationID,
message: null,
file: file,
),
conversationID: widget.conversationID,
message: null,
file: file,
thumbnail: thumbnail),
);
} catch (e, s) {
logError(e, s);

View File

@ -90,7 +90,9 @@ class ConversationMessageTile extends StatelessWidget {
// Update message content
PopupMenuItem(
enabled: message.isOwner,
enabled: message.isOwner &&
message.message != null &&
message.message.content.isNotEmpty,
value: _MenuChoices.REQUEST_UPDATE_CONTENT,
child: Text(tr("Update")),
),