add better mime detection

This commit is contained in:
Salvatore Giordano
2020-04-10 18:28:16 +02:00
parent 3306a32db7
commit 7d62912300
3 changed files with 28 additions and 8 deletions
+24 -7
View File
@@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:mime/mime.dart';
import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_flutter/src/message_list_view.dart'; import 'package:stream_chat_flutter/src/message_list_view.dart';
import 'package:stream_chat_flutter/src/stream_chat_theme.dart'; import 'package:stream_chat_flutter/src/stream_chat_theme.dart';
@@ -634,14 +635,30 @@ class _MessageInputState extends State<MessageInput> {
_attachments.add(attachment); _attachments.add(attachment);
}); });
final res = await channel.sendFile( String url;
MultipartFile.fromBytes( final filename = file.path.split('/').last;
bytes,
filename: file.path.split('/').last,
),
);
attachment.url = res.file; if (type == FileType.image) {
final res = await channel.sendImage(
MultipartFile.fromBytes(
bytes,
filename: filename,
contentType: MediaType.parse(lookupMimeType(filename)),
),
);
url = res.file;
} else {
final res = await channel.sendFile(
MultipartFile.fromBytes(
bytes,
filename: filename,
contentType: MediaType.parse(lookupMimeType(filename)),
),
);
url = res.file;
}
attachment.url = url;
setState(() { setState(() {
attachment.uploaded = true; attachment.uploaded = true;
+3 -1
View File
@@ -949,7 +949,9 @@ class _MessageWidgetState extends State<MessageWidget>
} }
return FutureBuilder<void>( return FutureBuilder<void>(
future: videoController.initialize(), future: videoController.value.initialized
? Future.value(true)
: videoController.initialize(),
builder: (_, snapshot) { builder: (_, snapshot) {
if (snapshot.connectionState != ConnectionState.done) { if (snapshot.connectionState != ConnectionState.done) {
return Container( return Container(
+1
View File
@@ -20,6 +20,7 @@ dependencies:
image_picker: ^0.6.4 image_picker: ^0.6.4
flutter_keyboard_visibility: ^0.8.0 flutter_keyboard_visibility: ^0.8.0
stream_chat: ^0.1.21 stream_chat: ^0.1.21
mime: ^0.9.6+3
visibility_detector: ^0.1.4 visibility_detector: ^0.1.4
dev_dependencies: dev_dependencies: