diff --git a/lib/components/list_items/presence_list_item.dart b/lib/components/list_items/presence_list_item.dart index 44e888b..e86b7f0 100644 --- a/lib/components/list_items/presence_list_item.dart +++ b/lib/components/list_items/presence_list_item.dart @@ -28,6 +28,7 @@ class PresenceListItem extends StatelessWidget { return FutureBuilder( future: _requestProfile(context), builder: (context, snapshot) { + if (!snapshot.hasData) return Container(); Uri avatarUrl; String displayname = presence.sender.localpart; if (snapshot.hasData) { @@ -48,8 +49,7 @@ class PresenceListItem extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (presence.isStatus) - Text(presence.getLocalizedStatusMessage(context)), + Text(presence.getLocalizedStatusMessage(context)), if (presence.presence != null) Text( presence.presence.toString().split('.').last, diff --git a/lib/i18n/i18n.dart b/lib/i18n/i18n.dart index c6491e0..afa8360 100644 --- a/lib/i18n/i18n.dart +++ b/lib/i18n/i18n.dart @@ -423,6 +423,12 @@ class I18n extends MatrixLocalizations { args: [username], ); + String lastActiveAgo(String localizedTimeShort) => Intl.message( + "Last active: localizedTimeShort", + name: "lastActiveAgo", + args: [localizedTimeShort], + ); + String get lastSeenIp => Intl.message("Last seen IP"); String get license => Intl.message("License"); diff --git a/lib/utils/presence_extension.dart b/lib/utils/presence_extension.dart index f22290c..c6b8f3f 100644 --- a/lib/utils/presence_extension.dart +++ b/lib/utils/presence_extension.dart @@ -1,13 +1,10 @@ import 'package:famedlysdk/famedlysdk.dart'; import 'package:fluffychat/i18n/i18n.dart'; import 'package:flutter/material.dart'; +import 'date_time_extension.dart'; extension PresenceExtension on Presence { - bool get isStatus => - (statusMsg?.isNotEmpty ?? false) || this.displayname != null; - String getLocalizedStatusMessage(BuildContext context) { - if (!isStatus) return ''; if (statusMsg?.isNotEmpty ?? false) { return statusMsg; } @@ -15,9 +12,6 @@ extension PresenceExtension on Presence { return I18n.of(context) .changedTheDisplaynameTo(sender.localpart, displayname); } - if (avatarUrl != null) { - return I18n.of(context).changedTheProfileAvatar(sender.localpart); - } - return null; + return I18n.of(context).lastActiveAgo(time.localizedTimeShort(context)); } }