@stream-io/video-react-native-sdk 1.14.2 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/android/src/main/java/com/streamvideo/reactnative/StreamVideoReactNative.kt +27 -0
- package/dist/commonjs/version.js +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/expo-config-plugin/dist/withAndroidManifest.js +0 -5
- package/expo-config-plugin/dist/withAndroidPermissions.js +4 -2
- package/expo-config-plugin/dist/withAppDelegate.js +8 -8
- package/expo-config-plugin/dist/withMainActivity.js +14 -2
- package/package.json +4 -4
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.15.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.15.0...@stream-io/video-react-native-sdk-1.15.1) (2025-06-02)
|
|
6
|
+
|
|
7
|
+
### Dependency Updates
|
|
8
|
+
|
|
9
|
+
- `@stream-io/noise-cancellation-react-native` updated to version `0.1.1`
|
|
10
|
+
- `@stream-io/video-client` updated to version `1.23.3`
|
|
11
|
+
- `@stream-io/video-react-bindings` updated to version `1.6.6`
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
- expo plugin should add foreground permissions on ringing config ([cba9746](https://github.com/GetStream/stream-video-js/commit/cba97469966aa35b67f380d82272a9bf3a8e2ef2))
|
|
16
|
+
- report to callkit that we do not support holding ([#1809](https://github.com/GetStream/stream-video-js/issues/1809)) ([e779d3f](https://github.com/GetStream/stream-video-js/commit/e779d3fbdda30be5db5c42ee4655d8311dd53d60))
|
|
17
|
+
|
|
18
|
+
## [1.15.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.14.2...@stream-io/video-react-native-sdk-1.15.0) (2025-05-27)
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- **android:** Accept incoming call without device unlock ([#1806](https://github.com/GetStream/stream-video-js/issues/1806)) ([6b8ee36](https://github.com/GetStream/stream-video-js/commit/6b8ee36323c0c352742e23bf845eed47c581e6ab))
|
|
23
|
+
|
|
5
24
|
## [1.14.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.14.1...@stream-io/video-react-native-sdk-1.14.2) (2025-05-22)
|
|
6
25
|
|
|
7
26
|
### Dependency Updates
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
package com.streamvideo.reactnative
|
|
2
2
|
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.app.KeyguardManager
|
|
3
5
|
import android.content.res.Configuration
|
|
6
|
+
import android.os.Build
|
|
7
|
+
import android.view.WindowManager
|
|
8
|
+
import androidx.core.content.getSystemService
|
|
4
9
|
import java.util.concurrent.CopyOnWriteArrayList // For thread safety
|
|
5
10
|
|
|
6
11
|
object StreamVideoReactNative {
|
|
@@ -37,4 +42,26 @@ object StreamVideoReactNative {
|
|
|
37
42
|
listener(isInPictureInPictureMode, newConfig)
|
|
38
43
|
}
|
|
39
44
|
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Enable the calling activity to be shown in the lockscreen and dismiss the keyguard to enable
|
|
48
|
+
* users to answer without unblocking.
|
|
49
|
+
*/
|
|
50
|
+
@JvmStatic
|
|
51
|
+
fun setupCallActivity(activity: Activity) {
|
|
52
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
|
53
|
+
activity.setShowWhenLocked(true)
|
|
54
|
+
activity.setTurnScreenOn(true)
|
|
55
|
+
} else {
|
|
56
|
+
activity.window.addFlags(
|
|
57
|
+
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
|
|
58
|
+
or WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON,
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
val keyguardManager = activity.getSystemService<KeyguardManager>()
|
|
63
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && keyguardManager != null) {
|
|
64
|
+
keyguardManager.requestDismissKeyguard(activity, null)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
40
67
|
}
|
package/dist/commonjs/version.js
CHANGED
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '1.
|
|
1
|
+
export const version = '1.15.1';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.
|
|
1
|
+
export declare const version = "1.15.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -52,11 +52,6 @@ const withStreamVideoReactNativeSDKManifest = (configuration, props) => {
|
|
|
52
52
|
mainActivity.$['android:configChanges'] = mergedConfigChanges.join('|');
|
|
53
53
|
mainActivity.$['android:supportsPictureInPicture'] = 'true';
|
|
54
54
|
}
|
|
55
|
-
if (props?.ringingPushNotifications?.showWhenLockedAndroid) {
|
|
56
|
-
const mainActivity = getMainActivityOrThrow(androidManifest);
|
|
57
|
-
mainActivity.$['android:showWhenLocked'] = 'true';
|
|
58
|
-
mainActivity.$['android:turnScreenOn'] = 'true';
|
|
59
|
-
}
|
|
60
55
|
config.modResults = androidManifest;
|
|
61
56
|
return config;
|
|
62
57
|
});
|
|
@@ -8,13 +8,15 @@ const withStreamVideoReactNativeSDKAndroidPermissions = (configuration, props) =
|
|
|
8
8
|
'android.permission.BLUETOOTH_ADMIN',
|
|
9
9
|
'android.permission.WAKE_LOCK',
|
|
10
10
|
];
|
|
11
|
-
if (props?.
|
|
11
|
+
if (props?.androidKeepCallAlive ||
|
|
12
|
+
props?.ringingPushNotifications ||
|
|
13
|
+
props?.enableScreenshare) {
|
|
12
14
|
permissions.push('android.permission.POST_NOTIFICATIONS', 'android.permission.FOREGROUND_SERVICE');
|
|
13
15
|
if (props?.enableScreenshare) {
|
|
14
16
|
permissions.push('android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION');
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
|
-
if (props?.androidKeepCallAlive) {
|
|
19
|
+
if (props?.androidKeepCallAlive || props?.ringingPushNotifications) {
|
|
18
20
|
permissions.push('android.permission.FOREGROUND_SERVICE_CAMERA', 'android.permission.FOREGROUND_SERVICE_MICROPHONE', 'android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE', 'android.permission.FOREGROUND_SERVICE_DATA_SYNC');
|
|
19
21
|
}
|
|
20
22
|
if (props?.ringingPushNotifications?.showWhenLockedAndroid) {
|
|
@@ -300,10 +300,10 @@ function addDidReceiveIncomingPushCallbackSwift(contents) {
|
|
|
300
300
|
handleType: "generic",
|
|
301
301
|
hasVideo: true,
|
|
302
302
|
localizedCallerName: createdCallerName,
|
|
303
|
-
supportsHolding:
|
|
304
|
-
supportsDTMF:
|
|
305
|
-
supportsGrouping:
|
|
306
|
-
supportsUngrouping:
|
|
303
|
+
supportsHolding: false,
|
|
304
|
+
supportsDTMF: false,
|
|
305
|
+
supportsGrouping: false,
|
|
306
|
+
supportsUngrouping: false,
|
|
307
307
|
fromPushKit: true,
|
|
308
308
|
payload: stream,
|
|
309
309
|
withCompletionHandler: nil)`;
|
|
@@ -351,10 +351,10 @@ function addDidReceiveIncomingPushCallbackObjc(contents) {
|
|
|
351
351
|
handleType: @"generic"
|
|
352
352
|
hasVideo: YES
|
|
353
353
|
localizedCallerName: createdCallerName
|
|
354
|
-
supportsHolding:
|
|
355
|
-
supportsDTMF:
|
|
356
|
-
supportsGrouping:
|
|
357
|
-
supportsUngrouping:
|
|
354
|
+
supportsHolding: NO
|
|
355
|
+
supportsDTMF: NO
|
|
356
|
+
supportsGrouping: NO
|
|
357
|
+
supportsUngrouping: NO
|
|
358
358
|
fromPushKit: YES
|
|
359
359
|
payload: stream
|
|
360
360
|
withCompletionHandler: nil];
|
|
@@ -21,7 +21,10 @@ const withStreamVideoReactNativeSDKMainActivity = (configuration, props) => {
|
|
|
21
21
|
config.modResults.contents = addOnUserLeaveHint(config.modResults.contents, isMainActivityJava);
|
|
22
22
|
}
|
|
23
23
|
if (props?.enableScreenshare) {
|
|
24
|
-
config.modResults.contents =
|
|
24
|
+
config.modResults.contents = addInsideOnCreateScreenshare(config.modResults.contents, isMainActivityJava);
|
|
25
|
+
}
|
|
26
|
+
if (props?.ringingPushNotifications?.showWhenLockedAndroid) {
|
|
27
|
+
config.modResults.contents = addInsideOnCreateLockscreen(config.modResults.contents, isMainActivityJava);
|
|
25
28
|
}
|
|
26
29
|
return config;
|
|
27
30
|
});
|
|
@@ -94,7 +97,7 @@ function addOnUserLeaveHint(contents, isJava) {
|
|
|
94
97
|
}
|
|
95
98
|
return contents;
|
|
96
99
|
}
|
|
97
|
-
function
|
|
100
|
+
function addInsideOnCreateScreenshare(contents, isJava) {
|
|
98
101
|
const addScreenShareServiceEnablerBlock = isJava
|
|
99
102
|
? `WebRTCModuleOptions options = WebRTCModuleOptions.getInstance();
|
|
100
103
|
options.enableMediaProjectionService = true;
|
|
@@ -107,4 +110,13 @@ function addInsideOnCreate(contents, isJava) {
|
|
|
107
110
|
}
|
|
108
111
|
return contents;
|
|
109
112
|
}
|
|
113
|
+
function addInsideOnCreateLockscreen(contents, isJava) {
|
|
114
|
+
const addLockscreenServiceEnablerBlock = isJava
|
|
115
|
+
? `StreamVideoReactNative.setupCallActivity(this);`
|
|
116
|
+
: `StreamVideoReactNative.setupCallActivity(this)`;
|
|
117
|
+
if (!contents.includes('StreamVideoReactNative.setupCallActivity')) {
|
|
118
|
+
contents = (0, codeMod_1.appendContentsInsideDeclarationBlock)(contents, 'onCreate', addLockscreenServiceEnablerBlock);
|
|
119
|
+
}
|
|
120
|
+
return contents;
|
|
121
|
+
}
|
|
110
122
|
exports.default = withStreamVideoReactNativeSDKMainActivity;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/video-react-native-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.1",
|
|
4
4
|
"description": "Stream Video SDK for React Native",
|
|
5
5
|
"author": "https://getstream.io",
|
|
6
6
|
"homepage": "https://getstream.io/video/docs/react-native/",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"!**/.*"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@stream-io/video-client": "1.23.
|
|
49
|
-
"@stream-io/video-react-bindings": "1.6.
|
|
48
|
+
"@stream-io/video-client": "1.23.3",
|
|
49
|
+
"@stream-io/video-react-bindings": "1.6.6",
|
|
50
50
|
"intl-pluralrules": "2.0.1",
|
|
51
51
|
"lodash.merge": "^4.6.2",
|
|
52
52
|
"react-native-url-polyfill": "1.3.0",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"@react-native-firebase/app": "^22.1.0",
|
|
126
126
|
"@react-native-firebase/messaging": "^22.1.0",
|
|
127
127
|
"@react-native/babel-preset": "^0.79.2",
|
|
128
|
-
"@stream-io/noise-cancellation-react-native": "^0.1.
|
|
128
|
+
"@stream-io/noise-cancellation-react-native": "^0.1.1",
|
|
129
129
|
"@stream-io/react-native-webrtc": "^125.3.0",
|
|
130
130
|
"@stream-io/video-filters-react-native": "^0.4.0",
|
|
131
131
|
"@testing-library/jest-native": "^5.4.3",
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.
|
|
1
|
+
export const version = '1.15.1';
|