Encrypted peer-to-peer IM for data security. Own data, own privacy. (Rust+Flutter)
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.
 
 
 
 
 
 

89 lines
2.0 KiB

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]);
}
}