diff --git a/lib/models/messages/filemessage.dart b/lib/models/messages/filemessage.dart index 2c7b4726..c5c2eece 100644 --- a/lib/models/messages/filemessage.dart +++ b/lib/models/messages/filemessage.dart @@ -65,8 +65,11 @@ class FileMessage extends Message { return MalformedBubble(); } return Container( - alignment: Alignment.center, - height: 100, + padding: EdgeInsets.all(1.0), + decoration: BoxDecoration(), + clipBehavior: Clip.antiAliasWithSaveLayer, + width: 100, + height: 50, child: FileBubble( nameSuggestion, rootHash, diff --git a/lib/widgets/quotedmessage.dart b/lib/widgets/quotedmessage.dart index 8bc3638e..fe90ab52 100644 --- a/lib/widgets/quotedmessage.dart +++ b/lib/widgets/quotedmessage.dart @@ -1,11 +1,8 @@ -import 'package:cwtch/controllers/open_link_modal.dart'; import 'package:cwtch/models/contact.dart'; import 'package:cwtch/models/message.dart'; import 'package:cwtch/models/profile.dart'; -import 'package:cwtch/third_party/linkify/flutter_linkify.dart'; import 'package:cwtch/widgets/malformedbubble.dart'; import 'package:cwtch/widgets/messageloadingbubble.dart'; -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -49,6 +46,7 @@ class QuotedMessageBubbleState extends State { var formatMessages = Provider.of(context).isExperimentEnabled(FormattingExperiment); Size size = MediaQuery.of(context).size; BoxConstraints constraints = BoxConstraints.loose(size); + Widget wdgMessage = compileMessageContentWidget(context, constraints, fromMe, widget.body, _focus, formatMessages, showClickableLinks); var wdgQuote = FutureBuilder( future: widget.quotedMessage, builder: (context, snapshot) { @@ -80,33 +78,34 @@ class QuotedMessageBubbleState extends State { ); // Swap the background color for quoted tweets.. return MouseRegion( - cursor: SystemMouseCursors.click, - child: GestureDetector( - onTap: () { - var messageInfo = Provider.of(context, listen: false).messageCache.getByContentHash(qMessage.getMetadata().contenthash); - if (messageInfo != null) { - var index = Provider.of(context, listen: false).messageCache.findIndex(messageInfo.metadata.messageID); - if (index != null) { - Provider.of(context, listen: false).messageScrollController.scrollTo(index: index, duration: Duration(milliseconds: 100)); - } - } - }, - child: Container( - margin: EdgeInsets.all(5), - padding: EdgeInsets.all(5), - clipBehavior: Clip.antiAlias, - decoration: BoxDecoration( - color: fromMe ? Provider.of(context).theme.messageFromOtherBackgroundColor : Provider.of(context).theme.messageFromMeBackgroundColor, - ), - height: 75, - child: Column(children: [ - Align(alignment: Alignment.centerLeft, child: wdgReplyingTo), - Flexible( - child: Row(mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ - Padding(padding: EdgeInsets.symmetric(vertical: 5.0, horizontal: 10.0), child: Icon(Icons.reply, size: 32, color: qTextColor)), - Flexible(child: qMessage.getPreviewWidget(context)), - ])) - ])))); + cursor: SystemMouseCursors.click, + child: GestureDetector( + onTap: () { + var messageInfo = Provider.of(context, listen: false).messageCache.getByContentHash(qMessage.getMetadata().contenthash); + if (messageInfo != null) { + var index = Provider.of(context, listen: false).messageCache.findIndex(messageInfo.metadata.messageID); + if (index != null) { + Provider.of(context, listen: false).messageScrollController.scrollTo(index: index, duration: Duration(milliseconds: 100)); + } + } + }, + child: Container( + margin: EdgeInsets.all(5), + padding: EdgeInsets.all(5), + clipBehavior: Clip.antiAlias, + decoration: BoxDecoration( + color: fromMe ? Provider.of(context).theme.messageFromOtherBackgroundColor : Provider.of(context).theme.messageFromMeBackgroundColor, + ), + height: 75, + child: Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ + Align(alignment: Alignment.centerLeft, child: wdgReplyingTo), + Row(mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ + Padding(padding: EdgeInsets.symmetric(vertical: 5.0, horizontal: 10.0), child: Icon(Icons.reply, size: 32, color: qTextColor)), + IntrinsicWidth(child: qMessage.getPreviewWidget(context)), + ]) + ])), + ), + ); } catch (e) { return MalformedBubble(); } @@ -120,8 +119,13 @@ class QuotedMessageBubbleState extends State { var wdgDecorations = MessageBubbleDecoration(ackd: Provider.of(context).ackd, errored: Provider.of(context).error, fromMe: fromMe, messageDate: messageDate); var error = Provider.of(context).error; - - var wdgMessage = compileMessageContentWidget(context, constraints, fromMe, widget.body, _focus, formatMessages, showClickableLinks); + var spacer = Container( + height: 75, + decoration: BoxDecoration( + color: fromMe ? Provider.of(context).theme.messageFromOtherBackgroundColor : Provider.of(context).theme.messageFromMeBackgroundColor, + ), + child: SizedBox(), + ); var wdgSender = compileSenderWidget(context, constraints, fromMe, senderDisplayStr); return Container( decoration: BoxDecoration( @@ -150,10 +154,12 @@ class QuotedMessageBubbleState extends State { style: ButtonStyle(backgroundColor: MaterialStateProperty.all(Provider.of(context).theme.menuBackgroundColor)), ), ), - child: Column( - crossAxisAlignment: fromMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, - mainAxisAlignment: fromMe ? MainAxisAlignment.end : MainAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: fromMe ? [wdgQuote, wdgMessage, wdgDecorations] : [wdgSender, wdgQuote, wdgMessage, wdgDecorations])))); + child: IntrinsicWidth( + child: Column( + crossAxisAlignment: fromMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + mainAxisAlignment: fromMe ? MainAxisAlignment.end : MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + verticalDirection: VerticalDirection.up, + children: fromMe ? [wdgDecorations, wdgMessage, wdgQuote] : [wdgDecorations, wdgMessage, wdgQuote, wdgSender]))))); } }