Skip to content

10.6.0

Choose a tag to compare

@marcocrupi marcocrupi released this 23 Aug 15:46
· 68 commits to main since this release
Immutable release. Only release title and notes can be modified.

Added

  • Android: getNotificationSettings().android.fullScreenIntent now reports whether the app currently has the Android access required to use full-screen intents. API < 29 reports ENABLED, API 29–33 reflects USE_FULL_SCREEN_INTENT, and API 34+ reflects Android's full-screen intent special app access. ENABLED does not guarantee that a particular notification will be presented full-screen.

Fixed

  • Android: fixed a failure path that could drop MessagingStyle notifications when Person resolution timed out or an icon could not be loaded or created. These recoverable failures now use an icon-less fallback that preserves the remaining Person fields and allows notification construction to continue.

  • Android: fixed validation in the React Native client and Server SDK so duplicate pressAction.id values within a single notification's android.actions array are rejected, preventing ambiguous action configurations.

  • Android: fixed notification image handling so Fresco-owned bitmaps are copied before leaving BaseBitmapDataSubscriber, preventing later notification build, drawing, or parceling paths from depending on Fresco's bitmap lifetime.

  • Android: fixed ReceiverService PendingIntent identity collisions across app process restarts that could cause action buttons or dismiss/delete intents on older live notifications to receive another notification's payload when multiple notifications remained in the tray.

  • iOS / Communication Notifications: valid file:// sender avatars now display their image instead of a placeholder, and HTTPS group avatars are now materialized before the communication intent is built in both direct and Notification Service Extension (NSE) paths.

Tests

  • Android: added deterministic regression coverage for MessagingStyle Person timeouts and icon failures, verifying an icon-less fallback that preserves the remaining Person fields while unexpected person-construction failures continue to propagate.

  • Android: added deterministic Robolectric regression coverage for Fresco bitmap ownership, verifying that the source bitmap can be released while the bitmap returned by ResourceUtils remains independent and usable.

  • Android: added Robolectric coverage for full-screen intent access before API 29, permission grant and denial on API 29–33, and platform access results on API 34+.

  • Android: added deterministic Robolectric regression coverage for ReceiverService PendingIntent identity and a physical-device smoke harness covering a notification surviving a process restart, a second notification posted from the new process, real action-button presses, and real dismiss routing; the device scenarios were validated on a Pixel 9 Pro XL running Android 17/API 37.

  • iOS: added harness coverage for avatar resolution and materialization in Communication Notifications, deadline and media-cutoff handling, and one-shot NSE completion; physical-device validation covered valid file:// sender avatars, HTTPS group avatars in direct and NSE paths, and HTTPS sender regression paths.


📦 npm: https://www.npmjs.com/package/react-native-notify-kit/v/10.6.0