Skip to content

[flutter_local_notifications] - #2

Open
hariaditya97 wants to merge 383 commits into
hariaditya97:masterfrom
MaikuB:master
Open

[flutter_local_notifications]#2
hariaditya97 wants to merge 383 commits into
hariaditya97:masterfrom
MaikuB:master

Conversation

@hariaditya97

Copy link
Copy Markdown
Owner

As this repository hosts two packages, please ensure the PR title starts with the name of the package that it relates to using square brackets (e.g. [flutter_local_notifications]). The contribution guidelines can be found at https://github.com/MaikuB/flutter_local_notifications/blob/master/CONTRIBUTING.md. Please review this as it contains details on what to follow when submitting a PR.

michaelnew and others added 30 commits March 16, 2023 18:58
The notification ID was being incremented after creating the notification, which meant that trying to append a message 10 seconds later created an entirely new notification rather than just being added to the conversation.
* align Flutter and Dart SDK constraints

* update PR template

* update wording to be more generic on number of packagwa
…n specified time is when daylight savings occurs (#1953)

* fix ios date parsing

* fix ios date parsing

* macos change date parsing
…r zonedScheduled method (#1959)

* [flutter_local_notifications] fixed unit tests for zonedScheduled method

* Swift Format

* ignore example when running unit tests

* have unit tests fail fast and specify to ignore example via yaml

* attempt to specify scopes for unit tests to work on CI

* Revert "attempt to specify scopes for unit tests to work on CI"

This reverts commit ece6192.

* remove --no-select when running tests

* update cirrus unit tests script to run pwd command to narrow melos related issues

* Revert "update cirrus unit tests script to run pwd command to narrow melos related issues"

This reverts commit 52747e4.

* have melos not run pub get in parallel

* update pattern to find packages

* made further changes to match updated melos 3 updates

* update version constraints for min Flutter version to 3.3 and Dart SDK min of 2.18

* Revert "update version constraints for min Flutter version to 3.3 and Dart SDK min of 2.18"

This reverts commit 026f577.

* specify using melos 2.9.0 as using 3.0.0 would require bumping min Flutter SDK version constraint

* use cirrus script from master

* activate melos 2.9.0

* updated contribution guide to specify melos 2.9.0 is used

* restore old melos script

* use melos 2.9.0 for ios integration tests

---------

Co-authored-by: runner <runner@Mac-1681519212001.local>
* use mockito for linux plugin

* bump mockito dependency in platform interface and cross-platform plugin and updated changelog entries

* specify mockito 5.3.2 to satisfy Dart SDK constraints
… and LinuxNotificationUrgency to be enums (#1961)

* updated LinuxNotificationCategory and LinuxNotificationUrgency to be enums

* remove export of deleted file
…#1962)

* updated Day class to be an enum

* changed InterruptionLevel class to be an enum

* changed AndroidServiceForegroundType to an enum

* changed AndroidServiceStartType class to be an enum

* fix broken unit tests and changed Importance class to an enum

* changed Priority class to an enum

* changed AudioAttributesUsage class to an enum

* changed AndroidNotificationCategory class to be an enum

* updated API docs for Day enum

* Updated API docs for enums related to Apple's APIs
* Add some MARKs

Helps to navigate in Xcode when you can see groupings of code.

* Mark macOS NSUserNotification methods unavailable (#1858)

NSUserNotification was deprecated in macOS 10.14. Mark any OS X target methods
using this API as deprecated. This eliminates compile-time warnings when
building with 10.14 or higher.

* Fix deprecation warning statements

Specified the wrong version! Fixed, and added the introduction version as well.
Also switching from OSX to macOS. All Swift documentation uses macOS and not
OSX. Figured best to follow the official docs, even though OSX is valid.

* Use macOS versus OSX for Swift availability

Following the previous commit, standardize on using "macOS" for availability in
Swift code. This matches the official Swift language documentation, versus
"OSX" which, while valid, is present for backward compatibility, but not
mentioned in the Swift docs.
* Adds Android namespace

Adds a namespace attribute to the Android build.gradle, for compatibility with Android Gradle Plugin 8.0.

* format build.gradle

* Adds Android namespace

Adds a namespace attribute to the Android build.gradle, for compatibility with Android Gradle Plugin 8.0.
* prepare for 14.0.0 stable release

* replace dead link on Android icons with link to Image Asset Studio

* fix test description to reference DarwinNotificationAttachment  instead of IOSNotificationAttachment
…ode on Android and what happens when exact alarm permissions are revoked (#1976)

* updated documentation on the schedule mode on Android and what happens when exact alarm permissions are revoked

* update 14.0.0+1 changelog entry

* removed incomplete 14.0.0+1 changelog entry that shouldn't have been there
* bumped maximum Dart SDK constraint

* updated example app to iOS 11

* add changelog entry on example app update

* recreated macOS side of example app

* fix up macOS example app

* add Podfile to source control

* removed unnecessary parenthesis

* recreated iOS side of example app

* fix integration tests

* fixed deprecation warnings with setMockMethodCallHandler calls

* Revert "fixed deprecation warnings with setMockMethodCallHandler calls"

This reverts commit c950758.
…null notification (#1999)

* Add null check in receiver

* Add log when calling removeNotificationFromCache

* Google Java Format

---------

Co-authored-by: github-actions <>
…ndroid when user taps on an action that shows a UI whilst app is terminated (#2000)

* fixed issue to cancel notification on android when user taps on an action that shows a UI whilst app is terminated

* Google Java Format

---------

Co-authored-by: github-actions <>
…le app on iOS and macOS (#2003)

* readd custom side to example app on ios

* readded sound to example app on macos

* update tag used for writing error log message on android when a corrupt scheduled notification is encountered and update related changelog entry

* add todo comments to update tag used when logging error message for exact alarm permission being revoked
…de to ScheduleMode (#1997)

* Add alarmClock mode to ScheduleMode

Allowing exact alarm even in low power mode

* Address PR CR

* Address PR CR: Add example of using AlarmClock

* update text for alarm clock example for consistency and casing

---------

Co-authored-by: Michael Bui <25263378+MaikuB@users.noreply.github.com>
* prepare for 14.1.0 release

* Google Java Format

---------

Co-authored-by: github-actions <>
Update flutter_local_notifications_plugin.dart
…sentation options for iOS and macOS (#2016)

* added supported for banner and list presentation options on iOS

* support banner and list presentation options on macos along with configuring defaults

* Swift Format

* restore support of default presentation options on ios and keep in user defaults

* Clang Format

* removed print statements from macOS plugin code

* updated API docs, changelog and pubspec for release

---------

Co-authored-by: runner <runner@Mac-1685630501483.local>
Co-authored-by: runner <runner@Mac-1685631538518.local>
MaikuB and others added 30 commits February 17, 2026 17:18
…1.1 (#2758)

* updated compileSdk version to 36

* updated AGP to 8.11.1

* updated Gradle version

* added missing changelog entries on bumping timezone package

* removed redundant import
…le (#2761)

* added missing space to 21.0.0-dev.1 changelog

* migrated example app to UIScene lifecycle

* updated readme with instructions apps that have migrated to UIScene lifecycle

* updated iOS general setup for more clarity

* updated version in pubspec for next prerelease

* remove linter rule that no longer exists
Bumps [futureware-tech/simulator-action](https://github.com/futureware-tech/simulator-action) from 4 to 5.
- [Release notes](https://github.com/futureware-tech/simulator-action/releases)
- [Changelog](https://github.com/futureware-tech/simulator-action/blob/main/CHANGELOG.md)
- [Commits](futureware-tech/simulator-action@v4...v5)

---
updated-dependencies:
- dependency-name: futureware-tech/simulator-action
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Example app runs on web

* Example app recognizes Web plugin

* Tentative implementation of show()

* Added service worker to web example

Also added getActiveNotifications

* Address lints

* Use conditional imports to not break non-web platforms

* Address lints

* More formatting

* Used dart format

* Implemented cancel() and cancelAll()

* Dart format

* Added WebNotificationDetails

* Formatted

* Added WebNotificationAction

* Added text action and removed web examples that don't fit

* Implemented pending and periodically to no-op or throw

* Web Package

* Added foreground callbacks

* Launch handler

* Formatted

* Documented actions

* Documented direction

* Documented utils

* Documented handler

* Documented details

* Added web-specific examples

* Formatted

* More documentation

* Changelog and License

* Fix notification handler on non-chrome

* Bumped melos-config SDK versions

* Fix CI

* Fix pubspecs

* Typo

* Web stub for example

* Updated example and main readme

* Formatted

* Added version to example

* Updated reamde again

* Pubspec description

* chore(.gitignore): Add Kiro IDE artifacts to ignore list

- Add .kiro directory to gitignore to exclude IDE-specific files
- Prevents accidental commits of local development environment data

* feat(web): Migrate to named parameters for web notification APIs

- Update WebFlutterLocalNotificationsPlugin.show() to use named parameters (id, title, body, payload, details)
- Update WebFlutterLocalNotificationsPlugin.cancel() to use named parameters (id, tag)
- Update example app to use named parameters when calling notification APIs
- Fix web.dart example label from "Windows-specific" to "Web-specific"
- Remove universal_platform dependency from example app
- Remove prefer_equal_for_default_values lint rule from analysis options
- Simplify Platform imports and web stub imports in example main.dart
- Remove version field from example pubspec.yaml
- Update registerWith() parameter type from dynamic to Object for type safety
- Improves API consistency and enables better IDE support with named parameters

* feat(flutter_local_notifications): Add web support for periodic notifications

- Implement periodicallyShow() for web platform with repeat interval support
- Implement periodicallyShowWithDuration() for web platform with duration-based intervals
- Throw UnsupportedError for zonedSchedule() on web instead of silently returning
- Enhance getActiveNotifications() to extract and return notification metadata (title, body, tag, payload) from web Notification API
- Add dart:js_interop_unsafe import for advanced JS interop operations
- Improve web notification data extraction with proper type checking and null safety

* refactor(flutter_local_notifications_web): Improve variable naming clarity

- Rename `result` to `activeNotifications` for clearer intent
- Rename `jsNotifs` to `notifications` to remove redundant prefix
- Rename `jsNotification` to `notification` for consistency
- Rename `notif` to `activeNotification` for explicit type indication
- Improve code readability by using descriptive variable names throughout the getActiveNotifications method

* refactor(flutter_local_notifications_web): Improve notification dismissal logic and variable naming

- Rename `notifs` variable to `notifications` for clarity and consistency
- Replace manual loop with `firstWhereOrNull` for more efficient notification lookup
- Simplify conditional logic using logical operators instead of nested if statements
- Add `package:collection/collection.dart` import to support `firstWhereOrNull` method
- Improve code readability and reduce iteration overhead in `cancelNotification` method

* refactor(flutter_local_notifications_web): Rename notification callback parameter for consistency

- Rename `onNotificationReceived` to `onDidReceiveNotificationResponse` in WebFlutterLocalNotificationsPlugin.initialize()
- Update parameter name in stub implementation to match main plugin
- Update documentation and examples in README to reflect new parameter name
- Fix punctuation in WebNotificationDetails vibration pattern documentation
- Improves naming consistency across the web platform implementation and aligns with callback naming conventions

* docs(flutter_local_notifications_web): Enhance lang property documentation with BCP 47 details

- Add comprehensive documentation for the `lang` property in WebNotificationDetails
- Clarify that lang should be a BCP 47 language tag (e.g., `en-US`, `fr-FR`, `ja-JP`)
- Document default behavior when lang is null, explaining browser language fallback
- Bump version to 1.0.0-dev.1 in pubspec.yaml for pre-release tracking

* refactor(flutter_local_notifications_web): Remove non-standard action type support

- Remove WebNotificationActionType enum and its button/textInput variants
- Remove type parameter from WebNotificationAction class
- Remove type field serialization from toJs() conversion method
- Remove WHATWG proposal documentation references from utils
- Simplify action conversion to use only standard notification action properties
- Align implementation with standardized Web Notification API specification

* chore(flutter_local_notifications_web): Add collection dependency

- Add collection package ^1.19.1 to dependencies
- Enables use of collection utilities for improved code functionality
- Aligns with project dependency management practices

* chore(.gitignore): Remove artifacts from ignore list

* chore(changelog): Document web platform support release

- Add vNext changelog entry for flutter_local_notifications with web platform support
- Add vNext changelog entry for flutter_local_notifications_platform_interface with web platform interface support
- Add vNext changelog entry for flutter_local_notifications_web with comprehensive feature list including immediate, scheduled, and periodic notifications, notification actions, foreground callbacks, launch details, and service worker integration
- Credit initial implementation by Levi Lesches and completion by Gaurav

* refactor(flutter_local_notifications_web): Remove unused IndexedDB functionality

- Remove saveMessage() function and related IndexedDB database logic
- Remove idb_id field from notification message object
- Remove obsolete comments referencing IndexedDB usage
- Simplify notification handling by eliminating dead code path

* refactor(flutter_local_notifications_web): Improve variable naming in permission request

- Rename `result` to `permissionStatus` for clarity
- Better conveys the semantic meaning of the returned permission state
- Improves code readability and maintainability

* feat(example): Add web platform support to notification examples

- Add web platform checks using kIsWeb to conditionally show platform-specific UI
- Implement web permission checking in _isAndroidPermissionGranted method
- Implement web permission request handling in _requestPermissions method
- Update _requestPermissionsWithCriticalAlert to skip web platform
- Add web implementation resolution for WebFlutterLocalNotificationsPlugin
- Update web examples to include request permissions callback
- Conditionally hide platform-specific notification examples on web
- Add web platform guards to Android, iOS, macOS, Linux, and Windows specific features
- Improve cross-platform compatibility by properly detecting web vs native platforms

* feat(example): Enhance web notification examples and improve code formatting

- Add new web notification examples with payload and actions support
- Improve SecondPage UI with detailed notification response display
- Add _InfoValueString widget for consistent data presentation
- Reformat web.dart function signature for better readability
- Fix line wrapping in main.dart for improved code style consistency
- Enhance notification response details page with structured layout and padding
- Display notification data entries in a formatted list on web platform

* feat(flutter_local_notifications_web): Add comprehensive documentation and test coverage

- Add browser compatibility matrix showing feature support across Chrome/Edge, Firefox, and Safari
- Document platform limitations including no scheduled notifications, no repeating notifications, and permission requirements
- Add troubleshooting section covering debug mode issues, service worker updates, and permission blocking
- Implement stub methods for cancelAll(), getNotificationAppLaunchDetails(), getActiveNotifications(), and pendingNotificationRequests()
- Add dev dependencies for testing (flutter_test, flutter_lints, build_runner)
- Create comprehensive test suite with 332 lines covering WebNotificationDetails, WebNotificationAction, and WebFlutterLocalNotificationsPlugin
- Update service worker with improved notification handling and error management
- Improves developer experience with clear documentation of browser capabilities and common troubleshooting scenarios

* style(flutter_local_notifications): Improve code formatting and indentation

- Realign generic type parameters in resolvePlatformSpecificImplementation calls for better readability
- Standardize indentation of method arguments across multiple function calls
- Improve formatting consistency in initialize, show, periodicallyShow, and periodicallyShowWithDuration methods
- Enhance code style to match project conventions for multi-line generic type declarations

* feat(flutter_local_notifications_web): Add permission status API and pending notifications cancellation

- Add `permissionStatus` getter to retrieve current permission state ('granted', 'denied', or 'default')
- Add `isPermissionDenied` getter to check if user explicitly blocked notifications
- Enhance `requestNotificationsPermission()` with early return when permission already denied
- Add `cancelAllPendingNotifications()` method (no-op for web platform)
- Improve documentation with MDN reference and clarification on browser permission behavior
- Update stub implementation to match new API surface
- Reorganize stub file to remove duplicate `hasPermission` getter definition

* feat(flutter_local_notifications_web): Add browser support detection and improve initialization error handling

- Add `isSupported` static getter to detect Notification API availability
- Wrap initialization logic in try-catch block for robust error handling
- Add explicit checks for Notification API and Service Worker support before registration
- Add validation that service worker registration succeeded before proceeding
- Enhance initialize method documentation with failure scenarios
- Improve error messages to help developers debug initialization failures
- Fix trailing whitespace in requestPermission method

* docs(flutter_local_notifications_web): Add browser support detection and permission status documentation

- Add browser support detection example using `isSupported` property
- Add permission status checking documentation with `hasPermission` and `isPermissionDenied` properties
- Add initialization return value handling to detect failures
- Add raw permission status retrieval example showing 'granted', 'denied', or 'default' states
- Add user guidance for handling blocked notifications with dialog example
- Expand troubleshooting section with initialization success verification and browser support checks
- Improve initialization code example to show proper error handling

* ci(workflows): Remove duplicate Flutter 3.22 web build job

- Remove redundant build_example_web_3_22 job from validation workflow
- Consolidate web build testing to single job configuration
- Reduce CI pipeline execution time and resource usage

* docs(flutter_local_notifications): Update contributor credits for Web support

- Update Levi Lesches credit to reflect Windows support only
- Add Gaurav as contributor for Web support implementation
- Clarify individual contributions to platform-specific features

* docs(flutter_local_notifications_web): Add browser compatibility details and improve documentation

- Add specific browser version requirements for notification actions (Chrome 48+, Edge 18+)
- Include official MDN and Can I Use references for browser compatibility
- Document notification ID behavior using browser's tag field
- Add warning note about action support limitations in Firefox and Safari
- Improve reply text handling in utils with null safety checks and Chrome-only feature notes
- Add defensive checks in service worker for optional notification data fields
- Simplify cancel() method to use only notification ID without tag parameter
- Add zonedSchedule() stub with UnsupportedError and guidance for alternatives
- Enhance code comments explaining tag usage for notification ID storage
- Clarify that text input actions are Chrome-only feature with fallback handling

* feat(flutter_local_notifications_web): Add tag parameter to cancel method

- Add optional tag parameter to cancel() method signature for API consistency
- Add clarifying comment explaining tag parameter is Android-specific and ignored on web
- Maintain existing notification cancellation behavior using only notification ID on web platform

* feat(flutter_local_notifications_web): Extract payload parsing logic into dedicated method

- Extract payload extraction logic from getActiveNotifications into _extractPayloadFromNotificationData method
- Add comprehensive type checking for payload values (string, number, boolean)
- Convert numeric and boolean payloads to strings for consistent handling
- Add detailed documentation explaining edge cases and type conversions
- Remove zonedSchedule method stub that throws UnsupportedError
- Improve code maintainability and reduce duplication in notification data handling

* refactor(example): Rename permission check method to include web support

- Rename `_isAndroidPermissionGranted()` to `_isAndroidOrWebPermissionGranted()` for clarity
- Update method call in `initState()` to use new method name
- Better reflects that the method checks permissions for both Android and Web platforms

* refactor(flutter_local_notifications_web): Remove tag parameter from cancel method

- Remove tag parameter from WebFlutterLocalNotificationsPlugin.cancel() method
- Update cancel method signature in plugin.dart to only accept id parameter
- Update cancel method signature in stub.dart to match plugin implementation
- Remove Android-specific tag documentation comment from web implementation
- Simplify web notification cancellation to use only notification ID for identification

* feat(flutter_local_notifications_web): Add web initialization settings and improve plugin

- Add WebInitializationSettings class to support federated plugin pattern
- Export WebInitializationSettings from main library
- Add web parameter to InitializationSettings for platform-specific configuration
- Throw UnsupportedError for periodicallyShow() and periodicallyShowWithDuration() on web
- Replace print() with developer.log() for better logging practices
- Refactor getNotificationAppLaunchDetails() to improve null safety and readability
- Clean up query parameters after notification launch to prevent persistence on refresh
- Add early return in show() method for web platform
- Fix whitespace and formatting inconsistencies

* feat: Allow `requestNotificationsPermission` to return null

* feat(flutter_local_notifications_web): Improve notification ID parsing and URL cleanup

- Add safe parsing of notification ID using int.tryParse to handle non-numeric values
- Preserve non-notification query parameters and URL path during history cleanup
- Replace full URL replacement with selective parameter removal to support cross-origin scenarios
- Rename id variable to idString for clarity before parsing
- Add early return when notification ID is missing from query parameters
- Construct cleaned URL with proper path, query, and fragment handling to maintain URL integrity

* fix(flutter_local_notifications_web): Improve notification handling and code quality

- Fix typo in JSNotificationData documentation ("rperesenting" → "representing")
- Replace int.parse with int.tryParse for safer notification ID parsing to prevent crashes on invalid IDs
- Add type filter to clients.matchAll() to only match window clients in service worker
- Remove trailing whitespace in notification handler for code consistency

* fix(flutter_local_notifications_web): Add null-safety checks for URL properties

- Add null-safety operator to badgeUrl before calling toString()
- Add null-safety operator to iconUrl before calling toString()
- Add null-safety operator to imageUrl before calling toString()
- Prevent potential null pointer exceptions when URL properties are null

* docs(flutter_local_notifications_web): Remove text input actions from compatibility table

- Remove text input actions row from browser compatibility matrix
- Simplify feature support documentation by removing unsupported feature

* feat(flutter_local_notifications_web): Enhance notification response handling and web examples

- Add NotificationResponse parameter to SecondPage widget to display full response details
- Display notification ID, action ID, input text, and response type in second screen UI
- Replace Padding with SingleChildScrollView for better scrolling on smaller screens
- Add web example for notifications with icon actions (like, view buttons)
- Add web example for notifications with reply action (reply, mark read buttons)
- Convert notification actions to JS format using explicit object construction instead of jsify()
- Replace inline comment with developer.log() for browser compatibility warnings
- Improve payload examples with structured JSON data for chat and photo notifications

* docs(flutter_local_notifications): Consolidate contributor acknowledgments

- Reorganize Windows support contributors into single line entry
- Add Levi Lesches to Web support contributors acknowledgment
- Improve readability by grouping related contributors together
- Maintain accurate attribution while reducing redundancy

* ci: Add web platform testing and update CI workflows

- Update actions/checkout to v6 across all workflow jobs
- Add new build_example_web_3_19 job to test web example with Flutter 3.38.1
- Add unit_tests_web job to run web-specific unit tests in Chrome
- Extract tool installation to shared script (.github/workflows/scripts/install-tools.sh)
- Refactor build steps to use melos run commands for consistency
- Add test:unit:web melos script for running web tests with Chrome platform
- Improve CI workflow maintainability and reduce duplication

* test(flutter_local_notifications_web): Refactor plugin tests with shared setup

- Consolidate WebFlutterLocalNotificationsPlugin tests into single group
- Add shared setUp method to initialize plugin instance for all tests
- Replace type-checking assertions with actual behavior verification
- Remove redundant plugin instantiation across individual tests
- Verify actual method execution and return values instead of just checking Future types
- Improve test maintainability and reduce code duplication

* test(flutter_local_notifications_web): Add comprehensive plugin tests

- Add new web_plugin_test.dart with browser-targeted test suite
- Add StringUtils tests for nullIfEmpty extension method
- Add WebNotificationDetailsUtils tests for vibration pattern conversion
- Add NullableWebNotificationDetailsUtils.toJs conversion tests covering null details, custom directions, URLs, language, boolean flags, timestamps, and actions
- Add WebInitializationSettings const constructor test to existing test file
- Expand test coverage for notification options generation and JS interop conversions

* Refactor permission checks into platform-specific methods and update timezone retrieval to directly use a string.

* chore: rename `build_example_web_3_19` workflow job ID to `build_example_web_min_flutter`

* refactor: rename `id2` to `notificationId` in `_showRenotify` for clarity

* fix: Add a delay in the web example to ensure notifications render before replacement.

* Update flutter_local_notifications/pubspec.yaml

Co-authored-by: Michael Bui <25263378+MaikuB@users.noreply.github.com>

* Update flutter_local_notifications_web/lib/src/details.dart

Co-authored-by: Michael Bui <25263378+MaikuB@users.noreply.github.com>

* feat: Enable `periodicallyShow` and `periodicallyShowWithDuration` for web, adding `timezone` dependency, and updating timezone retrieval in the example.

* docs: Update web permission handling examples to use platform-specific implementation and add timezone dependency to the platform interface.

* feat: Add `zonedSchedule` method for time zone-aware notification scheduling and move `DateTimeComponents` to the platform interface.

* feat: Add web support for `zonedSchedule` by calling the web-specific plugin implementation instead of throwing an unsupported error.

* refactor: remove vibration pattern support from web notifications.

* Refactor: rename `_onNotificationClicked` to `_handleNotificationClick` and correct `showNotification()` comment.

* docs: update CHANGELOG version to 1.0.0-dev.1 and refactor test expectations for cancel methods to use `expectLater`.

* docs: update `plugin.show` examples to use named arguments.

* chore: Update SDK and Flutter constraints and upgrade `flutter_local_notifications_platform_interface` and `build_runner` dependencies.

* refactor: replace string-based notification permission status with a new WebNotificationPermission enum.

* refactor: improve formatting and readability in test files.

* example: Remove custom vibration pattern from WebNotificationDetails in _showVibrate.

* feat: remove notification with vibration example from web platform

* fix: add `!kIsWeb` condition to Android permission grant check.

* docs: Clarify web debugging behavior for notifications in README and simplify the web example by removing specific action buttons and functions.

* Update Dart SDK constraint and remove Flutter SDK constraint.

* style: remove extraneous blank line from pubspec.yaml

---------

Co-authored-by: Levi Lesches <levilesches@gmail.com>
Co-authored-by: Michael Bui <25263378+MaikuB@users.noreply.github.com>
* update casing when referring to the word "web"

* updated changelog entry for platform interface to be more accurate

updated changelog entry in platform interface to be more accurate

* updated version info of platform interface for next prerelease

* updated references to platform interface version for prerelease

* updated plugin logic on handling zonedSchedule() calls

* shifted responsibility of reporting UnsupportedError of periodicallyShow() method to Windows plugin instead of the cross-platform facing plugin

* updated details for next Windows prerelease

* updated details for next main plugin prerelease

* corrected changelog entry for Windows plugin

* bumped Linux plugin and reference to it
…pecific APIs (#2769)

* docs(web): update README snippets to use web-specific API and fix parameters

* Address PR review comments for flutter_local_notifications_web

- Add missing isSupported static getter to stub.dart for non-web compilation
- Remove boolean hasPermission/isPermissionDenied getters in favor of
  enum-based permissionStatus (WebNotificationPermission)
- Rename show() parameter from details to notificationDetails for consistency
- Use single quotes consistently in all README Dart code snippets
- Restructure README: rename section to Usage, add endorsed-package boilerplate
- Add cross-links from main README to web package README
- Add Web limitations and Web Setup entries to main README table of contents
- Update example app to use permissionStatus instead of hasPermission
* prepare for 22.0.0-dev.2 release

* removed excess asterisk
…2774)

Bumps [xml](https://github.com/renggli/dart-xml) from 6.6.1 to 7.0.1.
- [Changelog](https://github.com/renggli/dart-xml/blob/main/CHANGELOG.md)
- [Commits](renggli/dart-xml@v6.6.1...v7.0.1)

---
updated-dependencies:
- dependency-name: xml
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ss settings (#2775)

* highlight app row when opening DND access settings

* refactor: rename variable for clarity in notification policy access settings
* prepare for 22.0.0-dev.3 release

* added info on bumping xml dependency
Add missing code block format
* prepare for 22.0.0 stable release

* credit readme fix in changelog
…g up for Windows plugin (#2785)

* suppress experimental coroutine deprecation warnings

* ci: pin Flutter 3.38.1 Windows job to windows-2022

* removed extra *

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* add step to trust wix/brew

* Revert "add step to trust wix/brew"

This reverts commit 8aefcd9.

* use iPhone 17 simulator

* trust wix/brew
…ictureStyleInformation (#2794)

* [Android] Add showBigPictureWhenCollapsed to BigPictureStyleInformation

Expose Android API 31+ showBigPictureWhenCollapsed for big picture
notifications so the image can appear as the collapsed-state thumbnail.

Contributed by hiimax (Codematic)

* [Android] Demonstrate showBigPictureWhenCollapsed in example app

Add an Android example button and helper that shows big picture
notifications with showBigPictureWhenCollapsed enabled.

* Update flutter_local_notifications/lib/src/platform_specifics/android/styles/big_picture_style_information.dart

Co-authored-by: Michael Bui <25263378+MaikuB@users.noreply.github.com>

---------

Co-authored-by: Michael Bui <25263378+MaikuB@users.noreply.github.com>
* migrate ios part of example app to use SPM

* migrate macos portion of example app to SPM

* commit updated autogenerated cmake for linux and windows portion of example app

* updated changelog and pubspec for release
…ift to match plugin minimum (#2808)

Package.swift declared .iOS("11.0") but depends on FlutterFramework
which requires iOS 13.0. This causes a Target Integrity build failure
when Swift Package Manager is enabled in a Flutter app. FLN 21.0.0
already raised the Dart-side minimum to iOS 13 — this brings the
SPM manifest into alignment.

Fixes #2807
* [various] report when a notification is dismissed by the user

Resolves #74. Adds an opt-in `emitDismissEvent` flag to
`AndroidNotificationDetails` and maps iOS/macOS dismissals (for categories
configured with `customDismissAction`) to a new
`NotificationResponseType.notificationDismissed`. The dismissal is delivered
through the existing notification response callbacks, reusing the background
isolate pipeline already used for notification actions.

* [flutter_local_notifications] let apps choose the isolate for the dismissal callback

Adds a `dismissIsolate` preference (`NotificationDismissedIsolate`) to the
platform-specific details, replacing the boolean flag, so apps can choose
whether a dismissal fires on the main or a background isolate. Where a platform
can't honour the choice it degrades: macOS has no background isolate so it
always reports on the main isolate, and the main isolate only fires while the
app is running.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.