From 6cedd33c7e8d773324ba05537036b102bafe188d Mon Sep 17 00:00:00 2001 From: David Djordjevic Date: Thu, 6 Feb 2025 00:28:43 +0100 Subject: [PATCH 1/2] Fix local notification not being shown on android --- packages/rx_bloc_cli/example/README.md | 12 ++++++------ .../firebase_messaging_callbacks.dart | 19 +++++++++++++------ .../lib/base/utils/local_notifications.dart | 2 +- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/packages/rx_bloc_cli/example/README.md b/packages/rx_bloc_cli/example/README.md index edca02157..fb271fa03 100644 --- a/packages/rx_bloc_cli/example/README.md +++ b/packages/rx_bloc_cli/example/README.md @@ -597,9 +597,9 @@ For details on the API contracts used in the onboarding feature, please refer to [patrol_pub_lnk]: https://pub.dev/packages/patrol [patrol_cli_pub_lnk]: https://pub.dev/packages/patrol_cli [patrol_native_integration_lnk]: https://patrol.leancode.pl/getting-started#integrate-with-native-side -[patrol_integration_test_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/patrol_integration_test.md -[rx_bloc_cli_cd_setup_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/continuous_delivery.md -[golden_tests_with_smart_widgets_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/golden_tests.md -[rx_bloc_cli_mfa_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/mfa.md -[feature_creation]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/feature_creation.md -[feature_onboarding_api]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/onboarding_api_contracts.md \ No newline at end of file +[patrol_integration_test_lnk]: docs/patrol_integration_test.md +[rx_bloc_cli_cd_setup_lnk]: docs/continuous_delivery.md +[golden_tests_with_smart_widgets_lnk]: docs/golden_tests.md +[rx_bloc_cli_mfa_lnk]: docs/mfa.md +[feature_creation]: docs/feature_creation.md +[feature_onboarding_api]: docs/onboarding_api_contracts.md \ No newline at end of file diff --git a/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/app/initialization/firebase_messaging_callbacks.dart b/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/app/initialization/firebase_messaging_callbacks.dart index a11bc6c27..a74904de7 100644 --- a/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/app/initialization/firebase_messaging_callbacks.dart +++ b/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/app/initialization/firebase_messaging_callbacks.dart @@ -10,11 +10,12 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../common_blocs/push_notifications_bloc.dart'; +import '../../common_services/push_notifications_service.dart'; import '../../models/notification_model.dart'; import '../../utils/local_notifications.dart'; /// Callback executed once the app receives a FCM message while in foreground -void onForegroundMessage(BuildContext context, RemoteMessage message) { +void onForegroundMessage(BuildContext context, RemoteMessage message) async { log('Foreground Message received!'); final notification = message.notification; @@ -26,11 +27,17 @@ void onForegroundMessage(BuildContext context, RemoteMessage message) { // Present the foreground notification on Android only // https://firebase.flutter.dev/docs/messaging/notifications/#application-in-foreground if (!kIsWeb && androidNotification != null) { - showLocalNotification( - id: notification.hashCode, - title: title, - content: body, - ); + final notificationsEnabled = await context + .read() + .areNotificationsEnabled(); + + if (notificationsEnabled) { + await showLocalNotification( + id: notification.hashCode, + title: title, + content: body, + ); + } } else if (kIsWeb) { // TODO: Implement your own logic of presenting notifications on web log('Web notification received: '); diff --git a/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/utils/local_notifications.dart b/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/utils/local_notifications.dart index 75d38a222..bdc73681d 100644 --- a/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/utils/local_notifications.dart +++ b/packages/rx_bloc_cli/mason_templates/bricks/rx_bloc_base/__brick__/lib/base/utils/local_notifications.dart @@ -51,7 +51,7 @@ Future showLocalNotification({ _maxImportanceChannel.id, _maxImportanceChannel.name, channelDescription: _maxImportanceChannel.description, - icon: icon ?? 'app_icon', // To use your own custom icon for foreground + icon: icon ?? 'mipmap/ic_launcher', // To use your own custom icon for foreground // notifications, replace the png file in `android/src/main/res/drawable` ), iOS: const DarwinNotificationDetails( From 20147e2324faf44bfc7f7fb5a4d047c36f46270d Mon Sep 17 00:00:00 2001 From: David Djordjevic Date: Thu, 6 Feb 2025 00:46:02 +0100 Subject: [PATCH 2/2] Revert readme changes --- packages/rx_bloc_cli/example/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/rx_bloc_cli/example/README.md b/packages/rx_bloc_cli/example/README.md index fb271fa03..edca02157 100644 --- a/packages/rx_bloc_cli/example/README.md +++ b/packages/rx_bloc_cli/example/README.md @@ -597,9 +597,9 @@ For details on the API contracts used in the onboarding feature, please refer to [patrol_pub_lnk]: https://pub.dev/packages/patrol [patrol_cli_pub_lnk]: https://pub.dev/packages/patrol_cli [patrol_native_integration_lnk]: https://patrol.leancode.pl/getting-started#integrate-with-native-side -[patrol_integration_test_lnk]: docs/patrol_integration_test.md -[rx_bloc_cli_cd_setup_lnk]: docs/continuous_delivery.md -[golden_tests_with_smart_widgets_lnk]: docs/golden_tests.md -[rx_bloc_cli_mfa_lnk]: docs/mfa.md -[feature_creation]: docs/feature_creation.md -[feature_onboarding_api]: docs/onboarding_api_contracts.md \ No newline at end of file +[patrol_integration_test_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/patrol_integration_test.md +[rx_bloc_cli_cd_setup_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/continuous_delivery.md +[golden_tests_with_smart_widgets_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/golden_tests.md +[rx_bloc_cli_mfa_lnk]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/mfa.md +[feature_creation]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/feature_creation.md +[feature_onboarding_api]: https://github.com/Prime-Holding/rx_bloc/blob/master/packages/rx_bloc_cli/example/docs/onboarding_api_contracts.md \ No newline at end of file