Skip to content

4.0.23-pre

Pre-release
Pre-release

Choose a tag to compare

@thomasgalliker thomasgalliker released this 17 Jun 08:21

4.0

  • Improved notification channel handling during app startup.
  • Data-only notifications are no longer displayed in the notification tray.
  • NotificationBuilder support for Android API 26 and below (where no notification channels are available).
  • OpenNotificationSettings now also works for Android API 26 and below.
  • Synchronized notification handling behavior between Android and iOS.
  • Renamed topic methods to follow the Async pattern: SubscribeToTopicAsync, UnsubscribeFromTopicAsync, etc.
  • Use AddOnCompleteListener for asynchronous tasks in Android.
  • Add target framework net9.0, net9.0-android and net9.0-ios.
  • Remove target framework net7.0, net7.0-android and net7.0-ios.
  • Bug fixes and refactorings.

3.2

  • Improved default notification channel handling.
  • Bug fixes and refactorings.

3.1

  • Extend INotificationChannels to manage notification channel groups.
  • Internal refactoring of INotificationChannels implementation.
  • Removed properties IsActive and IsDefault from NotificationChannelRequest. Set the default notification channel via UseFirebasePushNotifications(o => o.Android.DefaultNotificationChannelId = ...).
  • Configure initial list of notification channels via o.Android.NotificationChannels and notification groups via o.Android.NotificationChannelGroups.

3.0

  • Update firebase-ios-sdk by replacing nuget package Xamarin.Firebase.iOS.CloudMessaging with AdamE.Firebase.iOS.CloudMessaging.

2.5

  • Move static properties from Android's FirebasePushNotificationManager to FirebasePushNotificationAndroidOptions.
  • iOS 18 workaround for duplicate notifications in foreground mode.
  • iOS options to override default UNNotificationPresentationOptions for notifications received in foreground mode.
  • Handle gcm.notification.click_action payload as click_action in Android.

2.4

  • Refactor instanciation of IFirebasePushNotification.
  • Refactor startup procedure of platform-specific services.
  • Add singleton instance INotificationPermissions.Current.

2.3

  • General bug fixes and code cleanup.
  • Bug fixes in the area of topic subscriptions.
  • IFirebasePushNotification.Current.
  • Add singleton instance IFirebasePushNotification.Current and INotificationPermissions.Current.

2.2

  • Complete refactoring of the original 1.x implementation.
  • Simplified APIs, less static code, support for dependency injection.

1.0

  • Initial release.

Changes:

  • 674673f Extract release notes to text file
  • 2691600 Cleanup
  • dbe986b Reformat argument
  • f497f06 Try restoreArguments
  • bb5a834 Use nuget restore arguments to add release configuration parameter
  • ce13897 Restore nugets with release configuration
  • 2da0341 Remove 32 bit runtime identifiers in android sample app
  • 003d5bc Publish snupkg
  • d17cae4 Use .net 8 and .net 9
  • b844f38 Add Android proguard and trimmer config
See More
  • 942e94e GenerateDocumentationFile only in release mode
  • 5ad809c Update nugets in test project
  • 1a9210c Replace arrow in log messages
  • a39c382 Update community toolkit in sample app
  • 6b8e6cf Remove target framework net7.0 + add target framework net9.0
  • 719c90e Merge pull request #131 from thomasgalliker/android-notification-channel-handling-2
  • 8b2fa0a Update postman collection with more firebase notification messages
  • 99a0bf2 Adjust sample app to comply with latest changes/renames
  • 76efcf8 Refactor notification id and tag methods
  • 59987d8 Refactor and reuse icon resource methods
  • f81b2ac Don't process intent actions with android.intent.action.MAIN
  • b287355 Synchronize notification handling behavior between Android and iOS
  • a6f1a11 - Renamed topic methods to follow the Async pattern: SubscribeToTopicAsync, UnsubscribeFromTopicAsync, etc.
  • 77eb1ca Renames
  • 9723af8 Use TryGetInt method
  • 9c9199c Update comment
  • f7435fd Add key words to abbreviation list
  • 9f109a1 Synchronize notification handling behavior between android and ios
  • db7dafd Update readme.md
  • e93e5cd Update FAQ
  • d6d89e0 Remove internal method from interface
  • 32ac0da Adjust log message
  • 8edbb0b - Improved notification channel handling during app startup.
  • 4da1ef8 Cleanup
  • 832176c Add important note to Importance property
  • 25fecd4 Reformat log messages
  • 2380a39 Use NotificationImportance.Default for default notification channel
  • 687e08b Reformat log message
  • ae88772 Comment-out unused code
  • b635ccb Display "IsDefault" in sample app
  • e92ab6b Reformat log message + log missing default notification channel as warning
  • 3789176 Extend log message
  • 7b0c8fb Update release notes
  • bd1f0a4 Bump version to 3.3
  • 29fbbaf Refresh authorization status in sample app when app is resumed
  • 25d8328 Update FAQ
  • eff53f9 Merge pull request #122 from thomasgalliker/maintenance-20250512
  • a1657b3 Update contributor section in readme
  • 40fe066 Disable blank issue template
  • c368b95 Update FUNDING.yml
  • ce3bf9f Fix log target in sample app
  • cff5c6c Update postman collection
  • aa61d65 Refactor icon resource handling (Android)
  • 488770d Refactor notification channel handling: Ensure there is always at least the default channel. Read the default channel ID either from AndroidManifest or from Constants.
  • 0405436 Remove GetDefaultNotificationImportance method
  • 7209498 Use in-memory queue as default
  • aa8c84c Cleanup
  • 3c1bd2a Bump version to 3.2
  • 8fe1176 Remove obsolete parameter
  • 09a6f5d Remove property set in interface's static Current property
  • 4d3af19 Update readme
  • 3647562 Update readme: More infos regarding developers.google.com/oauthplayground
  • ba8a30a Update funding info
  • 81862aa AssemblyInfo update: DisableTelemetry
  • bcba8ec Merge pull request #87 from thomasgalliker/android-notification-channel-groups
  • aec5cd3 Use LaunchMode SingleTask (instead of SingleInstance) in Android sample app
  • 7e55680 Fix bug in PNFirebaseMessagingService which avoids displaying notification messages while the Android app runs in background
  • 7c5a130 Add demo for DefaultNotificationImportance
  • 3ea8f21 Increase efficiency in parsing
  • e9ae45d Fix CA warning
  • 029c22a Readd IsDefault property to NotificationChannelRequest + implement new notification channel handling with wrapper class around INotificationChannels.Channels
  • 9d4bd6f Add unit tests for tokenformatter
  • 1b4bdea Cleanup
  • 7665657 Use reportgenerator 5
  • e528df7 Call RegisterForRemoteNotifications on iOS also if RequestAuthorization returned 'denied' (to enable silent/background notifications)
  • 9a8f591 Reformat code
  • 52cec57 Use GetById method
  • 9ef5c21 Cleanup
  • 31cf4a9 Cleanup obsolete statements in csproj
  • ca9a54d Merge remote-tracking branch 'origin/develop' into android-notification-channel-groups
  • 6127b65 Simplify code
  • dd0d3ca Improve alignment of information in notification channels list (sample app)
  • 2bc8bbf Return if channelIds is empty
  • fbef6a3 Improve readability of notification channels in sample app
  • c2930d2 Move methods + add comments
  • 347e2bd Fix tostring output
  • a9b265b Add comments + cleanup
  • 01b5e01 Merge pull request #102 from thomasgalliker/android-get-context-fix
  • a914326 Update postman test messages
  • ee3eb2e Merge remote-tracking branch 'origin/android-get-context-fix' into android-notification-channel-groups
  • b18b3a6 Cleanup log messages
  • 90fc89c Use application context instead of current activity to configure platform (Android)
  • 5655eb2 Replace font in sample app (to avoid error on Android)
  • 99c0d48 Merge pull request #99 from thomasgalliker/update-ios-firebase-sdk
  • 155c235 Update nugets in sample app
  • 224d29f Update nuget AdamE.Firebase.iOS.CloudMessaging to 11.6.0
  • e37f2f9 Update mauiversion in sample app
  • 7c2f1fd Format enums in channel viewmodel
  • 07810fd Set AutoInitEnabled=true by default
  • c35a2ae Fix bug in SetNotificationChannelGroups to delete existing groups
  • 2a2e443 Fix bug in SetNotificationChannels so that no longer used channels are removed properly
  • 3dc547b Fix wrong label text
  • 8325e6b Update release notes
  • ad9c1b8 Remove prop set in android/ios specific options
  • 165a8f0 Add methods to open notification settings
  • fad9792 Fix log messages
  • fb12adb Extend log messages
  • 6ce6c32 Restore platform-independent implementation of INotificationChannels to simplify dependency injection
  • f72703b Disable sentry by default
  • ac1a9e2 Internal refactoring of INotificationChannels implementation. Add API to manage notification channel groups in INotificationChannels.
  • e86119c Merge remote-tracking branch 'origin/develop' into android-notification-channel-groups
  • 3682303 Extend sample app to create/delete notification channel groups
  • 126a14e Create and delete notification channel groups
  • d01337b Add model for notification channel group and add sample data
  • 3395a1c Initialize notification channels before firebase app is initialized
  • 07f6383 Update PR template
  • 076b231 Merge pull request #74 from thomasgalliker/update-firebase-ios-sdk
  • 4b88a30 Update PR template
  • d19eec6 Add pull request template
  • 73d60a7 Hide divider line on android
  • 14b890b Use latest assembly-info task
  • 0cc8339 Extend rate limiter to throw exception if identifier is null
  • 24757bb Return sdk version of firebase cloud messaging in IFirebasePushNotification
  • 871dc0c Merge remote-tracking branch 'origin/develop' into update-firebase-ios-sdk
  • 4629de3 Merge pull request #80 from thomasgalliker/foreground-handling-notification-actions
  • 6ce79aa Harmonize notification action handling between Android and iOS: Don't show notification popup if priority is <=default and app is in foreground mode.
  • c53aa9a Read aps.priority value from data payload on iOS
  • 9bd92a7 Merge pull request #79 from thomasgalliker/gcm-notification-clickaction-fix
  • f81ca5f Update release notes
  • d04a78d Include gcm.notification.click_action in ShouldHandleNotificationReceived
  • 8bc905d Read key gcm.notification.click_action as click_action
  • 0d87edc Disable spell checking and text prediction in topic entry
  • 6847b6f Add comment
  • 3f3bcaf Merge pull request #76 from thomasgalliker/firebase-initialization-options
  • cef88b1 Merge remote-tracking branch 'origin/update-firebase-ios-sdk-2' into update-firebase-ios-sdk
  • 91b6128 Restore Android-specific nuget packages
  • 97a297e Remove explicit version for net7.0-ios (Rider issue)
  • 5e36d9f Merge pull request #77 from thomasgalliker/update-firebase-ios-sdk-2
  • 327e0ec Update nugets Xamarin.Firebase.Messaging (Android) and AdamE.Firebase.iOS.CloudMessaging (iOS)
  • d5bae1c Fix bug in CheckIfFirebaseAppInitialized method
  • 177e586 Move method
  • 78b83eb Harmonize platform configuration code between android and ios. Add more logging during app initialization.
  • 9ca5a3c Add comment
  • 9fd0925 Add iOS option to configure firebase programmatically
  • e1dc4ec Add Android option to configure firebase programmatically
  • e48a4be Update FAQ
  • b200f97 Merge remote-tracking branch 'origin/develop' into update-firebase-ios-sdk
  • a5b9f9f Merge branch 'develop' of https://github.com/thomasgalliker/Plugin.FirebasePushNotifications into develop
  • 26c2fcd Merge pull request #73 from thomasgalliker/ios-presentationoptions
  • c09057e Cleanup comments
  • 3d261a0 Update nugets in sample app + test project
  • fb1a068 Update release notes
  • 257b00c Bump version to 3.0.x
  • 203124d Replace Xamarin.Firebase.iOS.CloudMessaging with AdamE.Firebase.iOS.CloudMessaging
  • 1a1fe0d Add sentry to MauiSampleApp
  • 48f0d36 Fix unit tests
  • af22445 Fix android build (sample app)
  • 35d72ce Use PresentationOptions as default before priority is applied
  • 279182f Extend sample app to configure PresentationOptions on iOS
  • 89a9022 Update release notes
  • fc319ae Fix build issue in sample app
  • f6bb98b Add presentation options for iOS
  • f48e168 Move const
  • 3d017dc Merge pull request #72 from thomasgalliker/notification-delivered-twice-ios18
  • 965158c Set WillPresentNotificationExpirationTime to 3 seconds (default)
  • 7cab43d Make iOS 18 rate limit workaround configurable
  • d726d26 Add rate limiter to omit duplicated notifications in WillPresentNotification
  • 63586e7 Merge pull request #68 from thomasgalliker/move-static-props-from-android-firebasepush
  • 190dd7b Share FCM token in sample app as text file (instead of plain text)
  • a3e5805 Harmonize IPushNotificationHandler initializer code on both platforms
  • f6bfd4f Use IFirebasePushNotifications.Current instead of CrossFirebasePushNotification.Current
  • 8245729 Bump version to 2.5.x
  • affb91e Remove DefaultNotificationActivityType (as there is no real purpose for this property)
  • 8b3c024 Move static properties from Android's FIrebasePushNotificationManager to FirebasePushNotificationAndroidOptions
  • 78897f6 Update build config to use PublishCodeCoverageResults@2
  • 9de6411 Build for net8.0-ios16 and ios17
  • 3d104e3 Remove scheduled monthly build
  • f0896a9 CA1416 severity to info
  • c305544 Update FAQ
  • 2999629 Update mauiversion in sample app
  • 532827c Update github templates
  • 8313d6e Update FAQ with infos regarding the long path issue on Windows 11
  • 2a84087 Merge pull request #59 from thomasgalliker/register-categories-nre
  • c7dd8e2 Replace AndroidSupportedAbis with RuntimeIdentifiers
  • f4f50bb Update maui version in sample app
  • 524ed1b Merge branch 'develop' into register-categories-nre
  • 1209953 Merge pull request #63 from thomasgalliker/android-foreground-priority-fix
  • c49b617 Enforce the existence of a notification channel before calling NotificationCompat.Builder
  • 82b28f0 Remove foreground check from Android NotificationBuilder
  • 8731f91 Update icon
  • 76bd52d Replace icon
  • 2f2dc2a Update sample app icon + splash screen
  • fbd0568 Set AllowMultiple=true for PreserveAttribute
  • 5ba708c Replace pdn icon with svg
  • 149a308 Update release notes
  • dca91a6 Add singleton instance INotificationPermissions.Current
  • 34b41ed Update logo
  • c24d56e Move platform initialization code from FinishedLaunching/OnApplicationCreated to ctor of FirebasePushNotificationManager
  • a01850e Use ctor of FirebasePushNotificationManagerBase to inject services instead of configuring them inside OnApplicationCreate (Android) and FinishedLaunching (iOS). IFirebasePushNotification.Current is now constructed via DI container.
  • bab92d1 Merge pull request #53 from thomasgalliker/topic-unsubscribe-after-unregister
  • 62f4e0a Update release notes
  • c34bd2a Remove automatic unsubscription from topics if unregistered from push notifications
  • 2b775b1 Merge pull request #51 from thomasgalliker/subscribe-topic-after-restart
  • d891233 Update font family for better readability
  • b29671a Update styles
  • 1e6ba7f Move FAQ.md to docs
  • 6254972 Remove obsolete iOS version check
  • 1b73402 Add logging to RequestPermissionAsync method
  • c8baae1 Reformat code
  • 6efefb1 Don't store hasToken in a variable - instead, check if ApnsToken is not null
  • f06d524 Extract GetParameters method as extension method
  • f04f254 Fix readme
  • a5ae4ba Fix whitespaces in url
  • a0291a9 Fix readme
  • 397132f Adjust readme
  • 0bac86d Add FCM postman collection with sample messages
  • 0e07bf4 Add intent action to open web urls (demo app)
  • e47b9fe Remove obsolete code
  • 4d731ff Bump version to 2.3.x
  • 42bcd55 Improve splash screen, app icon and logo visibility in sample app
  • 59e15e9 Merge pull request #30 from thomasgalliker/refactor-platform-specific-service
  • 044cee0 Extend unit tests
  • 4915395 Resolve notification action by notificationCategory.CategoryId and notificationAction.Id
  • 417fcaf Use keyboard type "url" for topic entry
  • b047cc9 Remove NotificationAction from NotificationOpened event + create separate event args class FirebasePushNotificationActionEventArgs
  • dfccf7c Use anonymous type instead of Tuple for queuing topics
  • 4b7f95b Display link to nuget package on MainPage
  • 1103a63 Conditional MauiVersion
  • e7cf73c Cleanup
  • 7357613 Remove obsolete test method
  • 8ff0108 Set MauiVersion to >=8.0.3
  • b09cc2f Fix build
  • b97caa7 Experiment with TestMethod
  • 03bb867 Another attempt to preserve platform-specific methods
  • 1fa39a2 Add Preserve attribute for IFirebasePushNotification interface (all members)
  • aa46f74 Mark readonly
  • 30806f4 Bump MauiVersion in sample app
  • 50561b5 SetStyle for large icons
  • a413626 Move sound uri method
  • 12cda59 Refactor large icon handling in Android
  • 6a5dcfd Log warning message if notification importance is higher than what the channel supports
  • 7ce3153 Extract methods
  • a5621a5 Read default notification color and notification icon from AndroidManifest (if configured)
  • aad1696 Create default notification channel if options.Android.NotificationChannels is left empty
  • 037987d Fix notification handling in Android: Show local notification vs. handle notification with default behavior
  • 1bea48b Add logging
  • 159384f Reformat code
  • 8015f1d Reformat code
  • 2e1cb84 Cleanup

This list of changes was auto generated.