import 'package:flutter/material.dart'; import 'package:esse/l10n/localizations.dart'; import 'package:esse/utils/relative_time.dart'; import 'package:esse/widgets/avatar.dart'; import 'package:esse/global.dart'; import 'package:esse/apps/primitives.dart'; class GroupChat { int id = 0; String gid = ''; String addr = ''; String name = ''; bool isClosed = false; bool isLocal = true; GroupChat(); GroupChat.fromList(List params): this.id = params[0], this.gid = params[1], this.addr = params[2], this.name = params[3], this.isClosed = params[4], this.isLocal = params[4]; Avatar showAvatar({double width = 45.0}) { final avatar = Global.avatarPath + this.gid + '.png'; return Avatar(width: width, name: this.name, avatarPath: avatar); } } class Member { int id = 0; int fid = 0; String mid = ''; String addr = ''; String name = ''; bool leave = false; bool online = false; Member.fromList(List params) { this.id = params[0]; this.fid = params[1]; this.mid = params[2]; this.addr = params[3]; this.name = params[4]; this.leave = params[5]; if (this.mid == Global.pid) { this.online = true; } } Avatar showAvatar({double width = 45.0, bool isOnline = true}) { final avatar = Global.avatarPath + this.mid + '.png'; return Avatar( width: width, name: this.name, avatarPath: avatar, online: isOnline && this.online, onlineColor: Color(0xFF0EE50A), ); } } class Message extends BaseMessage { int height = 0; int fid = 0; int mid = 0; Message(int fid, MessageType type, String content) { this.fid = fid; this.type = type; this.content = content; } Message.fromList(List params) { this.id = params[0]; this.height = params[1]; this.fid = params[2]; this.mid = params[3]; this.isMe = params[4]; this.type = MessageTypeExtension.fromInt(params[5]); this.content = params[6]; this.isDelivery = params[7]; this.time = RelativeTime.fromInt(params[8]); } }