1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-22 12:59:21 +00:00

Improved the way the date is shown

This commit is contained in:
Pierre HUBERT 2019-04-23 16:38:41 +02:00
parent 7666af0975
commit c94a294252
2 changed files with 51 additions and 1 deletions

View File

@ -1,4 +1,5 @@
import 'package:comunic/models/conversation.dart'; import 'package:comunic/models/conversation.dart';
import 'package:comunic/utils/date_utils.dart';
import 'package:comunic/utils/intl_utils.dart'; import 'package:comunic/utils/intl_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -36,7 +37,8 @@ class ConversationTile extends StatelessWidget {
subtitle: Column( subtitle: Column(
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[ children: <Widget>[
_buildSubInformation(Icons.access_time, "time"), //TODO : improve the way the time is shown _buildSubInformation(
Icons.access_time, diffTimeFromNowToStr(conversation.lastActive)),
_buildSubInformation( _buildSubInformation(
Icons.group, Icons.group,
conversation.members.length == 1 conversation.members.length == 1

48
lib/utils/date_utils.dart Normal file
View File

@ -0,0 +1,48 @@
import 'package:comunic/utils/intl_utils.dart';
/// Date utilities
///
/// @author Pierre HUBERT
/// Get current timestamp
int time() {
return (DateTime.now().millisecondsSinceEpoch / 1000).floor();
}
String diffTimeToStr(int amount) {
if (amount < 0) amount = 0;
// Seconds
if (amount < 60) return tr("%secs%s", args: {"secs": amount.toString()});
// Minutes
if (amount < 60 * 60)
return tr("%mins% min", args: {"mins": (amount / 60).floor().toString()});
// Hours
if (amount < 60 * 60 * 24)
return tr("%hours% h",
args: {"hours": (amount / (60 * 60)).floor().toString()});
// Days
if (amount < 60 * 60 * 24 * 30)
return tr("%days%d",
args: {"days": (amount / (60 * 60 * 24)).floor().toString()});
// Months
if (amount < 60 * 60 * 24 * 365) {
final months = (amount / (60 * 60 * 24 * 30)).floor();
return months == 1
? tr("1 month")
: tr("%months% months", args: {"months": months.toString()});
}
// Years
final years = (amount / (60 * 60 * 24 * 365)).floor();
return years == 1 ? tr("1 year") : tr("%years% years",
args: {"years": years.toString()});
}
String diffTimeFromNowToStr(int date) {
return diffTimeToStr(time() - date);
}