| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import 'package:e2ee_chat/common/global.dart';
- import 'package:e2ee_chat/model/message.dart';
- import 'package:e2ee_chat/model/user.dart';
- import 'package:flutter/cupertino.dart';
- import 'login.dart';
- enum DTMessageType { text, image }
- class SessionListModel extends ChangeNotifier {
- User? get user => LoginPresenter().user;
- List<SessionModel> get sessions {
- final _user = user;
- var list = <SessionModel>[];
- if (_user != null) {
- var friends = _user.friends;
- for (var i in friends) {
- list.add(SessionModel(i));
- }
- }
- return list;
- }
- int get count => sessions.length;
- }
- class SessionModel extends SessionListModel {
- // TODO: 仅支持单聊
- SessionModel(this.contact);
- final User contact;
- /// 消息体
- Message? get lastMessage {
- final _user = user;
- Message? message;
- if (_user != null) {
- try {
- message = _user.messages.lastWhere((msg) => msg.from.target == _user || msg.to.target == _user);
- } catch (e) {
- debug("no message");
- }
- }
- return message;
- }
- /// 未读数量
- int get unReadCount {
- // TODO: 未读消息数量
- return 0;
- }
- get chatName => contact.username;
- /// 单聊
- get isSingle => true;
- /// 群聊信息
- get isGroup => false;
- /// 消息免打扰
- get isDND => contact.isDND;
- /// 是否为置顶
- get isStick => contact.isStick;
- /// 特别关注
- get isSpecialAttention => contact.isSpecialAttention;
- // TODO: 是否 @ 你
- get isAtYou => false;
- // TODO: 是否 @ 全部
- get isAtAll => false;
- // TODO: user avatar
- get avatar => Global.defaultAvatar;
- }
|