post merge commit

This commit is contained in:
2025-03-30 04:04:00 +01:00
parent 1ba9e981e1
commit 13042f8133
4 changed files with 79 additions and 36 deletions
+50 -29
View File
@@ -25,17 +25,28 @@ class MessagingProviders extends ChangeNotifier {
late final Account account;
late final Databases database;
late final Storage storage;
late final Realtime realtime;
late final RealtimeSubscription? subscription;
// Auth Status
AuthStatus? status;
late model.User? user;
static MessagingProviders instance = MessagingProviders();
MessagingProviders() {
_init();
_loadUser();
subscribe();
}
subscribe() {
subscription = realtime.subscribe(
[
'database.${Constants.instance.databaseId}.chats',
'database.${Constants.instance.databaseId}.conversations'
],
);
}
_init() {
@@ -46,6 +57,7 @@ class MessagingProviders extends ChangeNotifier {
account = Account(client);
database = Databases(client);
storage = Storage(client);
realtime = Realtime(client);
}
_loadUser() async {
@@ -215,7 +227,7 @@ class MessagingProviders extends ChangeNotifier {
for (var _document in _documentList.documents) {
_returnValue.add(User.fromData(_document));
}
_returnValue.sort((a,b) => b.lastSeen.compareTo(a.lastSeen));
_returnValue.sort((a, b) => b.lastSeen.compareTo(a.lastSeen));
return _returnValue;
},
);
@@ -256,39 +268,48 @@ class MessagingProviders extends ChangeNotifier {
// }
}
Future<List<Conversations>> getUserConversations(String userId) async {
List<dynamic> _chatId = [];
List<dynamic> _details = [];
List<dynamic> _lastModified = [];
List<Conversations> _returnValue = [];
// Stream<List<Conversations>> getUserConversations(String userId) async* {
// //
// // while (true) {
// List<dynamic> _chatId = [];
// List<dynamic> _details = [];
// List<dynamic> _lastModified = [];
// List<Conversations> _returnValue = [];
var _document = await database.getDocument(
databaseId: Constants.instance.databaseId,
collectionId: Constants.instance.convCollectionId,
documentId: userId.trim(),
);
// var _conversationData = await database.getDocument(
// databaseId: Constants.instance.databaseId,
// collectionId: Constants.instance.convCollectionId,
// documentId: userId.trim(),
// );
_chatId = _document.data['chatId'];
_details = _document.data['details'];
_lastModified = _document.data['lastModified'];
// yield _conversationData.toMap map(
// (_snapshot) {
// _chatId = _snapshot.data['chatId'];
// _details = _snapshot.data['details'];
// _lastModified = _snapshot.data['lastModified'];
for (int i = 0; i < _chatId.length; i++) {
_returnValue.add(
Conversations.fromData(_chatId[i], _details[i], _lastModified[i]));
}
_returnValue.sort((a, b) => b.lastModified!.compareTo(a.lastModified!));
// for (int i = 0; i < _chatId.length; i++) {
// _returnValue.add(Conversations.fromData(
// _chatId[i], _details[i], _lastModified[i]));
// }
// _returnValue.sort((a, b) => b.lastModified!.compareTo(a.lastModified!));
// return _returnValue;
// },
// );
// // }
// }
return _returnValue;
// .then((document) {
// _chatId = document.data['chatId'];
// _details = document.data['details'];
// _lastModified = document.data['lastModified'];
// for (int i = 0; i < _chatId.length; i++) {
// _returnValue.add(
// Conversations.fromData(_chatId[i], _details[i], _lastModified[i]));
// }
// _returnValue.sort((a, b) => b.lastModified!.compareTo(a.lastModified!));
// //conversationsController.add(_returnValue);
// }).catchError((error) {
// _returnValue;
// // conversationsController.addError(error);
// });
// return Future.delayed(Duration(microseconds: 300));
}
Stream<Chats> getMessage(String _chatId) async* {
//