stream_video_push_notification 1.7.0 copy "stream_video_push_notification: ^1.7.0" to clipboard
stream_video_push_notification: ^1.7.0 copied to clipboard

Adds push notification support for Stream Video, a service for building video calls, audio rooms, and live-streaming applications.

1.7.0 #

🔄 Changed #

  • [Android] Migrated the Android module to AGP's built-in Kotlin. The module no longer applies the Kotlin Gradle Plugin (KGP), whose application Android Gradle Plugin 9.0 removed — apps on AGP 9 failed to build because of it.
  • Increased minimum Flutter version to 3.44.0, which is required for the built-in Kotlin migration: from 3.44 Flutter applies the Kotlin Gradle Plugin to plugin modules that no longer declare it, keeping AGP 8 builds working.

1.6.0 #

✅ Added #

  • [iOS] Added ActionCallIncomingFailed and IncomingCallFailureReason to notify when the system blocks showing an incoming call (e.g. due to Do Not Disturb or block list). Listen via onRingingEvent<ActionCallIncomingFailed>.
  • [Android] Added a Telecom integration for the ringing flow, which registers ringing calls with the platform's Telecom stack. This gives the call proper audio focus and a place in the system call state, and lets it be answered or hung up from a paired watch, a car head unit or a Bluetooth headset. The incoming call notification and full-screen ringing UI are unchanged. It is on by default on Android 17 and above, where ringing from a push no longer works reliably without it, and off below that, so existing integrations are unaffected. Configure it with AndroidPushConfiguration(telecom: TelecomPushConfiguration(...)).

🐞 Fixed #

  • Fixed an issue where consumeIncomingCall could create multiple Call instances for the same ringing flow, causing state conflicts and UI issues.
  • [iOS] Fixed calls answered on the CallKit screen during a cold start or terminated state not being properly joined, or being incorrectly ended on the device. The SDK now reliably detects and joins answered calls in these scenarios.
  • [iOS] Fixed the CallKit provider configuration being lost when a VoIP push woke the app before any Dart code had run, which dropped the configured ringtone, icon and Recents behaviour on a cold start.
  • [Android] Fixed the incoming call ringtone being silently muted on Android 17. The ringtone is now played from a phoneCall foreground service, which Android 17's background audio hardening requires for audio played while no activity is visible.

🔄 Changed #

  • [Android] The plugin now compiles against Java 17, matching the other Stream Video Flutter packages, and adds androidx.core:core-telecom and org.jetbrains.kotlinx:kotlinx-coroutines-android as dependencies.
  • [Android] The plugin now explicitly declares BLUETOOTH_CONNECT permission for clarity. It's optional and only needed for Bluetooth features on API 31+. Only the active Bluetooth device will appear if not granted.

1.5.0 #

  • Updated stream_video dependency to 1.5.0.

1.4.3 #

🐞 Fixed #

  • Fixed the incoming call UI (CallKit on iOS) ringing for a call whose ringing flow was already resolved before the push was delivered.

1.4.2 #

  • Increased minimum Flutter version to 3.38.1.

1.4.1 #

🐞 Fixed #

  • [Android] Fixed a crash in TransparentActivity when the activity is recreated with a null intent action (e.g. after process death or restore from recents) (#1256).

1.4.0 #

  • Sync version with stream_video_flutter 1.4.0

1.3.3 #

  • Sync version with stream_video_flutter 1.3.3

1.3.2 #

  • Sync version with stream_video_flutter 1.3.2

1.3.1 #

🐞 Fixed #

  • [iOS] Fixed race condition where push notification events could be lost if the Flutter EventChannel listener wasn't registered yet.

1.3.0 #

  • Sync version with stream_video_flutter 1.3.0

1.2.4 #

  • Sync version with stream_video_flutter 1.2.4

1.2.3 #

✅ Added #

  • Added includesCallsInRecents to iOS push configuration to control whether CallKit calls appear in Recents.

🐞 Fixed #

  • [iOS] Fixed CallKit event suppression to avoid repeated mute toggle loops.
  • [Android] Fixed issues when accepting incoming calls from detached state (app exited via back button).
  • [Android] Fixed incoming call notifications not showing when the app is in a detached state (e.g., after pressing the back button).

1.2.2 #

  • Sync version with stream_video_flutter 1.2.2

1.2.1 #

🐞 Fixed

  • [iOS/macOS] Fixed crash when VoIP push is received before Flutter fully initializes from the terminated state.

1.2.0 #

  • Sync version with stream_video_flutter 1.2.0

1.1.0 #

  • Sync version with stream_video_flutter 1.1.0

1.0.2 #

🐞 Fixed

  • Fixed incoming call timeout handling.
    • Use streamVideo.observeCoreRingingEventsForBackground() instead of streamVideo.observeCallDeclinedRingingEvent() in firebaseMessagingBackgroundHandler to support all necessary events.

1.0.1 #

  • Sync version with stream_video_flutter 1.0.1

1.0.0 #

🚧 Breaking changes #

CallKit/Ringing

This release removes the dependency on flutter_callkit_incoming, resulting in several breaking changes to CallKit and ringing functionality:

  • CallKit/ringing configuration: The initialization process is updated. Replace the pushParams parameter in StreamVideoPushNotificationManager with the new pushConfiguration field (StreamVideoPushConfiguration).
  • Parameter renaming: The nameCaller parameter has been standardized and renamed to callerName across all relevant locations.
  • Removed properties:
    • The deprecated callerCustomizationCallback and backgroundVoipCallHandler have been fully removed from StreamVideoPushNotificationManager.
    • The previously used appName field in pushParams has been removed as it was deprecated. On iOS, the app’s product name from build settings is now used instead.
  • API renames and type changes
    • onCallKitEvent is now onRingingEvent
    • observeCoreCallKitEvents is now observeCoreRingingEvents
    • observeCallAcceptCallKitEvent is now observeCallAcceptRingingEvent
    • observeCallDeclinedCallKitEvent is now observeCallDeclinedRingingEvent
    • observeCallEndedCallKitEvent is now observeCallEndedRingingEvent
    • The CallKitEvent type is now RingingEvent

🍏 Swift Package Manager (SPM) #

  • Added Swift Package Manager (SPM) support for iOS.

    Important

    Flutter's iOS SPM is experimental and disabled by default. You can enable it via flutter config --enable-swift-package-manager. Flutter will fall back to CocoaPods for plugins that don't support SPM. See the Flutter SPM docs.

0.11.2 #

  • Sync version with stream_video_flutter 0.11.2

0.11.1 #

  • Sync version with stream_video_flutter 0.11.1

0.11.0 #

🚧 Build breaking changes

Important: This release includes breaking changes for Android development.

Android Requirements:

  • Minimum compileSDK 36
  • Android Gradle Plugin >=8.12.1
  • Gradle wrapper >=8.13
  • Kotlin 2.2.0
  • Updated minimum Flutter version to 3.32.0
  • Updated minimum supported Dart SDK version to 3.8.0

0.10.4 #

  • Sync version with stream_video_flutter 0.10.4

0.10.3 #

  • Sync version with stream_video_flutter 0.10.3

0.10.2 #

🔄 Dependency updates

  • Updated flutter_callkit_incoming dependency to version 2.5.7. That version contains Android 14 compatibility fixes for ringing notifications and lock screen handling.

0.10.1 #

✅ Added

  • Added support for customization of display name for ringing notifications by providing display_name custom data to the call. See the documentation for details.

0.10.0 #

  • Sync version with stream_video_flutter 0.10.0

0.9.6 #

  • Sync version with stream_video_flutter 0.9.6

0.9.5 #

  • Sync version with stream_video_flutter 0.9.5

0.9.4 #

  • Sync version with stream_video_flutter 0.9.4

0.9.3 #

  • Sync version with stream_video_flutter 0.9.3

0.9.2 #

  • Sync version with stream_video_flutter 0.9.2

0.9.1 #

  • Sync version with stream_video_flutter 0.9.1

0.9.0 #

🐞 Fixed

  • (iOS) Synchronized CallKit microphone mute state with the actual call mute state.

0.8.4 #

  • Sync version with stream_video_flutter 0.8.4

0.8.3 #

  • Sync version with stream_video_flutter 0.8.3

0.8.2 #

  • Sync version with stream_video_flutter 0.8.2

0.8.1 #

  • Sync version with stream_video_flutter 0.8.1

0.8.0 #

  • Updated minimum Flutter version to 3.27.4
    • Note: If you updated Flutter version and are using flutterfire_cli for push notifications you might need to reactivate it by running: dart pub global activate flutterfire_cli.

🐞 Fixed

  • (Windows/Linux) Fixes compilation issues caused by stream_webrtc_flutter package.

0.7.2 #

🐞 Fixed

  • Resolved an issue where accepting a second call while already on a call would not open the call screen correctly.
  • (iOS) Resolved an issue where CallKit calls sometimes were not terminated when the Stream call ended.
  • (iOS) Fixed a missing app icon on the CallKit screen when the app was in a terminated state.

0.7.1 #

  • Sync version with stream_video_flutter 0.7.1

0.7.0 #

🚧 Breaking changes

  • The package is now compatible with Gradle 8. The minimum required Java version is now 17.
  • Updated the flutter_callkit_incoming package to version 2.5.0, which also requires Java 17.

🐞 Fixed

  • Fixes rejecting ringing call when CallEnd, instead of CallDecline, event is triggered by CallKit during ringing.

0.6.1 #

  • Updated minimum Flutter version to 3.24.5

✅ Added

  • Added the StreamVideoPushNotificationManager.ensureFullScreenIntentPermission() method. This resolves an issue on some Android 14 devices where full-screen notifications would not appear due to missing permissions. You can now invoke this method to show a settings screen, allowing users to enable the required permission if it's not already enabled.

🐞 Fixed

  • Resolved an issue where CallKit calls would not connect when accepted while the screen was locked.

0.6.0 #

🔄 Dependency updates

  • Updated firebase dependencies to fix Xcode 16 build issues

0.5.5 #

  • Sync version with stream_video_flutter 0.5.5

0.5.4 #

  • Dependency updates
    • Flutter SDK constraint updated to >=3.22.0 (Dart SDK to >=3.4.0 <4.0.0)
    • json_annotation updated from ^4.8.0 to ^4.9.0
    • firebase_core updated from ^2.15.1 to ^3.4.0
    • firebase_messaging updated from ^14.5.0 to ^15.1.1

0.5.3 #

  • Sync version with stream_video_flutter 0.5.3

0.5.2 #

🐞 Fixed

  • Fixed CallKit integration on iOS when app is in a terminated state. It now correctly openes the app when the call is accepted.

0.5.1 #

  • Sync version with stream_video_flutter 0.5.1

0.5.0 #

🐞 Fixed

  • Fixed an issue where the microphone was being muted when the app was running in the background on Android versions greater than 14.

0.4.4 #

  • Sync version with stream_video_flutter 0.4.4

0.4.3 #

✅ Added

  • CallKit now displays appropriate video and audio call labels.

0.4.2 #

  • Sync version with stream_video_flutter 0.4.2

0.4.1 #

  • Sync version with stream_video_flutter 0.4.1

0.4.0 #

🚧 Breaking changes

  • Updated minimum supported dart SDK version to 3.3.0 (which requires min Flutter SDK 3.19.0)

0.3.9 #

  • Sync version with stream_video_flutter 0.3.9

0.3.8 #

  • Sync version with stream_video_flutter 0.3.8

0.3.7 #

  • Updated minimum supported SDK version to Flutter 3.16

0.3.6 #

  • Sync version with stream_video_flutter 0.3.6

0.3.5 #

  • Sync version with stream_video_flutter 0.3.5

0.3.4 #

  • Sync version with stream_video_flutter 0.3.4

0.3.3 #

  • Added StreamCallType class that replaces depricated String type parameter

0.3.2 #

🐞 Fixed

  • Various fixes to call ringing and push notifications.
  • Fixes call ringing cancellation when app is terminated on iOS (requires additional setup - check Step 6 of the APNS integration) in our documentation.
  • Fixes late push notification handling on Android, where already ended call was ringing if the device was offline and the push was delivered with a delay.
  • Fixes call ringing cancellation when caller timed out while calling
  • Fixed action tap callback on Android call notification.

0.3.1 #

  • Important: Fixes crash for CallKit on iOS.

0.3.0 #

✅ Added

  • callerCustomizationCallback to StreamVideoPushNotificationManager that allow dynamic customization of CallKit call screen.

Example usage:

pushNotificationManagerProvider: StreamVideoPushNotificationManager.create(
    ...
    callerCustomizationCallback: ({required callCid, callerHandle, callerName}) =>
          CallerCustomizationResponse(name: "Customized $callerName"),
    ),

🐞 Fixed

  • Fixed ringing call cancellation issues.

🚧 Breaking changes

  • Removed the incomingCallerNameOverride and incomingCallerHandlerOverride from StreamVideoPushParams in favor of the new callerCustomizationCallback in StreamVideoPushNotificationManager.

0.2.0 #

✅ Added

  • incomingCallerNameOverride and incomingCallerHandlerOverride to StreamVideoPushParams to allow customization of CallKit call screen
  • participantsAvatarBuilder and participantsDisplayNameBuilder to StreamOutgoingCallContent and StreamIncomingCallContent to allow customiztion of Incoming and Outgoing call screens

Example usage:

StreamCallContainer(
   ...
   outgoingCallBuilder: (context, call, callState) =>
           StreamOutgoingCallContent(
               call: call,
               callState: callState,
               participantsDisplayNameBuilder:
                   (context, call, callState, participants) => your widget here,
           ),
)

🐞 Fixed

  • App icon in CallKit screen is now visible in dedicated button when correctly configured.

0.1.1 #

  • Aligned version with other Stream Video packages

0.1.0 #

  • Added helper class for iOS native push initialization
  • Fixes for iOS CallKit implementation
  • Fixes for Android ringing implementation
  • Added event listeners for call state changes

0.0.4 #

  • Updated minimum supported SDK version to Flutter 3.10/Dart 3.0
  • Updated stream_video dependency to 0.0.3.

0.0.3 #

  • Adds ability to update provider names for Firebase and APNS

0.0.2 #

  • Updates for backend

0.0.1 #

  • Initial beta release of Stream Video 🚀