Hibok
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 line
942 B

  1. import 'package:chat/utils/MessageMgr.dart';
  2. class UnreadCountProvider {
  3. //未读消息条数管理
  4. Map<int, int> unreadCountMap = {};
  5. updateUnreadCount(int sessionId, int count) {
  6. if (unreadCountMap[sessionId] == null) {
  7. unreadCountMap[sessionId] = 0;
  8. }
  9. unreadCountMap[sessionId] += count;
  10. MessageMgr().emit('Update UnreadCount', sessionId);
  11. }
  12. clear() {
  13. unreadCountMap.clear();
  14. }
  15. int getUnreadCount(int sessionId) {
  16. return unreadCountMap[sessionId] ?? 0;
  17. }
  18. bool checkUnreadMsg() {
  19. for (var v in unreadCountMap.values) {
  20. if (v > 0) {
  21. return true;
  22. }
  23. }
  24. return false;
  25. }
  26. signRead(int sessionId) {
  27. print('消除未读标记:$sessionId');
  28. int count = getUnreadCount(sessionId);
  29. if (count > 0) {
  30. unreadCountMap[sessionId] = 0;
  31. MessageMgr().emit('Update UnreadCount', sessionId);
  32. }
  33. }
  34. }