From c4c693144dd58fa0eba60dc48b217742001c1985 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Mon, 28 Feb 2022 22:35:09 -0800 Subject: [PATCH] Move messageDate format handling to MessageBubbleDecoration --- lib/widgets/filebubble.dart | 8 ++++---- lib/widgets/invitationbubble.dart | 4 ++-- lib/widgets/messagebubble.dart | 3 +-- lib/widgets/messagebubbledecorations.dart | 11 +++++++---- lib/widgets/quotedmessage.dart | 3 +-- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/widgets/filebubble.dart b/lib/widgets/filebubble.dart index a091c2e5..624f8067 100644 --- a/lib/widgets/filebubble.dart +++ b/lib/widgets/filebubble.dart @@ -7,11 +7,10 @@ import 'package:cwtch/models/message.dart'; import 'package:cwtch/models/profile.dart'; import 'package:cwtch/widgets/malformedbubble.dart'; import 'package:file_picker_desktop/file_picker_desktop.dart'; -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../main.dart'; -import 'package:intl/intl.dart'; + import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import '../settings.dart'; @@ -51,7 +50,8 @@ class FileBubbleState extends State { var flagStarted = Provider.of(context).attributes["file-downloaded"] == "true"; var borderRadiousEh = 15.0; var showFileSharing = Provider.of(context, listen: false).isExperimentEnabled(FileSharingExperiment); - var prettyDate = DateFormat.yMd(Platform.localeName).add_jm().format(Provider.of(context).timestamp); + DateTime messageDate = Provider.of(context).timestamp; + var metadata = Provider.of(context); var path = Provider.of(context).downloadFinalPath(widget.fileKey()); @@ -80,7 +80,7 @@ class FileBubbleState extends State { var downloadActive = Provider.of(context).downloadActive(widget.fileKey()); var downloadGotManifest = Provider.of(context).downloadGotManifest(widget.fileKey()); - var messageStatusWidget = MessageBubbleDecoration(ackd: metadata.ackd, errored: metadata.error, prettyDate: prettyDate, fromMe: fromMe); + var messageStatusWidget = MessageBubbleDecoration(ackd: metadata.ackd, errored: metadata.error, messageDate: messageDate, fromMe: fromMe); // If the sender is not us, then we want to give them a nickname... var senderDisplayStr = ""; diff --git a/lib/widgets/invitationbubble.dart b/lib/widgets/invitationbubble.dart index c03cb078..ba1026fc 100644 --- a/lib/widgets/invitationbubble.dart +++ b/lib/widgets/invitationbubble.dart @@ -41,7 +41,7 @@ class InvitationBubbleState extends State { var borderRadiousEh = 15.0; var showGroupInvite = Provider.of(context).isExperimentEnabled(TapirGroupsExperiment); rejected = Provider.of(context).attributes["rejected-invite"] == "true"; - var prettyDate = DateFormat.yMd(Platform.localeName).add_jm().format(Provider.of(context).timestamp); + DateTime messageDate = Provider.of(context).timestamp; // If the sender is not us, then we want to give them a nickname... var senderDisplayStr = ""; @@ -77,7 +77,7 @@ class InvitationBubbleState extends State { if (isGroup && !showGroupInvite) { wdgDecorations = Text('\u202F'); } else if (fromMe) { - wdgDecorations = MessageBubbleDecoration(ackd: Provider.of(context).ackd, errored: Provider.of(context).error, fromMe: fromMe, prettyDate: prettyDate); + wdgDecorations = MessageBubbleDecoration(ackd: Provider.of(context).ackd, errored: Provider.of(context).error, fromMe: fromMe, messageDate: messageDate); } else if (isAccepted) { wdgDecorations = Text(AppLocalizations.of(context)!.accepted + '\u202F'); } else if (this.rejected) { diff --git a/lib/widgets/messagebubble.dart b/lib/widgets/messagebubble.dart index d764d1e6..e33f6a66 100644 --- a/lib/widgets/messagebubble.dart +++ b/lib/widgets/messagebubble.dart @@ -36,7 +36,6 @@ class MessageBubbleState extends State { var showClickableLinks = Provider.of(context).isExperimentEnabled(ClickableLinksExperiment); DateTime messageDate = Provider.of(context).timestamp; - prettyDate = DateFormat.yMd(Platform.localeName).add_jm().format(messageDate.toLocal()); // If the sender is not us, then we want to give them a nickname... var senderDisplayStr = ""; @@ -86,7 +85,7 @@ class MessageBubbleState extends State { ); } - var wdgDecorations = MessageBubbleDecoration(ackd: Provider.of(context).ackd, errored: Provider.of(context).error, fromMe: fromMe, prettyDate: prettyDate); + var wdgDecorations = MessageBubbleDecoration(ackd: Provider.of(context).ackd, errored: Provider.of(context).error, fromMe: fromMe, messageDate: messageDate); var error = Provider.of(context).error; diff --git a/lib/widgets/messagebubbledecorations.dart b/lib/widgets/messagebubbledecorations.dart index 6b740ea9..6de1a29a 100644 --- a/lib/widgets/messagebubbledecorations.dart +++ b/lib/widgets/messagebubbledecorations.dart @@ -1,13 +1,14 @@ +import 'dart:io'; +import 'package:intl/intl.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import '../settings.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // Provides message decorations (acks/errors/dates etc.) for generic message bubble overlays (chats, invites etc.) class MessageBubbleDecoration extends StatefulWidget { - MessageBubbleDecoration({required this.ackd, required this.errored, required this.prettyDate, required this.fromMe}); - final String prettyDate; + MessageBubbleDecoration({required this.ackd, required this.errored, required this.messageDate, required this.fromMe}); + final DateTime messageDate; final bool fromMe; final bool ackd; final bool errored; @@ -19,12 +20,14 @@ class MessageBubbleDecoration extends StatefulWidget { class _MessageBubbleDecoration extends State { @override Widget build(BuildContext context) { + var prettyDate = DateFormat.yMd(Platform.localeName).add_jm().format(widget.messageDate.toLocal()); + return Center( widthFactor: 1.0, child: Row( mainAxisSize: MainAxisSize.min, children: [ - Text(widget.prettyDate, + Text(prettyDate, style: TextStyle(fontSize: 9.0, color: widget.fromMe ? Provider.of(context).theme.messageFromMeTextColor : Provider.of(context).theme.messageFromOtherTextColor), textAlign: widget.fromMe ? TextAlign.right : TextAlign.left), !widget.fromMe diff --git a/lib/widgets/quotedmessage.dart b/lib/widgets/quotedmessage.dart index 31e8a80a..c73298e2 100644 --- a/lib/widgets/quotedmessage.dart +++ b/lib/widgets/quotedmessage.dart @@ -30,7 +30,6 @@ class QuotedMessageBubbleState extends State { var borderRadiousEh = 15.0; DateTime messageDate = Provider.of(context).timestamp; - prettyDate = DateFormat.yMd().add_jm().format(messageDate.toLocal()); // If the sender is not us, then we want to give them a nickname... var senderDisplayStr = ""; @@ -82,7 +81,7 @@ class QuotedMessageBubbleState extends State { }, ); - var wdgDecorations = MessageBubbleDecoration(ackd: Provider.of(context).ackd, errored: Provider.of(context).error, fromMe: fromMe, prettyDate: prettyDate); + var wdgDecorations = MessageBubbleDecoration(ackd: Provider.of(context).ackd, errored: Provider.of(context).error, fromMe: fromMe, messageDate: messageDate); var error = Provider.of(context).error;