diff --git a/lib/controller/message/conversation_controller.dart b/lib/controller/message/conversation_controller.dart index e64706c..97e1f8d 100644 --- a/lib/controller/message/conversation_controller.dart +++ b/lib/controller/message/conversation_controller.dart @@ -54,7 +54,23 @@ class ConversationController extends GetxController { /// 获取会话的最新消息 String getLastMessageContent(EMMessage? message) { if(message?.body.type == MessageType.TXT){ - + EMTextMessageBody body = message?.body as EMTextMessageBody; + return body.content; + }else if(message?.body.type == MessageType.IMAGE){ + EMImageMessageBody body = message?.body as EMImageMessageBody; + return '[图片]'; + }else if(message?.body.type == MessageType.VOICE){ + EMVoiceMessageBody body = message?.body as EMVoiceMessageBody; + return '[语音]'; + }else if(message?.body.type == MessageType.VIDEO){ + EMVideoMessageBody body = message?.body as EMVideoMessageBody; + return '[视频]'; + }else if(message?.body.type == MessageType.FILE){ + EMFileMessageBody body = message?.body as EMFileMessageBody; + return '[文件]'; + }else if(message?.body.type == MessageType.LOCATION){ + EMLocationMessageBody body = message?.body as EMLocationMessageBody; + return '[位置]'; } return '暂无消息'; } @@ -72,34 +88,29 @@ class ConversationController extends GetxController { } } - /// 获取会话最后消息的时间 - String getConversationLastMessageTime(EMConversation conversation) { - try { - // 返回默认时间 - return '刚刚'; - } catch (e) { - if (Get.isLogEnable) { - Get.log('Error getting last message time: $e'); - } - return ''; - } - } - /// 格式化消息时间 String formatMessageTime(int timestamp) { DateTime messageTime = DateTime.fromMillisecondsSinceEpoch(timestamp); DateTime now = DateTime.now(); - Duration difference = now.difference(messageTime); - - if (difference.inDays > 0) { - return '${difference.inDays}天前'; - } else if (difference.inHours > 0) { - return '${difference.inHours}小时前'; - } else if (difference.inMinutes > 0) { - return '${difference.inMinutes}分钟前'; - } else { - return '刚刚'; + + // 检查是否是今天 + if (messageTime.year == now.year && + messageTime.month == now.month && + messageTime.day == now.day) { + // 今天显示时:分 + return '${messageTime.hour.toString().padLeft(2, '0')}:${messageTime.minute.toString().padLeft(2, '0')}'; + } + + // 检查是否是昨天 + DateTime yesterday = now.subtract(Duration(days: 1)); + if (messageTime.year == yesterday.year && + messageTime.month == yesterday.month && + messageTime.day == yesterday.day) { + return '昨天'; } + + // 其他日期显示月-日 + return '${messageTime.month.toString().padLeft(2, '0')}-${messageTime.day.toString().padLeft(2, '0')}'; } Future loadContact(String userId) async{ diff --git a/lib/pages/message/conversation_tab.dart b/lib/pages/message/conversation_tab.dart index 1e98da7..7a20406 100644 --- a/lib/pages/message/conversation_tab.dart +++ b/lib/pages/message/conversation_tab.dart @@ -74,7 +74,7 @@ class _ConversationTabState extends State with AutomaticKeepAli // 构建推荐用户横向滚动列表 Widget _buildRecommendedUsers() { return SizedBox( - height: 100, + height: 60, child: ListView.builder( scrollDirection: Axis.horizontal, padding: const EdgeInsets.symmetric(horizontal: 16), @@ -124,8 +124,6 @@ class _ConversationTabState extends State with AutomaticKeepAli ), ], ), - const SizedBox(height: 4), - Text(user["type"], style: const TextStyle(color: Colors.white)), ], ), );