@stream-io/video-react-native-sdk 0.7.16 → 0.7.18
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 +13 -0
- package/android/src/main/java/com/streamvideo/reactnative/StreamVideoReactNativeModule.kt +3 -4
- package/dist/commonjs/hooks/useIsInPiPMode.js +16 -3
- package/dist/commonjs/hooks/useIsInPiPMode.js.map +1 -1
- package/dist/commonjs/providers/StreamCall.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/hooks/useIsInPiPMode.js +17 -4
- package/dist/module/hooks/useIsInPiPMode.js.map +1 -1
- package/dist/module/providers/StreamCall.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/hooks/useIsInPiPMode.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/package.json +3 -3
- package/src/hooks/useIsInPiPMode.tsx +30 -6
- package/src/providers/StreamCall.tsx +1 -1
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
### [0.7.18](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.7.17...@stream-io/video-react-native-sdk-0.7.18) (2024-06-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **react-native:** getting if pip was enabled from native was randomly broken ([#1385](https://github.com/GetStream/stream-video-js/issues/1385)) ([a055011](https://github.com/GetStream/stream-video-js/commit/a055011117fc4cee4ff00c855315aa72ffd7d881))
|
|
11
|
+
|
|
12
|
+
### [0.7.17](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.7.16...@stream-io/video-react-native-sdk-0.7.17) (2024-06-03)
|
|
13
|
+
|
|
14
|
+
### Dependency Updates
|
|
15
|
+
|
|
16
|
+
* `@stream-io/video-client` updated to version `1.2.0`
|
|
17
|
+
* `@stream-io/video-react-bindings` updated to version `0.4.38`
|
|
5
18
|
### [0.7.16](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.7.15...@stream-io/video-react-native-sdk-0.7.16) (2024-06-03)
|
|
6
19
|
|
|
7
20
|
### Dependency Updates
|
|
@@ -23,15 +23,12 @@ class StreamVideoReactNativeModule(reactContext: ReactApplicationContext) : Reac
|
|
|
23
23
|
return NAME;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
private var isInPictureInPictureMode = false
|
|
27
|
-
|
|
28
26
|
override fun initialize() {
|
|
29
27
|
super.initialize()
|
|
30
28
|
StreamVideoReactNative.pipListeners.add { isInPictureInPictureMode ->
|
|
31
29
|
reactApplicationContext.getJSModule(
|
|
32
30
|
RCTDeviceEventEmitter::class.java
|
|
33
31
|
).emit(PIP_CHANGE_EVENT, isInPictureInPictureMode)
|
|
34
|
-
this.isInPictureInPictureMode = isInPictureInPictureMode
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
|
|
@@ -48,7 +45,9 @@ class StreamVideoReactNativeModule(reactContext: ReactApplicationContext) : Reac
|
|
|
48
45
|
|
|
49
46
|
@ReactMethod
|
|
50
47
|
fun isInPiPMode(promise: Promise) {
|
|
51
|
-
|
|
48
|
+
val inPictureInPictureMode: Boolean? =
|
|
49
|
+
reactApplicationContext.currentActivity?.isInPictureInPictureMode
|
|
50
|
+
promise.resolve(inPictureInPictureMode)
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
@ReactMethod
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useIsInPiPMode = useIsInPiPMode;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
|
|
9
10
|
function useIsInPiPMode() {
|
|
10
11
|
const [isInPiPMode, setIsInPiPMode] = (0, _react.useState)(false);
|
|
11
12
|
(0, _react.useEffect)(() => {
|
|
@@ -13,11 +14,23 @@ function useIsInPiPMode() {
|
|
|
13
14
|
return;
|
|
14
15
|
}
|
|
15
16
|
const eventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.StreamVideoReactNative);
|
|
16
|
-
const
|
|
17
|
-
|
|
17
|
+
const subscriptionPiPChange = eventEmitter.addListener(PIP_CHANGE_EVENT, setIsInPiPMode);
|
|
18
|
+
const subscriptionAppState = _reactNative.AppState.addEventListener('change', nextAppState => {
|
|
19
|
+
var _NativeModules$Stream;
|
|
20
|
+
if (nextAppState === 'background') {
|
|
21
|
+
setIsInPiPMode(true); // set with an assumption that its enabled so that UI disabling happens faster
|
|
22
|
+
// if PiP was not enabled anyway, then in the next code we ll set it to false and UI wont be shown anyway
|
|
23
|
+
}
|
|
24
|
+
// attempt to take the value as soon as app state is changed
|
|
25
|
+
// this can be faster than event emitter at times
|
|
26
|
+
// also in new arch this can be made a synchronous method
|
|
27
|
+
_reactNative.NativeModules === null || _reactNative.NativeModules === void 0 || (_NativeModules$Stream = _reactNative.NativeModules.StreamVideoReactNative) === null || _NativeModules$Stream === void 0 || _NativeModules$Stream.isInPiPMode().then(isInPiPNativeMethod => {
|
|
28
|
+
setIsInPiPMode(!!isInPiPNativeMethod);
|
|
29
|
+
});
|
|
18
30
|
});
|
|
19
31
|
return () => {
|
|
20
|
-
|
|
32
|
+
subscriptionPiPChange.remove();
|
|
33
|
+
subscriptionAppState.remove();
|
|
21
34
|
};
|
|
22
35
|
}, []);
|
|
23
36
|
return isInPiPMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","useIsInPiPMode","isInPiPMode","setIsInPiPMode","useState","useEffect","Platform","OS","eventEmitter","NativeEventEmitter","NativeModules","StreamVideoReactNative","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","PIP_CHANGE_EVENT","useIsInPiPMode","isInPiPMode","setIsInPiPMode","useState","useEffect","Platform","OS","eventEmitter","NativeEventEmitter","NativeModules","StreamVideoReactNative","subscriptionPiPChange","addListener","subscriptionAppState","AppState","addEventListener","nextAppState","_NativeModules$Stream","then","isInPiPNativeMethod","remove"],"sourceRoot":"../../../src","sources":["hooks/useIsInPiPMode.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,MAAME,gBAAgB,GAAG,yCAAyC;AAE3D,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAErD,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7B;IACF;IAEA,MAAMC,YAAY,GAAG,IAAIC,+BAAkB,CACzCC,0BAAa,CAACC,sBAChB,CAAC;IAED,MAAMC,qBAAqB,GAAGJ,YAAY,CAACK,WAAW,CACpDb,gBAAgB,EAChBG,cACF,CAAC;IAED,MAAMW,oBAAoB,GAAGC,qBAAQ,CAACC,gBAAgB,CACpD,QAAQ,EACPC,YAAY,IAAK;MAAA,IAAAC,qBAAA;MAChB,IAAID,YAAY,KAAK,YAAY,EAAE;QACjCd,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB;MACF;MACA;MACA;MACA;MACAO,0BAAa,aAAbA,0BAAa,gBAAAQ,qBAAA,GAAbR,0BAAa,CAAEC,sBAAsB,cAAAO,qBAAA,eAArCA,qBAAA,CAAuChB,WAAW,CAAC,CAAC,CAACiB,IAAI,CACtDC,mBAA+C,IAAK;QACnDjB,cAAc,CAAC,CAAC,CAACiB,mBAAmB,CAAC;MACvC,CACF,CAAC;IACH,CACF,CAAC;IAED,OAAO,MAAM;MACXR,qBAAqB,CAACS,MAAM,CAAC,CAAC;MAC9BP,oBAAoB,CAACO,MAAM,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOnB,WAAW;AACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoReactBindings","require","_react","_interopRequireWildcard","_useIosCallkeepWithCallingStateEffect","_utils","_useAndroidKeepCallAliveEffect","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","StreamCall","children","createElement","StreamCallProvider","AppStateListener","AndroidKeepCallAlive","IosInformCallkeepCallEnd","ClearPushWSSubscriptions","exports","useCall","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","useAndroidKeepCallAliveEffect","useIosCallkeepWithCallingStateEffect","useEffect","clearPushWSEventSubscriptions","canAddPushWSSubscriptionsRef","current"],"sourceRoot":"../../../src","sources":["providers/StreamCall.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_videoReactBindings","require","_react","_interopRequireWildcard","_useIosCallkeepWithCallingStateEffect","_utils","_useAndroidKeepCallAliveEffect","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","StreamCall","children","createElement","StreamCallProvider","AppStateListener","AndroidKeepCallAlive","IosInformCallkeepCallEnd","ClearPushWSSubscriptions","exports","useCall","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","useAndroidKeepCallAliveEffect","useIosCallkeepWithCallingStateEffect","useEffect","clearPushWSEventSubscriptions","canAddPushWSSubscriptionsRef","current"],"sourceRoot":"../../../src","sources":["providers/StreamCall.tsx"],"mappings":"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"}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
|
-
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
2
|
+
import { AppState, NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
3
|
+
const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
|
|
3
4
|
export function useIsInPiPMode() {
|
|
4
5
|
const [isInPiPMode, setIsInPiPMode] = useState(false);
|
|
5
6
|
useEffect(() => {
|
|
@@ -7,11 +8,23 @@ export function useIsInPiPMode() {
|
|
|
7
8
|
return;
|
|
8
9
|
}
|
|
9
10
|
const eventEmitter = new NativeEventEmitter(NativeModules.StreamVideoReactNative);
|
|
10
|
-
const
|
|
11
|
-
|
|
11
|
+
const subscriptionPiPChange = eventEmitter.addListener(PIP_CHANGE_EVENT, setIsInPiPMode);
|
|
12
|
+
const subscriptionAppState = AppState.addEventListener('change', nextAppState => {
|
|
13
|
+
var _NativeModules$Stream;
|
|
14
|
+
if (nextAppState === 'background') {
|
|
15
|
+
setIsInPiPMode(true); // set with an assumption that its enabled so that UI disabling happens faster
|
|
16
|
+
// if PiP was not enabled anyway, then in the next code we ll set it to false and UI wont be shown anyway
|
|
17
|
+
}
|
|
18
|
+
// attempt to take the value as soon as app state is changed
|
|
19
|
+
// this can be faster than event emitter at times
|
|
20
|
+
// also in new arch this can be made a synchronous method
|
|
21
|
+
NativeModules === null || NativeModules === void 0 || (_NativeModules$Stream = NativeModules.StreamVideoReactNative) === null || _NativeModules$Stream === void 0 || _NativeModules$Stream.isInPiPMode().then(isInPiPNativeMethod => {
|
|
22
|
+
setIsInPiPMode(!!isInPiPNativeMethod);
|
|
23
|
+
});
|
|
12
24
|
});
|
|
13
25
|
return () => {
|
|
14
|
-
|
|
26
|
+
subscriptionPiPChange.remove();
|
|
27
|
+
subscriptionAppState.remove();
|
|
15
28
|
};
|
|
16
29
|
}, []);
|
|
17
30
|
return isInPiPMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","NativeEventEmitter","NativeModules","Platform","useIsInPiPMode","isInPiPMode","setIsInPiPMode","OS","eventEmitter","StreamVideoReactNative","
|
|
1
|
+
{"version":3,"names":["useEffect","useState","AppState","NativeEventEmitter","NativeModules","Platform","PIP_CHANGE_EVENT","useIsInPiPMode","isInPiPMode","setIsInPiPMode","OS","eventEmitter","StreamVideoReactNative","subscriptionPiPChange","addListener","subscriptionAppState","addEventListener","nextAppState","_NativeModules$Stream","then","isInPiPNativeMethod","remove"],"sourceRoot":"../../../src","sources":["hooks/useIsInPiPMode.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,QACH,cAAc;AAErB,MAAMC,gBAAgB,GAAG,yCAAyC;AAElE,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGR,QAAQ,CAAC,KAAK,CAAC;EAErDD,SAAS,CAAC,MAAM;IACd,IAAIK,QAAQ,CAACK,EAAE,KAAK,SAAS,EAAE;MAC7B;IACF;IAEA,MAAMC,YAAY,GAAG,IAAIR,kBAAkB,CACzCC,aAAa,CAACQ,sBAChB,CAAC;IAED,MAAMC,qBAAqB,GAAGF,YAAY,CAACG,WAAW,CACpDR,gBAAgB,EAChBG,cACF,CAAC;IAED,MAAMM,oBAAoB,GAAGb,QAAQ,CAACc,gBAAgB,CACpD,QAAQ,EACPC,YAAY,IAAK;MAAA,IAAAC,qBAAA;MAChB,IAAID,YAAY,KAAK,YAAY,EAAE;QACjCR,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB;MACF;MACA;MACA;MACA;MACAL,aAAa,aAAbA,aAAa,gBAAAc,qBAAA,GAAbd,aAAa,CAAEQ,sBAAsB,cAAAM,qBAAA,eAArCA,qBAAA,CAAuCV,WAAW,CAAC,CAAC,CAACW,IAAI,CACtDC,mBAA+C,IAAK;QACnDX,cAAc,CAAC,CAAC,CAACW,mBAAmB,CAAC;MACvC,CACF,CAAC;IACH,CACF,CAAC;IAED,OAAO,MAAM;MACXP,qBAAqB,CAACQ,MAAM,CAAC,CAAC;MAC9BN,oBAAoB,CAACM,MAAM,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOb,WAAW;AACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StreamCallProvider","useCall","React","useEffect","useIosCallkeepWithCallingStateEffect","canAddPushWSSubscriptionsRef","clearPushWSEventSubscriptions","useAndroidKeepCallAliveEffect","useAppStateListener","NativeModules","Platform","StreamCall","call","children","createElement","AppStateListener","AndroidKeepCallAlive","IosInformCallkeepCallEnd","ClearPushWSSubscriptions","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","current"],"sourceRoot":"../../../src","sources":["providers/StreamCall.tsx"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,OAAO,QAAQ,iCAAiC;AAC7E,OAAOC,KAAK,IAAuBC,SAAS,QAAQ,OAAO;AAE3D,SAASC,oCAAoC,QAAQ,oDAAoD;AACzG,SACEC,4BAA4B,EAC5BC,6BAA6B,QACxB,qBAAqB;AAC5B,SAASC,6BAA6B,QAAQ,wCAAwC;AACtF,SAASC,mBAAmB,QAAQ,gBAAgB;AACpD,SAASC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAStD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,IAAI;EACJC;AACkC,CAAC,KAAK;EACxC,oBACEX,KAAA,CAAAY,aAAA,CAACd,kBAAkB;IAACY,IAAI,EAAEA;EAAK,gBAC7BV,KAAA,CAAAY,aAAA,CAACC,gBAAgB,MAAE,CAAC,eACpBb,KAAA,CAAAY,aAAA,CAACE,oBAAoB,MAAE,CAAC,eACxBd,KAAA,CAAAY,aAAA,CAACG,wBAAwB,MAAE,CAAC,eAC5Bf,KAAA,CAAAY,aAAA,CAACI,wBAAwB,MAAE,CAAC,EAC3BL,QACiB,CAAC;AAEzB,CAAC;AAED,MAAME,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,MAAMH,IAAI,GAAGX,OAAO,CAAC,CAAC;;EAEtB;EACA;EACAO,mBAAmB,CACjB,YAAY;IAAA,IAAAW,YAAA;IACV,OAAMP,IAAI,aAAJA,IAAI,gBAAAO,YAAA,GAAJP,IAAI,CAAEQ,MAAM,cAAAD,YAAA,uBAAZA,YAAA,CAAcE,MAAM,CAAC,CAAC;EAC9B,CAAC,EACD,YAAY;IACV,IAAIX,QAAQ,CAACY,EAAE,KAAK,SAAS,EAAE;MAAA,IAAAC,qBAAA;MAC7B;MACA;MACAd,aAAa,aAAbA,aAAa,gBAAAc,qBAAA,GAAbd,aAAa,CAAEe,sBAAsB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,WAAW,CAAC,CAAC,CAACC,IAAI,CACvD,MAAOC,
|
|
1
|
+
{"version":3,"names":["StreamCallProvider","useCall","React","useEffect","useIosCallkeepWithCallingStateEffect","canAddPushWSSubscriptionsRef","clearPushWSEventSubscriptions","useAndroidKeepCallAliveEffect","useAppStateListener","NativeModules","Platform","StreamCall","call","children","createElement","AppStateListener","AndroidKeepCallAlive","IosInformCallkeepCallEnd","ClearPushWSSubscriptions","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","current"],"sourceRoot":"../../../src","sources":["providers/StreamCall.tsx"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,OAAO,QAAQ,iCAAiC;AAC7E,OAAOC,KAAK,IAAuBC,SAAS,QAAQ,OAAO;AAE3D,SAASC,oCAAoC,QAAQ,oDAAoD;AACzG,SACEC,4BAA4B,EAC5BC,6BAA6B,QACxB,qBAAqB;AAC5B,SAASC,6BAA6B,QAAQ,wCAAwC;AACtF,SAASC,mBAAmB,QAAQ,gBAAgB;AACpD,SAASC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAStD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,IAAI;EACJC;AACkC,CAAC,KAAK;EACxC,oBACEX,KAAA,CAAAY,aAAA,CAACd,kBAAkB;IAACY,IAAI,EAAEA;EAAK,gBAC7BV,KAAA,CAAAY,aAAA,CAACC,gBAAgB,MAAE,CAAC,eACpBb,KAAA,CAAAY,aAAA,CAACE,oBAAoB,MAAE,CAAC,eACxBd,KAAA,CAAAY,aAAA,CAACG,wBAAwB,MAAE,CAAC,eAC5Bf,KAAA,CAAAY,aAAA,CAACI,wBAAwB,MAAE,CAAC,EAC3BL,QACiB,CAAC;AAEzB,CAAC;AAED,MAAME,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,MAAMH,IAAI,GAAGX,OAAO,CAAC,CAAC;;EAEtB;EACA;EACAO,mBAAmB,CACjB,YAAY;IAAA,IAAAW,YAAA;IACV,OAAMP,IAAI,aAAJA,IAAI,gBAAAO,YAAA,GAAJP,IAAI,CAAEQ,MAAM,cAAAD,YAAA,uBAAZA,YAAA,CAAcE,MAAM,CAAC,CAAC;EAC9B,CAAC,EACD,YAAY;IACV,IAAIX,QAAQ,CAACY,EAAE,KAAK,SAAS,EAAE;MAAA,IAAAC,qBAAA;MAC7B;MACA;MACAd,aAAa,aAAbA,aAAa,gBAAAc,qBAAA,GAAbd,aAAa,CAAEe,sBAAsB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,WAAW,CAAC,CAAC,CAACC,IAAI,CACvD,MAAOC,OAAmC,IAAK;QAC7C,IAAI,CAACA,OAAO,EAAE;UAAA,IAAAC,aAAA;UACZ,OAAMhB,IAAI,aAAJA,IAAI,gBAAAgB,aAAA,GAAJhB,IAAI,CAAEQ,MAAM,cAAAQ,aAAA,uBAAZA,aAAA,CAAcC,OAAO,CAAC,CAAC;QAC/B;MACF,CACF,CAAC;IACH,CAAC,MAAM;MAAA,IAAAC,aAAA;MACL,OAAMlB,IAAI,aAAJA,IAAI,gBAAAkB,aAAA,GAAJlB,IAAI,CAAEQ,MAAM,cAAAU,aAAA,uBAAZA,aAAA,CAAcD,OAAO,CAAC,CAAC;IAC/B;EACF,CACF,CAAC;EAED,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMb,oBAAoB,GAAGA,CAAA,KAAM;EACjCT,6BAA6B,CAAC,CAAC;EAC/B,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMU,wBAAwB,GAAGA,CAAA,KAAM;EACrCb,oCAAoC,CAAC,CAAC;EACtC,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMc,wBAAwB,GAAGA,CAAA,KAAM;EACrCf,SAAS,CAAC,MAAM;IACdG,6BAA6B,CAAC,CAAC;IAC/BD,4BAA4B,CAAC0B,OAAO,GAAG,KAAK;IAC5C,OAAO,MAAM;MACX1B,4BAA4B,CAAC0B,OAAO,GAAG,IAAI;IAC7C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACb,CAAC"}
|
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.7.
|
|
1
|
+
export const version = '0.7.18';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsInPiPMode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsInPiPMode.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIsInPiPMode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsInPiPMode.tsx"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,YA0C7B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.7.
|
|
1
|
+
export declare const version = "0.7.18";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/video-react-native-sdk",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.18",
|
|
4
4
|
"packageManager": "yarn@3.2.4",
|
|
5
5
|
"main": "dist/commonjs/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"!**/.*"
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@stream-io/video-client": "^1.
|
|
50
|
-
"@stream-io/video-react-bindings": "^0.4.
|
|
49
|
+
"@stream-io/video-client": "^1.2.0",
|
|
50
|
+
"@stream-io/video-react-bindings": "^0.4.38",
|
|
51
51
|
"intl-pluralrules": "2.0.1",
|
|
52
52
|
"lodash.merge": "^4.6.2",
|
|
53
53
|
"react-native-url-polyfill": "1.3.0",
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
AppState,
|
|
4
|
+
NativeEventEmitter,
|
|
5
|
+
NativeModules,
|
|
6
|
+
Platform,
|
|
7
|
+
} from 'react-native';
|
|
8
|
+
|
|
9
|
+
const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
|
|
3
10
|
|
|
4
11
|
export function useIsInPiPMode() {
|
|
5
12
|
const [isInPiPMode, setIsInPiPMode] = useState(false);
|
|
@@ -13,15 +20,32 @@ export function useIsInPiPMode() {
|
|
|
13
20
|
NativeModules.StreamVideoReactNative
|
|
14
21
|
);
|
|
15
22
|
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
23
|
+
const subscriptionPiPChange = eventEmitter.addListener(
|
|
24
|
+
PIP_CHANGE_EVENT,
|
|
25
|
+
setIsInPiPMode
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
const subscriptionAppState = AppState.addEventListener(
|
|
29
|
+
'change',
|
|
30
|
+
(nextAppState) => {
|
|
31
|
+
if (nextAppState === 'background') {
|
|
32
|
+
setIsInPiPMode(true); // set with an assumption that its enabled so that UI disabling happens faster
|
|
33
|
+
// if PiP was not enabled anyway, then in the next code we ll set it to false and UI wont be shown anyway
|
|
34
|
+
}
|
|
35
|
+
// attempt to take the value as soon as app state is changed
|
|
36
|
+
// this can be faster than event emitter at times
|
|
37
|
+
// also in new arch this can be made a synchronous method
|
|
38
|
+
NativeModules?.StreamVideoReactNative?.isInPiPMode().then(
|
|
39
|
+
(isInPiPNativeMethod: boolean | null | undefined) => {
|
|
40
|
+
setIsInPiPMode(!!isInPiPNativeMethod);
|
|
41
|
+
}
|
|
42
|
+
);
|
|
20
43
|
}
|
|
21
44
|
);
|
|
22
45
|
|
|
23
46
|
return () => {
|
|
24
|
-
|
|
47
|
+
subscriptionPiPChange.remove();
|
|
48
|
+
subscriptionAppState.remove();
|
|
25
49
|
};
|
|
26
50
|
}, []);
|
|
27
51
|
|
|
@@ -53,7 +53,7 @@ const AppStateListener = () => {
|
|
|
53
53
|
// in Android, we need to check if we are in PiP mode
|
|
54
54
|
// in PiP mode, we don't want to disable the camera
|
|
55
55
|
NativeModules?.StreamVideoReactNative?.isInPiPMode().then(
|
|
56
|
-
async (isInPiP: boolean) => {
|
|
56
|
+
async (isInPiP: boolean | null | undefined) => {
|
|
57
57
|
if (!isInPiP) {
|
|
58
58
|
await call?.camera?.disable();
|
|
59
59
|
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.7.
|
|
1
|
+
export const version = '0.7.18';
|