From e41537271ff17d1f62a6abb33f5deb46172aac44 Mon Sep 17 00:00:00 2001 From: ShootingStarDragons Date: Sat, 21 Jun 2025 00:47:38 +0900 Subject: [PATCH 1/3] fix: open chat from notification default should not be ignored --- lib/widgets/local_notifications_extension.dart | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/widgets/local_notifications_extension.dart b/lib/widgets/local_notifications_extension.dart index 540648eb4..38b8f5517 100644 --- a/lib/widgets/local_notifications_extension.dart +++ b/lib/widgets/local_notifications_extension.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:collection/collection.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -97,9 +98,12 @@ extension LocalNotificationsExtension on MatrixState { ], ); notification.action.then((actionStr) { - final action = DesktopNotificationActions.values - .singleWhere((a) => a.name == actionStr); - switch (action) { + var action = DesktopNotificationActions.values + .singleWhereOrNull((a) => a.name == actionStr); + if (action == null && actionStr == "default") { + action = DesktopNotificationActions.openChat; + } + switch (action!) { case DesktopNotificationActions.seen: event.room.setReadMarker( event.eventId, From 4802277dca7ba288cd5a0a450d7144054945d013 Mon Sep 17 00:00:00 2001 From: ShootingStarDragons Date: Sat, 21 Jun 2025 01:26:14 +0900 Subject: [PATCH 2/3] fix: notification clicked still cannot jump the context in context.go is the BuildContext by flutter, not that one from go_router. example is here: https://github.com/flutter/packages/blob/main/packages/go_router/example/lib/main.dart it was a mistaken --- lib/widgets/local_notifications_extension.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/widgets/local_notifications_extension.dart b/lib/widgets/local_notifications_extension.dart index 38b8f5517..bf0542455 100644 --- a/lib/widgets/local_notifications_extension.dart +++ b/lib/widgets/local_notifications_extension.dart @@ -1,11 +1,11 @@ import 'dart:io'; import 'package:collection/collection.dart'; +import 'package:fluffychat/widgets/fluffy_chat_app.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:desktop_notifications/desktop_notifications.dart'; -import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; import 'package:universal_html/html.dart' as html; @@ -112,7 +112,7 @@ extension LocalNotificationsExtension on MatrixState { ); break; case DesktopNotificationActions.openChat: - context.go('/rooms/${event.room.id}'); + FluffyChatApp.router.go('/rooms/${event.room.id}'); break; } }); From 5d8bad7458f671ef82003c8eb05596e71f35a501 Mon Sep 17 00:00:00 2001 From: ShootingStarDragons Date: Sat, 21 Jun 2025 01:32:50 +0900 Subject: [PATCH 3/3] chore: do format --- lib/widgets/local_notifications_extension.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/widgets/local_notifications_extension.dart b/lib/widgets/local_notifications_extension.dart index bf0542455..06e7a40e9 100644 --- a/lib/widgets/local_notifications_extension.dart +++ b/lib/widgets/local_notifications_extension.dart @@ -1,10 +1,9 @@ import 'dart:io'; -import 'package:collection/collection.dart'; -import 'package:fluffychat/widgets/fluffy_chat_app.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:collection/collection.dart'; import 'package:desktop_notifications/desktop_notifications.dart'; import 'package:matrix/matrix.dart'; import 'package:universal_html/html.dart' as html; @@ -14,6 +13,7 @@ import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/utils/client_download_content_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/widgets/fluffy_chat_app.dart'; import 'package:fluffychat/widgets/matrix.dart'; extension LocalNotificationsExtension on MatrixState {