diff --git a/lib/l10n/intl_cy.arb b/lib/l10n/intl_cy.arb index a1b2c7d1..7f73370a 100644 --- a/lib/l10n/intl_cy.arb +++ b/lib/l10n/intl_cy.arb @@ -1,6 +1,12 @@ { "@@locale": "cy", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_da.arb b/lib/l10n/intl_da.arb index 55d7b3e4..46f4b7c9 100644 --- a/lib/l10n/intl_da.arb +++ b/lib/l10n/intl_da.arb @@ -1,6 +1,12 @@ { "@@locale": "da", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index db53a16e..1bc11794 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -1,6 +1,12 @@ { "@@locale": "de", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_el.arb b/lib/l10n/intl_el.arb index 1d40cbeb..afdeb6ce 100644 --- a/lib/l10n/intl_el.arb +++ b/lib/l10n/intl_el.arb @@ -1,6 +1,12 @@ { "@@locale": "el", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 05dd078b..15a1d499 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -1,6 +1,12 @@ { "@@locale": "en", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index 04b92305..fd2a4c2b 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -1,6 +1,12 @@ { "@@locale": "es", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index c2bee3f3..49640959 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -1,6 +1,12 @@ { "@@locale": "fr", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb index f6132f35..2459a4ec 100644 --- a/lib/l10n/intl_it.arb +++ b/lib/l10n/intl_it.arb @@ -1,6 +1,12 @@ { "@@locale": "it", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb index 5db032af..09c0d44b 100644 --- a/lib/l10n/intl_ja.arb +++ b/lib/l10n/intl_ja.arb @@ -1,6 +1,12 @@ { "@@locale": "ja", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_ko.arb b/lib/l10n/intl_ko.arb index 9d743b79..4b0ea330 100644 --- a/lib/l10n/intl_ko.arb +++ b/lib/l10n/intl_ko.arb @@ -1,6 +1,12 @@ { "@@locale": "ko", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_lb.arb b/lib/l10n/intl_lb.arb index 6ccf0b30..9127eccb 100644 --- a/lib/l10n/intl_lb.arb +++ b/lib/l10n/intl_lb.arb @@ -1,6 +1,12 @@ { "@@locale": "lb", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_nl.arb b/lib/l10n/intl_nl.arb index 63ebc263..60eba463 100644 --- a/lib/l10n/intl_nl.arb +++ b/lib/l10n/intl_nl.arb @@ -1,6 +1,12 @@ { "@@locale": "nl", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_no.arb b/lib/l10n/intl_no.arb index d713afa5..dd5e42a6 100644 --- a/lib/l10n/intl_no.arb +++ b/lib/l10n/intl_no.arb @@ -1,6 +1,12 @@ { "@@locale": "no", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_pl.arb b/lib/l10n/intl_pl.arb index 8aa8a2a0..b4ac2c9d 100644 --- a/lib/l10n/intl_pl.arb +++ b/lib/l10n/intl_pl.arb @@ -1,6 +1,12 @@ { "@@locale": "pl", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index dbb7628e..bbc3f736 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -1,6 +1,12 @@ { "@@locale": "pt", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_pt_BR.arb b/lib/l10n/intl_pt_BR.arb index fcb5cabf..56878a28 100644 --- a/lib/l10n/intl_pt_BR.arb +++ b/lib/l10n/intl_pt_BR.arb @@ -1,6 +1,12 @@ { "@@locale": "pt_BR", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_ro.arb b/lib/l10n/intl_ro.arb index 38b71a44..a2000188 100644 --- a/lib/l10n/intl_ro.arb +++ b/lib/l10n/intl_ro.arb @@ -1,6 +1,12 @@ { "@@locale": "ro", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index 13c05e9e..3c8cddc7 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -1,6 +1,12 @@ { "@@locale": "ru", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_sk.arb b/lib/l10n/intl_sk.arb index fe5f0d78..576044df 100644 --- a/lib/l10n/intl_sk.arb +++ b/lib/l10n/intl_sk.arb @@ -1,6 +1,12 @@ { "@@locale": "sk", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_sv.arb b/lib/l10n/intl_sv.arb index 5ba55bdf..82281d23 100644 --- a/lib/l10n/intl_sv.arb +++ b/lib/l10n/intl_sv.arb @@ -1,6 +1,12 @@ { "@@locale": "sv", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_sw.arb b/lib/l10n/intl_sw.arb index 976dca1f..641a5587 100644 --- a/lib/l10n/intl_sw.arb +++ b/lib/l10n/intl_sw.arb @@ -1,6 +1,12 @@ { "@@locale": "sw", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_tr.arb b/lib/l10n/intl_tr.arb index f6086e38..0a3ff4ca 100644 --- a/lib/l10n/intl_tr.arb +++ b/lib/l10n/intl_tr.arb @@ -1,6 +1,12 @@ { "@@locale": "tr", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/l10n/intl_uk.arb b/lib/l10n/intl_uk.arb index 9a9633da..b2dddbe6 100644 --- a/lib/l10n/intl_uk.arb +++ b/lib/l10n/intl_uk.arb @@ -1,6 +1,12 @@ { "@@locale": "uk", - "@@last_modified": "2023-09-20T21:00:37+02:00", + "@@last_modified": "2023-09-25T19:25:43+02:00", + "now": "Now", + "xSecondsAgo": "$seconds seconds ago", + "xMinutesAgo": "$minutes minutes ago", + "xHoursAgo": "$hours hours ago", + "xDaysAgo": "$days days ago", + "profileOfflineAtStart": "Appear Online at Startup", "profileAllowUnknownContacts": "Allow Unknown Contacts", "profileBlockUnknownContacts": "Block Unknown Contacts", "profileDisableProfile": "Disable Profile", diff --git a/lib/models/redaction.dart b/lib/models/redaction.dart new file mode 100644 index 00000000..ae5d71f5 --- /dev/null +++ b/lib/models/redaction.dart @@ -0,0 +1,32 @@ +import 'dart:io'; + +import 'package:flutter/cupertino.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import '../settings.dart'; +import 'package:intl/intl.dart'; + +String prettyDateString(BuildContext context, DateTime date) { + var settings = Provider.of(context, listen: false); + if (settings.streamerMode) { + var now = DateTime.now(); + if (date.millisecondsSinceEpoch == 0) { + return AppLocalizations.of(context)!.conversationNotificationPolicyNever; + } + if (now.difference(date).abs().inDays > 1) { + return AppLocalizations.of(context)!.xDaysAgo.replaceAll("\$days", now.difference(date).abs().inDays.toString()); + } + if (now.difference(date).abs().inHours > 1) { + return AppLocalizations.of(context)!.xHoursAgo.replaceAll("\$hours", now.difference(date).abs().inHours.toString()); + } + if (now.difference(date).abs().inMinutes > 1) { + return AppLocalizations.of(context)!.xMinutesAgo.replaceAll("\$minutes", now.difference(date).abs().inMinutes.toString()); + } + // This updates too frequently and looks a little silly. Leaving here as documentation, just in case we want this for something else... + // if (now.difference(date).abs().inSeconds > 1) { + // return AppLocalizations.of(context)!.xSecondsAgo.replaceAll("\$seconds", now.difference(date).abs().inSeconds.toString()); + // } + return AppLocalizations.of(context)!.now; + } + return DateFormat.yMd(Platform.localeName).add_jm().format(date); +} diff --git a/lib/third_party/linkify/uri.dart b/lib/third_party/linkify/uri.dart index be881ef5..ccc3866e 100644 --- a/lib/third_party/linkify/uri.dart +++ b/lib/third_party/linkify/uri.dart @@ -50,14 +50,14 @@ class Formatter { // regex to match **bold** final _boldRegex = RegExp( - r'^(.*?)(\*\*([^*]*)\*\*)', + r'^(.*?)(\*\*([^*]+)\*\*)', caseSensitive: false, dotAll: true, ); // regex to match *italic* final _italicRegex = RegExp( - r'^(.*?)(\*([^*]*)\*)', + r'^(.*?)(\*([^*]+)\*)', caseSensitive: false, dotAll: true, ); diff --git a/lib/views/messageview.dart b/lib/views/messageview.dart index a4a43d3f..add6e6ac 100644 --- a/lib/views/messageview.dart +++ b/lib/views/messageview.dart @@ -637,6 +637,10 @@ class _MessageViewState extends State { enableIMEPersonalizedLearning: false, minLines: 1, maxLength: max(1, (isGroup ? GroupMessageLengthMax : P2PMessageLengthMax) - numberOfBytesMoreThanChar), + autocorrect: true, + buildCounter: (context, {currentLength = 0, isFocused = true, maxLength}) { + return Text("$currentLength/$maxLength", style: Provider.of(context).scaleFonts(defaultTextStyle)); + }, maxLengthEnforcement: MaxLengthEnforcement.enforced, maxLines: 3, onFieldSubmitted: _sendMessage, diff --git a/lib/widgets/contactrow.dart b/lib/widgets/contactrow.dart index 3cae0045..f56547b7 100644 --- a/lib/widgets/contactrow.dart +++ b/lib/widgets/contactrow.dart @@ -4,6 +4,8 @@ import 'package:cwtch/models/appstate.dart'; import 'package:cwtch/models/contact.dart'; import 'package:cwtch/models/contactlist.dart'; import 'package:cwtch/models/profile.dart'; +import 'package:cwtch/models/redaction.dart'; +import 'package:cwtch/themes/opaque.dart'; import 'package:cwtch/views/contactsview.dart'; import 'package:flutter/material.dart'; import 'package:cwtch/widgets/profileimage.dart'; @@ -126,6 +128,7 @@ class _ContactRowState extends State { child: TextButton.icon( label: Text( AppLocalizations.of(context)!.tooltipAcceptContactRequest, + style: Provider.of(context).scaleFonts(defaultTextButtonStyle), ), icon: Icon( Icons.favorite, @@ -139,7 +142,7 @@ class _ContactRowState extends State { child: TextButton.icon( label: Text( AppLocalizations.of(context)!.tooltipRejectContactRequest, - style: TextStyle(decoration: TextDecoration.underline), + style: Provider.of(context).scaleFonts(defaultTextButtonStyle), ), style: ButtonStyle( backgroundColor: MaterialStateProperty.all(Provider.of(context).theme.backgroundPaneColor), @@ -148,7 +151,7 @@ class _ContactRowState extends State { onPressed: _btnReject, )) ]) - : (contact.isBlocked != null && contact.isBlocked + : (contact.isBlocked ? IconButton( padding: EdgeInsets.zero, splashRadius: Material.defaultSplashRadius / 2, @@ -156,7 +159,7 @@ class _ContactRowState extends State { icon: Icon(Icons.block, color: Provider.of(context).theme.mainTextColor), onPressed: () {}, ) - : Text(dateToNiceString(widget.messageIndex == null ? contact.lastMessageTime : (this.cachedMessage?.getMetadata().timestamp ?? DateTime.now())))), + : Text(prettyDateString(context, widget.messageIndex == null ? contact.lastMessageTime : (this.cachedMessage?.getMetadata().timestamp ?? DateTime.now())))), ), ], ))), @@ -211,16 +214,4 @@ class _ContactRowState extends State { Provider.of(context, listen: false).cwtch.BlockContact(Provider.of(context, listen: false).profileOnion, contact.identifier); } } - - String dateToNiceString(DateTime date) { - if (date.millisecondsSinceEpoch == 0) { - return AppLocalizations.of(context)!.conversationNotificationPolicyNever; - } - // If the last message was over a day ago, just state the date - if (DateTime.now().difference(date).inDays > 0) { - return DateFormat.yMd(Platform.localeName).format(date.toLocal()); - } - // Otherwise just state the time. - return DateFormat.Hm(Platform.localeName).format(date.toLocal()); - } } diff --git a/lib/widgets/messagebubbledecorations.dart b/lib/widgets/messagebubbledecorations.dart index e05b8e96..80b04651 100644 --- a/lib/widgets/messagebubbledecorations.dart +++ b/lib/widgets/messagebubbledecorations.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:intl/intl.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../models/redaction.dart'; import '../settings.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -20,7 +21,7 @@ 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()); + var prettyDate = prettyDateString(context, widget.messageDate.toLocal()); return Center( widthFactor: 1.0,