|
|
|
@ -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<EMUserInfo> loadContact(String userId) async{ |
|
|
|
|