This commit is contained in:
otsmr 2025-02-13 23:19:15 +01:00
parent 7db9daf41d
commit 9a05f616dc
2 changed files with 3 additions and 8 deletions

View file

@ -35,13 +35,14 @@ class MessagesChangeProvider with ChangeNotifier, DiagnosticableTreeMixin {
.indexWhere((x) => x.messageId == messageId);
if (index == -1) {
_allMessagesFromUser[targetUserId]!.insert(0, msg);
// reload all messages but async
loadMessagesForUser(targetUserId, force: true);
} else {
_allMessagesFromUser[targetUserId]![index] = msg;
}
}
_allMessagesFromUser[targetUserId] = allMessagesFromUser[targetUserId]!;
notifyListeners();
}
notifyListeners();
}
Future loadMessagesForUser(int targetUserId, {bool force = false}) async {

View file

@ -143,7 +143,6 @@ class ChatItemDetailsView extends StatefulWidget {
}
class _ChatItemDetailsViewState extends State<ChatItemDetailsView> {
int lastChangeCounter = 0;
TextEditingController newMessageController = TextEditingController();
HashSet<int> alreadyReportedOpened = HashSet<int>();
late Contact user;
@ -185,16 +184,11 @@ class _ChatItemDetailsViewState extends State<ChatItemDetailsView> {
.watch<MessagesChangeProvider>()
.allMessagesFromUser[user.userId.toInt()] ??
[];
print(messages.length);
messages.where((x) => x.messageOpenedAt == null).forEach((message) {
if (message.messageOtherId != null &&
message.messageContent is TextMessageContent) {
if (!alreadyReportedOpened.contains(message.messageOtherId!)) {
setState(() {
// so the _loadAsync will not be called again by this update
lastChangeCounter++;
});
userOpenedOtherMessage(message.otherUserId, message.messageOtherId!);
flutterLocalNotificationsPlugin.cancel(message.messageId);
alreadyReportedOpened.add(message.messageOtherId!);