From 479d140fefc865209a22cf772572c76cf7aecdd6 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Fri, 10 Apr 2020 18:09:36 +0200 Subject: [PATCH] add better mime detection --- lib/src/message_input.dart | 9 ++++++--- lib/src/message_widget.dart | 4 +++- pubspec.yaml | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/src/message_input.dart b/lib/src/message_input.dart index b7ada2e7..cbd5e6ec 100644 --- a/lib/src/message_input.dart +++ b/lib/src/message_input.dart @@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; import 'package:image_picker/image_picker.dart'; +import 'package:mime/mime.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_flutter/src/message_list_view.dart'; import 'package:stream_chat_flutter/src/stream_chat_theme.dart'; @@ -636,13 +637,14 @@ class _MessageInputState extends State { }); String url; + final filename = file.path.split('/').last; if (type == FileType.image) { final res = await channel.sendImage( MultipartFile.fromBytes( bytes, - filename: file.path.split('/').last, - contentType: MediaType.parse('image/jpeg'), + filename: filename, + contentType: MediaType.parse(lookupMimeType(filename)), ), ); url = res.file; @@ -650,7 +652,8 @@ class _MessageInputState extends State { final res = await channel.sendFile( MultipartFile.fromBytes( bytes, - filename: file.path.split('/').last, + filename: filename, + contentType: MediaType.parse(lookupMimeType(filename)), ), ); url = res.file; diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index cbdf131c..e95118e9 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -1035,7 +1035,9 @@ class _MessageWidgetState extends State } return FutureBuilder( - future: videoController.initialize(), + future: videoController.value.initialized + ? Future.value(true) + : videoController.initialize(), builder: (_, snapshot) { if (snapshot.connectionState != ConnectionState.done) { return Container( diff --git a/pubspec.yaml b/pubspec.yaml index 998c8794..52a56c27 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,6 +21,7 @@ dependencies: image_picker: ^0.6.4 flutter_keyboard_visibility: ^0.8.0 stream_chat: ^0.2.0-alpha + mime: ^0.9.6+3 visibility_detector: ^0.1.4 dev_dependencies: