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
+20 -14
View File
@@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:appwrite/models.dart';
import 'package:messaging_app/models/messages.dart';
@@ -5,7 +7,7 @@ class Chats {
String ownerId;
List<String> members;
String? type;
List<Messages>? messages;
List<List<Messages>>? messages;
Chats({
required this.ownerId,
@@ -14,25 +16,29 @@ class Chats {
required this.messages,
});
factory Chats.fromData(Document _document) {
List<Messages> _outMessages = [];
List<String> _outMembers = [];
List<dynamic> _messages = _document.data['messages'];
for (var _message in _messages) {
_outMessages.add(Messages.fromData(_message));
}
factory Chats.fromDocument(Document _document) {
//
//
List<List<Messages>> _messagesList = [];
List _members = _document.data['members'];
List _messages = _document.data['messages'];
List<dynamic> _members = _document.data['members'];
for (var _member in _members) {
_outMembers.add(_member);
for (var i = 0; i < _members.length; i++) {
List _msg = [];
_msg = json.decode(_messages[i])[_members[i]];
_messagesList.add(_msg.map((_temp) {
return Messages.fromMap(_temp);
}).toList());
}
return Chats(
ownerId: _document.data['ownerId'],
members: _outMembers,
members: _members.map((_member) {
return _member.toString();
}).toList(),
type: _document.data['type'],
messages: _outMessages,
messages: _messagesList,
);
}
}