mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 14:48:41 +00:00
fix #41
This commit is contained in:
parent
7db9daf41d
commit
9a05f616dc
2 changed files with 3 additions and 8 deletions
|
|
@ -35,13 +35,14 @@ class MessagesChangeProvider with ChangeNotifier, DiagnosticableTreeMixin {
|
||||||
.indexWhere((x) => x.messageId == messageId);
|
.indexWhere((x) => x.messageId == messageId);
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
_allMessagesFromUser[targetUserId]!.insert(0, msg);
|
_allMessagesFromUser[targetUserId]!.insert(0, msg);
|
||||||
|
// reload all messages but async
|
||||||
|
loadMessagesForUser(targetUserId, force: true);
|
||||||
} else {
|
} else {
|
||||||
_allMessagesFromUser[targetUserId]![index] = msg;
|
_allMessagesFromUser[targetUserId]![index] = msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_allMessagesFromUser[targetUserId] = allMessagesFromUser[targetUserId]!;
|
|
||||||
notifyListeners();
|
|
||||||
}
|
}
|
||||||
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future loadMessagesForUser(int targetUserId, {bool force = false}) async {
|
Future loadMessagesForUser(int targetUserId, {bool force = false}) async {
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,6 @@ class ChatItemDetailsView extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ChatItemDetailsViewState extends State<ChatItemDetailsView> {
|
class _ChatItemDetailsViewState extends State<ChatItemDetailsView> {
|
||||||
int lastChangeCounter = 0;
|
|
||||||
TextEditingController newMessageController = TextEditingController();
|
TextEditingController newMessageController = TextEditingController();
|
||||||
HashSet<int> alreadyReportedOpened = HashSet<int>();
|
HashSet<int> alreadyReportedOpened = HashSet<int>();
|
||||||
late Contact user;
|
late Contact user;
|
||||||
|
|
@ -185,16 +184,11 @@ class _ChatItemDetailsViewState extends State<ChatItemDetailsView> {
|
||||||
.watch<MessagesChangeProvider>()
|
.watch<MessagesChangeProvider>()
|
||||||
.allMessagesFromUser[user.userId.toInt()] ??
|
.allMessagesFromUser[user.userId.toInt()] ??
|
||||||
[];
|
[];
|
||||||
print(messages.length);
|
|
||||||
|
|
||||||
messages.where((x) => x.messageOpenedAt == null).forEach((message) {
|
messages.where((x) => x.messageOpenedAt == null).forEach((message) {
|
||||||
if (message.messageOtherId != null &&
|
if (message.messageOtherId != null &&
|
||||||
message.messageContent is TextMessageContent) {
|
message.messageContent is TextMessageContent) {
|
||||||
if (!alreadyReportedOpened.contains(message.messageOtherId!)) {
|
if (!alreadyReportedOpened.contains(message.messageOtherId!)) {
|
||||||
setState(() {
|
|
||||||
// so the _loadAsync will not be called again by this update
|
|
||||||
lastChangeCounter++;
|
|
||||||
});
|
|
||||||
userOpenedOtherMessage(message.otherUserId, message.messageOtherId!);
|
userOpenedOtherMessage(message.otherUserId, message.messageOtherId!);
|
||||||
flutterLocalNotificationsPlugin.cancel(message.messageId);
|
flutterLocalNotificationsPlugin.cancel(message.messageId);
|
||||||
alreadyReportedOpened.add(message.messageOtherId!);
|
alreadyReportedOpened.add(message.messageOtherId!);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue