mirror of
https://github.com/WuKongIM/WuKongIMFlutterSDK
synced 2025-05-30 23:47:26 +00:00
fix:update conversation reminders
This commit is contained in:
parent
b0172b8a3b
commit
cff9e73caf
@ -246,23 +246,23 @@ class ChatListDataState extends State<ChatList> {
|
|||||||
padding: const EdgeInsets.only(left: 0, top: 5, right: 0, bottom: 5),
|
padding: const EdgeInsets.only(left: 0, top: 5, right: 0, bottom: 5),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
// Container(
|
Container(
|
||||||
// decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
// shape: BoxShape.rectangle,
|
shape: BoxShape.rectangle,
|
||||||
// borderRadius: BorderRadius.all(Radius.circular(20)),
|
borderRadius: BorderRadius.all(Radius.circular(20)),
|
||||||
// color: Color.fromARGB(255, 215, 80, 1)),
|
color: Color.fromARGB(255, 215, 80, 1)),
|
||||||
// width: 50,
|
width: 50,
|
||||||
// alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
// height: 50,
|
height: 50,
|
||||||
// margin: const EdgeInsets.fromLTRB(0, 0, 10, 0),
|
margin: const EdgeInsets.fromLTRB(0, 0, 10, 0),
|
||||||
// child: Text(
|
child: Text(
|
||||||
// CommonUtils.getAvatar(uiMsg.wkMsg.fromUID),
|
CommonUtils.getAvatar(uiMsg.wkMsg.fromUID),
|
||||||
// style: const TextStyle(
|
style: const TextStyle(
|
||||||
// color: Colors.white,
|
color: Colors.white,
|
||||||
// fontSize: 20,
|
fontSize: 20,
|
||||||
// fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold),
|
||||||
// ),
|
),
|
||||||
// ),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import 'package:wukongimfluttersdk/entity/conversation.dart';
|
import 'package:wukongimfluttersdk/entity/conversation.dart';
|
||||||
|
import 'package:wukongimfluttersdk/entity/reminder.dart';
|
||||||
|
|
||||||
class UIConversation {
|
class UIConversation {
|
||||||
String lastContent = '';
|
String lastContent = '';
|
||||||
String channelAvatar = '';
|
String channelAvatar = '';
|
||||||
String channelName = '';
|
String channelName = '';
|
||||||
int isMentionMe = 0;
|
|
||||||
WKUIConversationMsg msg;
|
WKUIConversationMsg msg;
|
||||||
UIConversation(this.msg);
|
UIConversation(this.msg);
|
||||||
|
List<WKReminder>? reminders = [];
|
||||||
String getUnreadCount() {
|
String getUnreadCount() {
|
||||||
if (msg.unreadCount > 0) {
|
if (msg.unreadCount > 0) {
|
||||||
return '${msg.unreadCount}';
|
return '${msg.unreadCount}';
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:example/const.dart';
|
import 'package:example/const.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:wukongimfluttersdk/common/logs.dart';
|
||||||
import 'package:wukongimfluttersdk/entity/conversation.dart';
|
import 'package:wukongimfluttersdk/entity/conversation.dart';
|
||||||
import 'package:wukongimfluttersdk/entity/reminder.dart';
|
import 'package:wukongimfluttersdk/entity/reminder.dart';
|
||||||
import 'package:wukongimfluttersdk/type/const.dart';
|
import 'package:wukongimfluttersdk/type/const.dart';
|
||||||
@ -77,7 +78,7 @@ class ListViewShowDataState extends State<ListViewShowData> {
|
|||||||
setState(() {});
|
setState(() {});
|
||||||
});
|
});
|
||||||
WKIM.shared.conversationManager
|
WKIM.shared.conversationManager
|
||||||
.addOnRefreshMsgListListener('chat_conversation', (msgs) {
|
.addOnRefreshMsgListListener('chat_conversation', (msgs) async {
|
||||||
if (msgs.isEmpty) {
|
if (msgs.isEmpty) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -88,6 +89,7 @@ class ListViewShowDataState extends State<ListViewShowData> {
|
|||||||
if (msgList[i].msg.channelID == msg.channelID) {
|
if (msgList[i].msg.channelID == msg.channelID) {
|
||||||
msgList[i].msg = msg;
|
msgList[i].msg = msg;
|
||||||
msgList[i].lastContent = '';
|
msgList[i].lastContent = '';
|
||||||
|
msgList[i].reminders = null;
|
||||||
isAdd = false;
|
isAdd = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -103,26 +105,7 @@ class ListViewShowDataState extends State<ListViewShowData> {
|
|||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 监听更新消息事件
|
|
||||||
// WKIM.shared.conversationManager.addOnRefreshMsgListener('chat_conversation',
|
|
||||||
// (msg, isEnd) async {
|
|
||||||
// bool isAdd = true;
|
|
||||||
// for (var i = 0; i < msgList.length; i++) {
|
|
||||||
// if (msgList[i].msg.channelID == msg.channelID &&
|
|
||||||
// msgList[i].msg.channelType == msg.channelType) {
|
|
||||||
// msgList[i].msg = msg;
|
|
||||||
// msgList[i].lastContent = '';
|
|
||||||
// isAdd = false;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (isAdd) {
|
|
||||||
// msgList.add(UIConversation(msg));
|
|
||||||
// }
|
|
||||||
// if (isEnd && mounted) {
|
|
||||||
// setState(() {});
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// 监听刷新channel资料事件
|
// 监听刷新channel资料事件
|
||||||
WKIM.shared.channelManager.addOnRefreshListener("cover_chat", (channel) {
|
WKIM.shared.channelManager.addOnRefreshListener("cover_chat", (channel) {
|
||||||
for (var i = 0; i < msgList.length; i++) {
|
for (var i = 0; i < msgList.length; i++) {
|
||||||
@ -165,22 +148,24 @@ class ListViewShowDataState extends State<ListViewShowData> {
|
|||||||
|
|
||||||
String getReminderText(UIConversation uiConversation) {
|
String getReminderText(UIConversation uiConversation) {
|
||||||
String content = "";
|
String content = "";
|
||||||
if (uiConversation.isMentionMe == 0) {
|
if (uiConversation.reminders == null) {
|
||||||
uiConversation.msg.getReminderList().then((value) {
|
uiConversation.msg.getReminderList().then((value) {
|
||||||
if (value != null && value.isNotEmpty) {
|
Logs.debug('执行体系');
|
||||||
for (var i = 0; i < value.length; i++) {
|
uiConversation.reminders = value;
|
||||||
if (value[i].type == WKMentionType.wkReminderTypeMentionMe &&
|
setState(() {});
|
||||||
value[i].done == 0) {
|
|
||||||
content = value[i].data;
|
|
||||||
uiConversation.isMentionMe = 1;
|
|
||||||
setState(() {});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} else {
|
return content;
|
||||||
content = "[有人@你]";
|
}
|
||||||
|
if (uiConversation.reminders!.isNotEmpty) {
|
||||||
|
for (var i = 0; i < uiConversation.reminders!.length; i++) {
|
||||||
|
if (uiConversation.reminders![i].type ==
|
||||||
|
WKMentionType.wkReminderTypeMentionMe &&
|
||||||
|
uiConversation.reminders![i].done == 0) {
|
||||||
|
content = uiConversation.reminders![i].data;
|
||||||
|
content = '[有人@你]';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
@ -310,7 +295,7 @@ class ListViewShowDataState extends State<ListViewShowData> {
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => const ChatPage(),
|
builder: (_) => const ChatPage(),
|
||||||
settings: RouteSettings(
|
settings: RouteSettings(
|
||||||
arguments: ChatChannel(
|
arguments: ChatChannel(
|
||||||
msgList[pos].msg.channelID,
|
msgList[pos].msg.channelID,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user