initChatV2 function
dynamic
initChatV2(
- dynamic callback()
Implementation
initChatV2(Function() callback){
var user = FirebaseAuth.instance.currentUser;
if (user == null)
return;
chatListenMe = FirebaseFirestore.instance.collection("chat")
.doc(user.uid).snapshots().listen((querySnapshot) {
if (querySnapshot.data() != null) {
_meData = querySnapshot.data()!;
int _chatCount = _meData["unread_chat"] != null ? toInt(_meData["unread_chat"].toString()) : 0;
dprint("listen main chat_chatCount=$_chatCount");
for (var item in _meData.entries){
dprint("${item.key} ${item.value}");
//
if (item.key.startsWith("from_")){
var _id = item.key.substring(5);
for (var u in users){
if (_id == u.id)
u.lastMessage = item.value;
}
}
if (item.key.startsWith("time_")){
var _id = item.key.substring(5);
if (item.value != null)
for (var u in users){
if (_id == u.id) {
u.lastMessageTime = item.value.toDate().toLocal();
}
}
}
if (item.key.startsWith("count_")){
var _id = item.key.substring(6);
for (var u in users){
if (_id == u.id)
u.all = toInt(item.value.toString()) + _getCountMyMessagesToUser(_id);
}
}
if (item.key.startsWith("unread_")){
var _id = item.key.substring(7);
for (var u in users){
if (_id == u.id)
u.unread = toInt(item.value.toString());
}
}
}
if (unreadMessagesInChat != _chatCount && _chatCount != 0)
callback();
// if (_chatCount != chatCount) {
// if (playSound != null)
// playSound()!;
// // sound
// //parent.playSound();
// }
unreadMessagesInChat = _chatCount;
users.sort((a, b) => a.compareToAll(b));
users.sort((a, b) => a.compareToUnread(b));
redrawMainWindow();
}
});
}