session.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import 'package:e2ee_chat/common/global.dart';
  2. import 'package:e2ee_chat/model/message.dart';
  3. import 'package:e2ee_chat/model/user.dart';
  4. import 'package:flutter/cupertino.dart';
  5. import 'login.dart';
  6. enum DTMessageType {
  7. text,
  8. image
  9. }
  10. class SessionListModel extends ChangeNotifier {
  11. List<SessionModel> get sessions {
  12. var user = LoginModel().user;
  13. var list = <SessionModel>[];
  14. if (user != null) {
  15. var friends = user.friends;
  16. for (var i in friends) {
  17. list.add(SessionModel(i));
  18. }
  19. }
  20. return list;
  21. }
  22. int get count => sessions.length;
  23. }
  24. class SessionModel extends SessionListModel {
  25. // TODO: 仅支持单聊
  26. SessionModel(this._user);
  27. final User _user;
  28. /// 消息体
  29. Message get lastMessage => _user.messages.last;
  30. /// 未读数量
  31. int get unReadCount {
  32. // TODO: 未读消息数量
  33. return 0;
  34. }
  35. get chatName => _user.username;
  36. /// 单聊
  37. get isSingle => true;
  38. /// 群聊信息
  39. get isGroup => false;
  40. /// 消息免打扰
  41. get isDND => _user.isDND;
  42. /// 是否为置顶
  43. get isStick => _user.isStick;
  44. /// 特别关注
  45. get isSpecialAttention => _user.isSpecialAttention;
  46. // TODO: 是否 @ 你
  47. get isAtYou => false;
  48. // TODO: 是否 @ 全部
  49. get isAtAll => false;
  50. // TODO: user avatar
  51. get avatar => Global.defaultAvatar;
  52. }