Messaging

Implemented Chat Screens, Profile Pages, Search Pages
WIP: User profile, new chat button
Intended: Groups, Calls, Voice Messages
Properly deleting chats, offline storage of messages
This commit is contained in:
2025-03-26 13:41:56 +00:00
parent 1a74d16d85
commit 1ba9e981e1
18 changed files with 812 additions and 236 deletions
+22 -18
View File
@@ -1,15 +1,10 @@
import 'dart:convert';
enum MessageType {
Text,
Image,
}
class Messages {
String message;
String senderId;
MessageType type;
DateTime timeStamp;
String type;
String timeStamp;
Messages({
required this.message,
@@ -18,16 +13,25 @@ class Messages {
required this.timeStamp,
});
factory Messages.fromData(String _message) {
var _messageType = json.decode(_message)['type'] == "text"
? MessageType.Text
: MessageType.Image;
factory Messages.fromString(String _message) => Messages(
message: json.decode(_message)['message'],
senderId: json.decode(_message)['senderId'],
type: json.decode(_message)['type'],
timeStamp: json.decode(_message)['timeStamp'] ?? "",
);
return Messages(
message: json.decode(_message)['message'],
senderId: json.decode(_message)['senderId'],
type: _messageType,
timeStamp: DateTime.parse(json.decode(_message)['timeStamp'] ?? ""),
);
}
factory Messages.fromMap(Map _message) => Messages(
message: _message['message'],
senderId: _message['senderId'],
type: _message['type'],
timeStamp: _message['timeStamp'] ?? "",
);
Map<String, dynamic> toJson() => {
"message": message,
"senderId": senderId,
"type": type,
"timeStamp": timeStamp,
};
}