Line data Source code
1 : import 'package:flutter/cupertino.dart'; 2 : import 'package:provider/provider.dart'; 3 : import 'package:flutter_gen/gen_l10n/app_localizations.dart'; 4 : import '../settings.dart'; 5 : import 'package:intl/intl.dart'; 6 : 7 0 : String redactedNick(BuildContext context, String handle, String nick) { 8 0 : var settings = Provider.of<Settings>(context, listen: false); 9 0 : if (settings.streamerMode) { 10 0 : if (handle == nick) { 11 0 : return handle.substring(0, 7) + "..."; 12 : } 13 : } 14 : return nick; 15 : } 16 : 17 0 : String prettyDateString(BuildContext context, DateTime date) { 18 0 : var settings = Provider.of<Settings>(context, listen: false); 19 : // We want to display *Never* for epoch dates regardless of setting status 20 0 : if (date.millisecondsSinceEpoch == 0) { 21 0 : return AppLocalizations.of(context)!.conversationNotificationPolicyNever; 22 : } 23 0 : if (settings.streamerMode) { 24 0 : var now = DateTime.now(); 25 0 : if (now.difference(date).abs().inDays > 1) { 26 0 : return AppLocalizations.of(context)!.xDaysAgo.replaceAll("\$days", now.difference(date).abs().inDays.toString()); 27 : } 28 0 : if (now.difference(date).abs().inHours > 1) { 29 0 : return AppLocalizations.of(context)!.xHoursAgo.replaceAll("\$hours", now.difference(date).abs().inHours.toString()); 30 : } 31 0 : if (now.difference(date).abs().inMinutes > 1) { 32 0 : return AppLocalizations.of(context)!.xMinutesAgo.replaceAll("\$minutes", now.difference(date).abs().inMinutes.toString()); 33 : } 34 : // This updates too frequently and looks a little silly. Leaving here as documentation, just in case we want this for something else... 35 : // if (now.difference(date).abs().inSeconds > 1) { 36 : // return AppLocalizations.of(context)!.xSecondsAgo.replaceAll("\$seconds", now.difference(date).abs().inSeconds.toString()); 37 : // } 38 0 : return AppLocalizations.of(context)!.now; 39 : } 40 : // note: explicitly overriding the 'locale' here to force 41 : // a consistent YYYY-mm-dd HH::MM format. 42 0 : return DateFormat.yMd('en_CA').add_jm().format(date.toLocal()); 43 : }