From be5755f27f0fee9f5b711d07f3c21964427a2a81 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Thu, 4 Feb 2021 17:37:08 +0100 Subject: [PATCH] fix showing local notifications --- stream_chat_v1/lib/main.dart | 5 +++-- stream_chat_v1/lib/notifications_service.dart | 9 ++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/stream_chat_v1/lib/main.dart b/stream_chat_v1/lib/main.dart index 45f86f0..3278426 100644 --- a/stream_chat_v1/lib/main.dart +++ b/stream_chat_v1/lib/main.dart @@ -36,7 +36,7 @@ void main() async { if (userId != null) { final token = await secureStorage.read(key: kStreamToken); - await client.setUser( + await client.connectUser( User(id: userId), token, ); @@ -67,7 +67,8 @@ class MyApp extends StatelessWidget { builder: (context, child) { return StreamChat( client: client, - onBackgroundEventReceived: showLocalNotification, + onBackgroundEventReceived: (e) => + showLocalNotification(e, client.state.user.id), child: Builder( builder: (context) => AnnotatedRegion( child: child, diff --git a/stream_chat_v1/lib/notifications_service.dart b/stream_chat_v1/lib/notifications_service.dart index 246923d..c72ac19 100644 --- a/stream_chat_v1/lib/notifications_service.dart +++ b/stream_chat_v1/lib/notifications_service.dart @@ -2,7 +2,14 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart' hide Message; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; -void showLocalNotification(Event event) async { +void showLocalNotification(Event event, String currentUserId) async { + if (![ + EventType.messageNew, + EventType.notificationMessageNew, + ].contains(event.type) || + event.user.id == currentUserId) { + return; + } if (event.message == null) return; final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); final initializationSettingsAndroid =