diff --git a/dogfooding/pubspec.yaml b/dogfooding/pubspec.yaml index 2c4802430..0786bd3c8 100644 --- a/dogfooding/pubspec.yaml +++ b/dogfooding/pubspec.yaml @@ -1,5 +1,5 @@ name: flutter_dogfooding -version: 1.11.2+1 +version: 2.0.0+1 publish_to: none description: Flutter Dogfooding App to showcase Video SDK. @@ -37,11 +37,11 @@ dependencies: share_plus: ^11.0.0 shared_preferences: ^2.5.3 stream_chat_flutter: ^9.17.0 - stream_video_filters: ^0.11.2 - stream_video_flutter: ^0.11.2 - stream_video_noise_cancellation: ^0.11.2 - stream_video_push_notification: ^0.11.2 - stream_video_screen_sharing: ^0.11.2 + stream_video_filters: ^1.0.0 + stream_video_flutter: ^1.0.0 + stream_video_noise_cancellation: ^1.0.0 + stream_video_push_notification: ^1.0.0 + stream_video_screen_sharing: ^1.0.0 dependency_overrides: stream_video: diff --git a/melos.yaml b/melos.yaml index dbc35b2c8..d6086b239 100644 --- a/melos.yaml +++ b/melos.yaml @@ -23,11 +23,11 @@ command: share_plus: ^11.0.0 stream_chat_flutter: ^9.17.0 stream_webrtc_flutter: ^2.2.0 - stream_video: ^0.11.2 - stream_video_flutter: ^0.11.2 - stream_video_noise_cancellation: ^0.11.2 - stream_video_push_notification: ^0.11.2 - stream_video_screen_sharing: ^0.11.2 + stream_video: ^1.0.0 + stream_video_flutter: ^1.0.0 + stream_video_noise_cancellation: ^1.0.0 + stream_video_push_notification: ^1.0.0 + stream_video_screen_sharing: ^1.0.0 scripts: postclean: diff --git a/packages/stream_video/CHANGELOG.md b/packages/stream_video/CHANGELOG.md index 2110df57c..2d4f44554 100644 --- a/packages/stream_video/CHANGELOG.md +++ b/packages/stream_video/CHANGELOG.md @@ -1,6 +1,20 @@ -## Unreleased +## 1.0.0 + +### 🚧 Breaking changes + +#### CallKit/Ringing +In this release, we removed the dependency on `flutter_callkit_incoming`, which introduces breaking changes in the CallKit and ringing functionality: + +* **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` + +#### Deprecated members -🚧 Breaking changes - Removed deprecated APIs and parameters. Migrate as follows: - `StreamVideo.muteVideoWhenInBackground` β†’ `StreamVideo.options.muteVideoWhenInBackground` - `StreamVideo.muteAudioWhenInBackground` β†’ `StreamVideo.options.muteAudioWhenInBackground` @@ -9,20 +23,16 @@ - Removed deprecated `startRtmpBroadcasts` parameter from `Call.goLive()` - Removed `localParticipant` parameter from `AddReactionOption` constructor - Removed multiple deprecated builder callbacks in favor of [callbacks that don't provide the state object](https://github.com/GetStream/stream-video-flutter/pull/983); corresponding state object parameters in affected widgets have been removed. + - Deprecated `androidAudioAttributesUsageType` and `androidAudioAttributesContentType` parameters in `RtcMediaDeviceNotifier.handleCallInterruptionCallbacks()` +--- -### API renames and type changes +### βœ… Added +- Added `Call.ring()` to ring specific members of an existing call. Example: `call.ring(userIds: [''], video: true)`. Sends a ringing/VoIP push to the users’ devices. Users must already be members - use `call.addMembers()` first if needed. +- Added `RtcMediaDeviceNotifier.pauseAudioPlayout()` / `RtcMediaDeviceNotifier.resumeAudioPlayout()` to mute and restore remote playback with platform-specific handling for iOS/macOS and Android. +- [Android] Enhanced interruption handling via `RtcMediaDeviceNotifier.handleCallInterruptionCallbacks()`. +- [Android] Added `RtcMediaDeviceNotifier.regainAndroidAudioFocus()` to request audio focus when it was lost without automatic regain. -- `onCallKitEvent` β†’ `onRingingEvent` -- `observeCoreCallKitEvents` β†’ `observeCoreRingingEvents` -- `observeCallAcceptCallKitEvent` β†’ `observeCallAcceptRingingEvent` -- `observeCallDeclinedCallKitEvent` β†’ `observeCallDeclinedRingingEvent` -- `observeCallEndedCallKitEvent` β†’ `observeCallEndedRingingEvent` -- `CallKitEvent` (type) β†’ `RingingEvent` - -βœ… Added -- Introduced a new method in the `Call` class that allows ringing individual members of an existing call. Use `call.ring(userId: ['userId'])` to have the backend send a VoIP/ringing push notification to the user's devices. Note: the user must first be a member of the call (use `call.addMembers()` if needed). - -🐞 Fixed +### 🐞 Fixed - Resolved an issue that could cause the StreamVideo instance to be disposed prematurely before ringing events were fully processed when handling ringing notifications in the terminated state. ## 0.11.2 diff --git a/packages/stream_video/lib/globals.dart b/packages/stream_video/lib/globals.dart index 8c21bdd39..3d5041336 100644 --- a/packages/stream_video/lib/globals.dart +++ b/packages/stream_video/lib/globals.dart @@ -2,7 +2,7 @@ import 'package:meta/meta.dart'; import 'package:stream_webrtc_flutter/stream_webrtc_flutter.dart' as webrtc; const String streamSdkName = 'stream-flutter'; -const String streamVideoVersion = '0.11.2'; +const String streamVideoVersion = '1.0.0'; const String openapiModelsVersion = '202.0.0'; const String protocolModelsVersion = '1.40.1'; const String androidWebRTCVersion = webrtc.androidWebRTCVersion; diff --git a/packages/stream_video/pubspec.yaml b/packages/stream_video/pubspec.yaml index 4b3686f05..64fdca709 100644 --- a/packages/stream_video/pubspec.yaml +++ b/packages/stream_video/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_video description: The Official Low-level Client for Stream Video, a service for building video calls, audio rooms, and live-streaming applications. -version: 0.11.2 +version: 1.0.0 homepage: https://getstream.io/video/ repository: https://github.com/GetStream/stream-video-flutter issue_tracker: https://github.com/GetStream/stream-video-flutter/issues diff --git a/packages/stream_video_filters/CHANGELOG.md b/packages/stream_video_filters/CHANGELOG.md index ef0b6abf4..9933407f1 100644 --- a/packages/stream_video_filters/CHANGELOG.md +++ b/packages/stream_video_filters/CHANGELOG.md @@ -1,4 +1,4 @@ -## Unreeleased +## 1.0.0 βœ… Added * Extracted video filters from `stream_video_flutter` package. To apply filters follow the [documentation](https://getstream.io/video/docs/flutter/guides/noise-cancellation/). diff --git a/packages/stream_video_filters/pubspec.yaml b/packages/stream_video_filters/pubspec.yaml index db8fa2ef9..5f0aa7969 100644 --- a/packages/stream_video_filters/pubspec.yaml +++ b/packages/stream_video_filters/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_video_filters description: The Official package for Stream Video, providing video filters feature for video calls. -version: 0.11.2 +version: 1.0.0 homepage: https://getstream.io/video/ repository: https://github.com/GetStream/stream-video-flutter issue_tracker: https://github.com/GetStream/stream-video-flutter/issues @@ -14,7 +14,7 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.0.2 - stream_video: ^0.11.2 + stream_video: ^1.0.0 stream_webrtc_flutter: ^2.2.0 dev_dependencies: diff --git a/packages/stream_video_flutter/CHANGELOG.md b/packages/stream_video_flutter/CHANGELOG.md index 46ffb19f9..2284dbfac 100644 --- a/packages/stream_video_flutter/CHANGELOG.md +++ b/packages/stream_video_flutter/CHANGELOG.md @@ -1,7 +1,8 @@ -# Unreleased +## 1.0.0 -🚧 Breaking changes +### 🚧 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`). @@ -9,26 +10,48 @@ This release removes the dependency on `flutter_callkit_incoming`, resulting in * **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` - -### Video Filter +* **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` + +#### Video Filter - The video filters feature, which enables blur and virtual backgrounds during calls, has been moved to a new package: `stream_video_filters`. To use video filters, add the package to your `pubspec.yaml` and update your relevant imports. -✨ Improvements +#### Deprecated members +- Removed deprecated APIs and parameters. Migrate as follows: + - `StreamVideo.muteVideoWhenInBackground` β†’ `StreamVideo.options.muteVideoWhenInBackground` + - `StreamVideo.muteAudioWhenInBackground` β†’ `StreamVideo.options.muteAudioWhenInBackground` + - Default `StreamCallType()` constructor β†’ `StreamCallType.defaultType()` + - `Call.setParticipantPinned()` β†’ `Call.setParticipantPinnedLocally()` (local-only pin) + - Removed deprecated `startRtmpBroadcasts` parameter from `Call.goLive()` + - Removed `localParticipant` parameter from `AddReactionOption` constructor + - Removed multiple deprecated builder callbacks in favor of [callbacks that don't provide the state object](https://github.com/GetStream/stream-video-flutter/pull/983); corresponding state object parameters in affected widgets have been removed. + - Deprecated `androidAudioAttributesUsageType` and `androidAudioAttributesContentType` parameters in `RtcMediaDeviceNotifier.handleCallInterruptionCallbacks()` +--- + +### 🍏 **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](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers). + +### ✨ Improvements - [Android] Significantly improved video filter performance, resulting in smoother frame rates during calls. -🐞 Fixed +### βœ… Added +- Added `Call.ring()` to ring specific members of an existing call. Example: `call.ring(userIds: [''], video: true)`. Sends a ringing/VoIP push to the users’ devices. Users must already be members - use `call.addMembers()` first if needed. +- Added `RtcMediaDeviceNotifier.pauseAudioPlayout()` / `RtcMediaDeviceNotifier.resumeAudioPlayout()` to mute and restore remote playback with platform-specific handling for iOS/macOS and Android. +- [Android] Enhanced interruption handling via `RtcMediaDeviceNotifier.handleCallInterruptionCallbacks()`. +- [Android] Added `RtcMediaDeviceNotifier.regainAndroidAudioFocus()` to request audio focus when it was lost without automatic regain. + +### 🐞 Fixed * [iOS] Resolved an issue in Picture in Picture where video tracks might remain disabled after returning the app to the foreground. * [iOS] Addressed a problem where Picture in Picture was not exited properly if the call ended during PiP mode. * [iOS] Fixed a bug where quickly backgrounding the app right after ending a call could still activate PiP mode. +* Resolved an issue that could cause the StreamVideo instance to be disposed prematurely before ringing events were fully processed when handling ringing notifications in the terminated state. ## 0.11.2 diff --git a/packages/stream_video_flutter/example/pubspec.yaml b/packages/stream_video_flutter/example/pubspec.yaml index 1c95f00d9..419182098 100644 --- a/packages/stream_video_flutter/example/pubspec.yaml +++ b/packages/stream_video_flutter/example/pubspec.yaml @@ -28,9 +28,9 @@ dependencies: rxdart: ^0.28.0 share_plus: ^11.0.0 shared_preferences: ^2.5.3 - stream_video: ^0.11.2 - stream_video_flutter: ^0.11.2 - stream_video_push_notification: ^0.11.2 + stream_video: ^1.0.0 + stream_video_flutter: ^1.0.0 + stream_video_push_notification: ^1.0.0 stream_webrtc_flutter: ^2.2.0 dependency_overrides: diff --git a/packages/stream_video_flutter/pubspec.yaml b/packages/stream_video_flutter/pubspec.yaml index 5a1f1ddfa..e635486f7 100644 --- a/packages/stream_video_flutter/pubspec.yaml +++ b/packages/stream_video_flutter/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_video_flutter description: The Official UI package for Stream Video, a service for building video calls, audio rooms, and live-streaming applications. -version: 0.11.2 +version: 1.0.0 homepage: https://getstream.io/video/ repository: https://github.com/GetStream/stream-video-flutter issue_tracker: https://github.com/GetStream/stream-video-flutter/issues @@ -24,7 +24,7 @@ dependencies: plugin_platform_interface: ^2.1.8 rate_limiter: ^1.0.0 rxdart: ^0.28.0 - stream_video: ^0.11.2 + stream_video: ^1.0.0 stream_webrtc_flutter: ^2.2.0 visibility_detector: ^0.4.0+2 diff --git a/packages/stream_video_noise_cancellation/CHANGELOG.md b/packages/stream_video_noise_cancellation/CHANGELOG.md index e71c184c9..ad599af61 100644 --- a/packages/stream_video_noise_cancellation/CHANGELOG.md +++ b/packages/stream_video_noise_cancellation/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.0.0 +### 🍏 **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](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers). + ## 0.11.2 * Sync version with `stream_video_flutter` 0.11.2 diff --git a/packages/stream_video_noise_cancellation/pubspec.yaml b/packages/stream_video_noise_cancellation/pubspec.yaml index 1467b80c6..d7034a151 100644 --- a/packages/stream_video_noise_cancellation/pubspec.yaml +++ b/packages/stream_video_noise_cancellation/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_video_noise_cancellation description: The Official package for Stream Video, providing noise cancellation feature for video and audio calls. -version: 0.11.2 +version: 1.0.0 homepage: https://getstream.io/video/ repository: https://github.com/GetStream/stream-video-flutter issue_tracker: https://github.com/GetStream/stream-video-flutter/issues @@ -14,7 +14,7 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.0.2 - stream_video: ^0.11.2 + stream_video: ^1.0.0 stream_webrtc_flutter: ^2.2.0 dev_dependencies: diff --git a/packages/stream_video_push_notification/CHANGELOG.md b/packages/stream_video_push_notification/CHANGELOG.md index 319b6a6ff..b4c2b0dc0 100644 --- a/packages/stream_video_push_notification/CHANGELOG.md +++ b/packages/stream_video_push_notification/CHANGELOG.md @@ -1,23 +1,28 @@ -## Unreleased +## 1.0.0 -🚧 Breaking changes +### 🚧 Breaking changes -In this release, we removed the dependency on `flutter_callkit_incoming`, which introduces breaking changes in the CallKit and ringing functionality: +#### 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 setup flow has changed. Replace the `pushParams` parameter in `StreamVideoPushNotificationManager` with `pushConfiguration` (`StreamVideoPushConfiguration`). Refer to the documentation for detailed parameter mapping. -* **Parameter renaming:** The `nameCaller` parameter has been renamed to `callerName` in various places. +* **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 removed from `StreamVideoPushNotificationManager`. - * The `appName` previously used in `pushParams` configuration is now removed as it’s deprecated. The `ProductName` from build settings will be used instead (iOS only). - -### API renames and type changes - -- `onCallKitEvent` β†’ `onRingingEvent` -- `observeCoreCallKitEvents` β†’ `observeCoreRingingEvents` -- `observeCallAcceptCallKitEvent` β†’ `observeCallAcceptRingingEvent` -- `observeCallDeclinedCallKitEvent` β†’ `observeCallDeclinedRingingEvent` -- `observeCallEndedCallKitEvent` β†’ `observeCallEndedRingingEvent` -- `CallKitEvent` (type) β†’ `RingingEvent` + * 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](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers). ## 0.11.2 * Sync version with `stream_video_flutter` 0.11.2 diff --git a/packages/stream_video_push_notification/pubspec.yaml b/packages/stream_video_push_notification/pubspec.yaml index 8498c71a7..de031b457 100644 --- a/packages/stream_video_push_notification/pubspec.yaml +++ b/packages/stream_video_push_notification/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_video_push_notification description: Adds push notification support for Stream Video, a service for building video calls, audio rooms, and live-streaming applications. -version: 0.11.2 +version: 1.0.0 homepage: https://getstream.io/video/ repository: https://github.com/GetStream/stream-video-flutter issue_tracker: https://github.com/GetStream/stream-video-flutter/issues @@ -21,8 +21,8 @@ dependencies: plugin_platform_interface: ^2.1.8 rxdart: ^0.28.0 shared_preferences: ^2.5.3 - stream_video: ^0.11.2 - stream_video_flutter: ^0.11.2 + stream_video: ^1.0.0 + stream_video_flutter: ^1.0.0 stream_webrtc_flutter: ^2.2.0 uuid: ^4.5.1 diff --git a/packages/stream_video_screen_sharing/CHANGELOG.md b/packages/stream_video_screen_sharing/CHANGELOG.md index 75dda364f..4a2fdcbf1 100644 --- a/packages/stream_video_screen_sharing/CHANGELOG.md +++ b/packages/stream_video_screen_sharing/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.0.0 +### 🍏 **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](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers). + ## 0.11.2 * Sync version with `stream_video_flutter` 0.11.2 diff --git a/packages/stream_video_screen_sharing/pubspec.yaml b/packages/stream_video_screen_sharing/pubspec.yaml index 61c10e364..07ba98e46 100644 --- a/packages/stream_video_screen_sharing/pubspec.yaml +++ b/packages/stream_video_screen_sharing/pubspec.yaml @@ -2,7 +2,7 @@ name: stream_video_screen_sharing description: > Official Screen Sharing Plugin for Stream Video Flutter that enables sharing device screens during video calls. -version: 0.11.2 +version: 1.0.0 homepage: https://getstream.io/video/ repository: https://github.com/GetStream/stream-video-flutter issue_tracker: https://github.com/GetStream/stream-video-flutter/issues