Fix no thumbnail bug

This commit is contained in:
Christian Pauly 2020-05-03 11:56:53 +02:00
parent 869cc46a15
commit 7c455ef56b
2 changed files with 66 additions and 47 deletions

View file

@ -6,10 +6,8 @@ import 'package:fluffychat/utils/event_extension.dart';
import 'package:flutter/material.dart';
import 'package:link_text/link_text.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:fluffychat/utils/matrix_file_extension.dart';
import 'dialogs/simple_dialogs.dart';
import 'matrix.dart';
import 'message_download_content.dart';
class MessageContent extends StatelessWidget {
final Event event;
@ -26,7 +24,10 @@ class MessageContent extends StatelessWidget {
switch (event.messageType) {
case MessageTypes.Image:
case MessageTypes.Sticker:
return ImageBubble(event);
if (event.hasThumbnail) {
return ImageBubble(event);
}
return MessageDownloadContent(event, textColor);
case MessageTypes.Audio:
return AudioPlayer(
event,
@ -34,49 +35,7 @@ class MessageContent extends StatelessWidget {
);
case MessageTypes.Video:
case MessageTypes.File:
return Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
RaisedButton(
color: Colors.blueGrey,
child: Text(
I18n.of(context).downloadFile,
overflow: TextOverflow.fade,
softWrap: false,
maxLines: 1,
style: TextStyle(color: Colors.white),
),
onPressed: () async {
final MatrixFile matrixFile =
await SimpleDialogs(context)
.tryRequestWithLoadingDialog(
event.downloadAndDecryptAttachment(),
);
matrixFile.open();
}),
Text(
"- " +
(event.content.containsKey("filename")
? event.content["filename"]
: event.body),
style: TextStyle(
color: textColor,
fontWeight: FontWeight.bold,
),
),
if (event.sizeString != null)
Text(
"- " + event.sizeString,
style: TextStyle(
color: textColor,
fontWeight: FontWeight.bold,
),
),
],
),
);
return MessageDownloadContent(event, textColor);
case MessageTypes.BadEncrypted:
case MessageTypes.Text:
case MessageTypes.Reply:

View file

@ -0,0 +1,60 @@
import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/i18n/i18n.dart';
import 'package:flutter/material.dart';
import 'package:fluffychat/utils/matrix_file_extension.dart';
import 'package:fluffychat/utils/event_extension.dart';
import 'dialogs/simple_dialogs.dart';
class MessageDownloadContent extends StatelessWidget {
final Event event;
final Color textColor;
const MessageDownloadContent(this.event, this.textColor, {Key key})
: super(key: key);
@override
Widget build(BuildContext context) {
return Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
RaisedButton(
color: Colors.blueGrey,
child: Text(
I18n.of(context).downloadFile,
overflow: TextOverflow.fade,
softWrap: false,
maxLines: 1,
style: TextStyle(color: Colors.white),
),
onPressed: () async {
final MatrixFile matrixFile =
await SimpleDialogs(context).tryRequestWithLoadingDialog(
event.downloadAndDecryptAttachment(),
);
matrixFile.open();
}),
Text(
"- " +
(event.content.containsKey("filename")
? event.content["filename"]
: event.body),
style: TextStyle(
color: textColor,
fontWeight: FontWeight.bold,
),
),
if (event.sizeString != null)
Text(
"- " + event.sizeString,
style: TextStyle(
color: textColor,
fontWeight: FontWeight.bold,
),
),
],
),
);
}
}