|
1 | | -# Unreleased |
| 1 | +## 1.0.0 |
2 | 2 |
|
3 | | -🚧 Breaking changes |
| 3 | +### 🚧 Breaking changes |
4 | 4 |
|
| 5 | +#### CallKit/Ringing |
5 | 6 | This release removes the dependency on `flutter_callkit_incoming`, resulting in several breaking changes to CallKit and ringing functionality: |
6 | 7 |
|
7 | 8 | * **CallKit/ringing configuration:** The initialization process is updated. Replace the `pushParams` parameter in `StreamVideoPushNotificationManager` with the new `pushConfiguration` field (`StreamVideoPushConfiguration`). |
8 | 9 | * **Parameter renaming:** The `nameCaller` parameter has been standardized and renamed to `callerName` across all relevant locations. |
9 | 10 | * **Removed properties:** |
10 | 11 | * The deprecated `callerCustomizationCallback` and `backgroundVoipCallHandler` have been fully removed from `StreamVideoPushNotificationManager`. |
11 | 12 | * 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. |
12 | | - |
13 | | -### API renames and type changes |
14 | | - |
15 | | -- `onCallKitEvent` is now `onRingingEvent` |
16 | | -- `observeCoreCallKitEvents` is now `observeCoreRingingEvents` |
17 | | -- `observeCallAcceptCallKitEvent` is now `observeCallAcceptRingingEvent` |
18 | | -- `observeCallDeclinedCallKitEvent` is now `observeCallDeclinedRingingEvent` |
19 | | -- `observeCallEndedCallKitEvent` is now `observeCallEndedRingingEvent` |
20 | | -- The `CallKitEvent` type is now `RingingEvent` |
21 | | - |
22 | | -### Video Filter |
| 13 | +* **API renames and type changes** |
| 14 | + - `onCallKitEvent` is now `onRingingEvent` |
| 15 | + - `observeCoreCallKitEvents` is now `observeCoreRingingEvents` |
| 16 | + - `observeCallAcceptCallKitEvent` is now `observeCallAcceptRingingEvent` |
| 17 | + - `observeCallDeclinedCallKitEvent` is now `observeCallDeclinedRingingEvent` |
| 18 | + - `observeCallEndedCallKitEvent` is now `observeCallEndedRingingEvent` |
| 19 | + - The `CallKitEvent` type is now `RingingEvent` |
| 20 | + |
| 21 | +#### Video Filter |
23 | 22 | - 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. |
24 | 23 |
|
25 | | -✨ Improvements |
| 24 | +#### Deprecated members |
| 25 | +- Removed deprecated APIs and parameters. Migrate as follows: |
| 26 | + - `StreamVideo.muteVideoWhenInBackground` → `StreamVideo.options.muteVideoWhenInBackground` |
| 27 | + - `StreamVideo.muteAudioWhenInBackground` → `StreamVideo.options.muteAudioWhenInBackground` |
| 28 | + - Default `StreamCallType()` constructor → `StreamCallType.defaultType()` |
| 29 | + - `Call.setParticipantPinned()` → `Call.setParticipantPinnedLocally()` (local-only pin) |
| 30 | + - Removed deprecated `startRtmpBroadcasts` parameter from `Call.goLive()` |
| 31 | + - Removed `localParticipant` parameter from `AddReactionOption` constructor |
| 32 | + - 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. |
| 33 | + - Deprecated `androidAudioAttributesUsageType` and `androidAudioAttributesContentType` parameters in `RtcMediaDeviceNotifier.handleCallInterruptionCallbacks()` |
| 34 | +--- |
| 35 | + |
| 36 | +### 🍏 **Swift Package Manager (SPM)** |
| 37 | +- Added Swift Package Manager (SPM) support for iOS. |
| 38 | +> [!IMPORTANT] |
| 39 | +> 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). |
| 40 | +
|
| 41 | +### ✨ Improvements |
26 | 42 | - [Android] Significantly improved video filter performance, resulting in smoother frame rates during calls. |
27 | 43 |
|
28 | | -🐞 Fixed |
| 44 | +### ✅ Added |
| 45 | +- Added `Call.ring()` to ring specific members of an existing call. Example: `call.ring(userIds: ['<userId>'], video: true)`. Sends a ringing/VoIP push to the users’ devices. Users must already be members - use `call.addMembers()` first if needed. |
| 46 | +- Added `RtcMediaDeviceNotifier.pauseAudioPlayout()` / `RtcMediaDeviceNotifier.resumeAudioPlayout()` to mute and restore remote playback with platform-specific handling for iOS/macOS and Android. |
| 47 | +- [Android] Enhanced interruption handling via `RtcMediaDeviceNotifier.handleCallInterruptionCallbacks()`. |
| 48 | +- [Android] Added `RtcMediaDeviceNotifier.regainAndroidAudioFocus()` to request audio focus when it was lost without automatic regain. |
| 49 | + |
| 50 | +### 🐞 Fixed |
29 | 51 | * [iOS] Resolved an issue in Picture in Picture where video tracks might remain disabled after returning the app to the foreground. |
30 | 52 | * [iOS] Addressed a problem where Picture in Picture was not exited properly if the call ended during PiP mode. |
31 | 53 | * [iOS] Fixed a bug where quickly backgrounding the app right after ending a call could still activate PiP mode. |
| 54 | +* 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. |
32 | 55 |
|
33 | 56 | ## 0.11.2 |
34 | 57 |
|
|
0 commit comments