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:
+20
-14
@@ -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,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user