|
|
@ -2,6 +2,7 @@ import 'package:get/get.dart'; |
|
|
|
|
|
|
|
|
import '../../im/im_manager.dart'; |
|
|
import '../../im/im_manager.dart'; |
|
|
import 'package:im_flutter_sdk/im_flutter_sdk.dart'; |
|
|
import 'package:im_flutter_sdk/im_flutter_sdk.dart'; |
|
|
|
|
|
import 'conversation_controller.dart'; |
|
|
|
|
|
|
|
|
class ChatController extends GetxController { |
|
|
class ChatController extends GetxController { |
|
|
final String userId; |
|
|
final String userId; |
|
|
@ -54,6 +55,8 @@ class ChatController extends GetxController { |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
messages.insert(0, message); |
|
|
messages.insert(0, message); |
|
|
update(); |
|
|
update(); |
|
|
|
|
|
// 更新会话列表 |
|
|
|
|
|
_refreshConversationList(); |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
return false; |
|
|
return false; |
|
|
@ -76,6 +79,8 @@ class ChatController extends GetxController { |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
messages.insert(0, message); |
|
|
messages.insert(0, message); |
|
|
update(); |
|
|
update(); |
|
|
|
|
|
// 更新会话列表 |
|
|
|
|
|
_refreshConversationList(); |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
return false; |
|
|
return false; |
|
|
@ -99,6 +104,8 @@ class ChatController extends GetxController { |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
messages.insert(0, message); |
|
|
messages.insert(0, message); |
|
|
update(); |
|
|
update(); |
|
|
|
|
|
// 更新会话列表 |
|
|
|
|
|
_refreshConversationList(); |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
return false; |
|
|
return false; |
|
|
@ -116,7 +123,7 @@ class ChatController extends GetxController { |
|
|
print('🎬 [ChatController] 准备发送视频消息'); |
|
|
print('🎬 [ChatController] 准备发送视频消息'); |
|
|
print('视频路径: $filePath'); |
|
|
print('视频路径: $filePath'); |
|
|
print('视频时长: $duration 秒'); |
|
|
print('视频时长: $duration 秒'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
final message = await IMManager.instance.sendVideoMessage( |
|
|
final message = await IMManager.instance.sendVideoMessage( |
|
|
filePath, |
|
|
filePath, |
|
|
userId, |
|
|
userId, |
|
|
@ -128,6 +135,8 @@ class ChatController extends GetxController { |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
// 发送成功后将消息添加到列表开头 |
|
|
messages.insert(0, message); |
|
|
messages.insert(0, message); |
|
|
update(); |
|
|
update(); |
|
|
|
|
|
// 更新会话列表 |
|
|
|
|
|
_refreshConversationList(); |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
print('❌ [ChatController] 视频消息创建失败'); |
|
|
print('❌ [ChatController] 视频消息创建失败'); |
|
|
@ -188,4 +197,20 @@ class ChatController extends GetxController { |
|
|
await fetchMessages(loadMore: true); |
|
|
await fetchMessages(loadMore: true); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// 刷新会话列表 |
|
|
|
|
|
void _refreshConversationList() { |
|
|
|
|
|
try { |
|
|
|
|
|
// 尝试获取 ConversationController 并刷新会话列表 |
|
|
|
|
|
if (Get.isRegistered<ConversationController>()) { |
|
|
|
|
|
final conversationController = Get.find<ConversationController>(); |
|
|
|
|
|
conversationController.refreshConversations(); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
// ConversationController 可能未注册,忽略错误 |
|
|
|
|
|
if (Get.isLogEnable) { |
|
|
|
|
|
Get.log('刷新会话列表失败: $e'); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |