@100mslive/react-native-hms 1.8.0 → 2.0.0-alpha.0
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/android/.gradle/6.7.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.7.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/{6.7.1/fileHashes/fileHashes.bin → 6.9/fileHashes/resourceHashesCache.bin} +0 -0
- package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.idea/compiler.xml +6 -0
- package/android/.idea/gradle.xml +18 -0
- package/android/.idea/jarRepositories.xml +45 -0
- package/android/.idea/misc.xml +10 -0
- package/android/.idea/vcs.xml +6 -0
- package/android/build.gradle +3 -3
- package/android/local.properties +8 -1
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +14 -4
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +12 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +120 -25
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +184 -0
- package/ios/HMSConstants.swift +1 -0
- package/ios/HMSDecoder.swift +16 -5
- package/ios/HMSManager.m +12 -0
- package/ios/HMSManager.swift +22 -1
- package/ios/HMSRNSDK.swift +62 -0
- package/ios/Hmssdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/jatinnagar.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/Hmssdk.xcodeproj/xcuserdata/jatinnagar.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- package/lib/commonjs/classes/HMSPIPListenerActions.js +1 -0
- package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/commonjs/classes/HMSPeer.js +15 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerListIterator.js +46 -0
- package/lib/commonjs/classes/HMSPeerListIterator.js.map +1 -0
- package/lib/commonjs/classes/HMSPeerListIteratorOptions.js +2 -0
- package/lib/commonjs/classes/HMSPeerListIteratorOptions.js.map +1 -0
- package/lib/commonjs/classes/HMSPeerUpdate.js +2 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPeersCache.js +7 -0
- package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +122 -3
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/module/classes/HMSPIPListenerActions.js +1 -0
- package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/module/classes/HMSPeer.js +15 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerListIterator.js +40 -0
- package/lib/module/classes/HMSPeerListIterator.js.map +1 -0
- package/lib/module/classes/HMSPeerListIteratorOptions.js +2 -0
- package/lib/module/classes/HMSPeerListIteratorOptions.js.map +1 -0
- package/lib/module/classes/HMSPeerUpdate.js +2 -1
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSPeersCache.js +7 -0
- package/lib/module/classes/HMSPeersCache.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +122 -4
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/typescript/classes/HMSPIPListenerActions.d.ts +1 -0
- package/lib/typescript/classes/HMSPeer.d.ts +3 -0
- package/lib/typescript/classes/HMSPeerListIterator.d.ts +7 -0
- package/lib/typescript/classes/HMSPeerListIteratorOptions.d.ts +5 -0
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +2 -1
- package/lib/typescript/classes/HMSPeersCache.d.ts +1 -0
- package/lib/typescript/classes/HMSSDK.d.ts +23 -1
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
- package/package.json +1 -1
- package/sdk-versions.json +2 -2
- package/src/classes/HMSPIPListenerActions.ts +1 -0
- package/src/classes/HMSPeer.ts +25 -0
- package/src/classes/HMSPeerListIterator.ts +40 -0
- package/src/classes/HMSPeerListIteratorOptions.ts +5 -0
- package/src/classes/HMSPeerUpdate.ts +2 -0
- package/src/classes/HMSPeersCache.ts +7 -0
- package/src/classes/HMSSDK.tsx +154 -2
- package/src/classes/HMSUpdateListenerActions.ts +1 -0
- package/android/.gradle/6.7.1/executionHistory/executionHistory.bin +0 -0
|
@@ -26,6 +26,7 @@ export let HMSUpdateListenerActions = /*#__PURE__*/function (HMSUpdateListenerAc
|
|
|
26
26
|
HMSUpdateListenerActions["ON_AUDIO_DEVICE_CHANGED"] = "ON_AUDIO_DEVICE_CHANGED";
|
|
27
27
|
HMSUpdateListenerActions["ON_SESSION_STORE_AVAILABLE"] = "ON_SESSION_STORE_AVAILABLE";
|
|
28
28
|
HMSUpdateListenerActions["ON_SESSION_STORE_CHANGED"] = "ON_SESSION_STORE_CHANGED";
|
|
29
|
+
HMSUpdateListenerActions["ON_PEER_LIST_UPDATED"] = "ON_PEER_LIST_UPDATED";
|
|
29
30
|
return HMSUpdateListenerActions;
|
|
30
31
|
}({});
|
|
31
32
|
//# sourceMappingURL=HMSUpdateListenerActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HMSUpdateListenerActions"],"sources":["HMSUpdateListenerActions.ts"],"sourcesContent":["/**\n * These are the available events emitted by the `HMSSDK`\n *\n * For more info about these events, checkout Event Listener docs\n * {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/listen-to-room-updates/event-listeners}\n */\nexport enum HMSUpdateListenerActions {\n ON_PREVIEW = 'ON_PREVIEW',\n ON_JOIN = 'ON_JOIN',\n ON_ROOM_UPDATE = 'ON_ROOM_UPDATE',\n ON_PEER_UPDATE = '3',\n ON_TRACK_UPDATE = 'ON_TRACK_UPDATE',\n ON_ERROR = 'ON_ERROR',\n ON_MESSAGE = 'ON_MESSAGE',\n ON_SPEAKER = 'ON_SPEAKER',\n RECONNECTING = 'RECONNECTING',\n RECONNECTED = 'RECONNECTED',\n ON_ROLE_CHANGE_REQUEST = 'ON_ROLE_CHANGE_REQUEST',\n ON_CHANGE_TRACK_STATE_REQUEST = 'ON_CHANGE_TRACK_STATE_REQUEST',\n ON_REMOVED_FROM_ROOM = 'ON_REMOVED_FROM_ROOM',\n ON_RTC_STATS = 'ON_RTC_STATS',\n ON_LOCAL_AUDIO_STATS = 'ON_LOCAL_AUDIO_STATS',\n ON_LOCAL_VIDEO_STATS = 'ON_LOCAL_VIDEO_STATS',\n ON_REMOTE_AUDIO_STATS = 'ON_REMOTE_AUDIO_STATS',\n ON_REMOTE_VIDEO_STATS = 'ON_REMOTE_VIDEO_STATS',\n ON_AUDIO_DEVICE_CHANGED = 'ON_AUDIO_DEVICE_CHANGED',\n ON_SESSION_STORE_AVAILABLE = 'ON_SESSION_STORE_AVAILABLE',\n ON_SESSION_STORE_CHANGED = 'ON_SESSION_STORE_CHANGED',\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA"}
|
|
1
|
+
{"version":3,"names":["HMSUpdateListenerActions"],"sources":["HMSUpdateListenerActions.ts"],"sourcesContent":["/**\n * These are the available events emitted by the `HMSSDK`\n *\n * For more info about these events, checkout Event Listener docs\n * {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/listen-to-room-updates/event-listeners}\n */\nexport enum HMSUpdateListenerActions {\n ON_PREVIEW = 'ON_PREVIEW',\n ON_JOIN = 'ON_JOIN',\n ON_ROOM_UPDATE = 'ON_ROOM_UPDATE',\n ON_PEER_UPDATE = '3',\n ON_TRACK_UPDATE = 'ON_TRACK_UPDATE',\n ON_ERROR = 'ON_ERROR',\n ON_MESSAGE = 'ON_MESSAGE',\n ON_SPEAKER = 'ON_SPEAKER',\n RECONNECTING = 'RECONNECTING',\n RECONNECTED = 'RECONNECTED',\n ON_ROLE_CHANGE_REQUEST = 'ON_ROLE_CHANGE_REQUEST',\n ON_CHANGE_TRACK_STATE_REQUEST = 'ON_CHANGE_TRACK_STATE_REQUEST',\n ON_REMOVED_FROM_ROOM = 'ON_REMOVED_FROM_ROOM',\n ON_RTC_STATS = 'ON_RTC_STATS',\n ON_LOCAL_AUDIO_STATS = 'ON_LOCAL_AUDIO_STATS',\n ON_LOCAL_VIDEO_STATS = 'ON_LOCAL_VIDEO_STATS',\n ON_REMOTE_AUDIO_STATS = 'ON_REMOTE_AUDIO_STATS',\n ON_REMOTE_VIDEO_STATS = 'ON_REMOTE_VIDEO_STATS',\n ON_AUDIO_DEVICE_CHANGED = 'ON_AUDIO_DEVICE_CHANGED',\n ON_SESSION_STORE_AVAILABLE = 'ON_SESSION_STORE_AVAILABLE',\n ON_SESSION_STORE_CHANGED = 'ON_SESSION_STORE_CHANGED',\n ON_PEER_LIST_UPDATED = 'ON_PEER_LIST_UPDATED',\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA"}
|
|
@@ -10,7 +10,9 @@ export declare class HMSPeer {
|
|
|
10
10
|
private _customerUserID;
|
|
11
11
|
private _metadata;
|
|
12
12
|
private _role;
|
|
13
|
+
private _isHandRaised;
|
|
13
14
|
private _updateIsLocal;
|
|
15
|
+
private _updateIsHandRaised;
|
|
14
16
|
private _updateCustomerUserID;
|
|
15
17
|
private _updateMetadata;
|
|
16
18
|
private _updateRole;
|
|
@@ -19,6 +21,7 @@ export declare class HMSPeer {
|
|
|
19
21
|
name: string;
|
|
20
22
|
});
|
|
21
23
|
get isLocal(): boolean | undefined;
|
|
24
|
+
get isHandRaised(): boolean;
|
|
22
25
|
get networkQuality(): HMSNetworkQuality | undefined;
|
|
23
26
|
get customerUserID(): string | undefined;
|
|
24
27
|
get metadata(): string | undefined;
|
|
@@ -4,6 +4,7 @@ export declare enum HMSPeerUpdate {
|
|
|
4
4
|
METADATA_CHANGED = "METADATA_CHANGED",
|
|
5
5
|
ROLE_CHANGED = "ROLE_CHANGED",
|
|
6
6
|
NAME_CHANGED = "NAME_CHANGED",
|
|
7
|
-
NETWORK_QUALITY_UPDATED = "NETWORK_QUALITY_UPDATED"
|
|
7
|
+
NETWORK_QUALITY_UPDATED = "NETWORK_QUALITY_UPDATED",
|
|
8
|
+
HAND_RAISED_CHANGED = "HAND_RAISED_CHANGED"
|
|
8
9
|
}
|
|
9
10
|
export declare const HMSPeerUpdateOrdinals: Map<string, HMSPeerUpdate>;
|
|
@@ -20,6 +20,7 @@ export type HMSPeerCacheProps = {
|
|
|
20
20
|
audioTrack?: HMSAudioTrack | undefined;
|
|
21
21
|
videoTrack?: HMSVideoTrack | undefined;
|
|
22
22
|
auxiliaryTracks?: HMSTrack[] | undefined;
|
|
23
|
+
isHandRaised?: boolean | undefined;
|
|
23
24
|
};
|
|
24
25
|
export declare class HMSPeersCache {
|
|
25
26
|
private _data;
|
|
@@ -20,6 +20,7 @@ import type { HMSLogSettings } from './HMSLogSettings';
|
|
|
20
20
|
import { HMSPIPListenerActions } from './HMSPIPListenerActions';
|
|
21
21
|
type HmsViewProps = Omit<HmsComponentProps, 'id'>;
|
|
22
22
|
interface PIPConfig {
|
|
23
|
+
autoEnterPipMode?: boolean;
|
|
23
24
|
aspectRatio?: [number, number];
|
|
24
25
|
endButton?: boolean;
|
|
25
26
|
audioButton?: boolean;
|
|
@@ -33,6 +34,7 @@ export declare class HMSSDK {
|
|
|
33
34
|
private onJoinDelegate?;
|
|
34
35
|
private onRoomDelegate?;
|
|
35
36
|
private onPeerDelegate?;
|
|
37
|
+
private onPeerListUpdatedDelegate?;
|
|
36
38
|
private onTrackDelegate?;
|
|
37
39
|
private onErrorDelegate?;
|
|
38
40
|
private onMessageDelegate?;
|
|
@@ -50,6 +52,7 @@ export declare class HMSSDK {
|
|
|
50
52
|
private onAudioDeviceChangedDelegate?;
|
|
51
53
|
private onSessionStoreAvailableDelegate?;
|
|
52
54
|
private onPIPRoomLeaveDelegate?;
|
|
55
|
+
private onPIPModeChangedDelegate?;
|
|
53
56
|
private emitterSubscriptions;
|
|
54
57
|
private constructor();
|
|
55
58
|
/**
|
|
@@ -525,6 +528,21 @@ export declare class HMSSDK {
|
|
|
525
528
|
getRemoteVideoTrackFromTrackId: (trackId: string) => Promise<import("./HMSRemoteVideoTrack").HMSRemoteVideoTrack>;
|
|
526
529
|
getRemoteAudioTrackFromTrackId: (trackId: string) => Promise<import("./HMSRemoteAudioTrack").HMSRemoteAudioTrack>;
|
|
527
530
|
getPeerFromPeerId: (peerId: string) => HMSPeer | undefined;
|
|
531
|
+
/**
|
|
532
|
+
* - This function is used to raise hand for the local peer
|
|
533
|
+
* @memberof HMSSDK
|
|
534
|
+
*/
|
|
535
|
+
raiseLocalPeerHand: () => Promise<any>;
|
|
536
|
+
/**
|
|
537
|
+
* - This function is used to lower hand for the local peer
|
|
538
|
+
* @memberof HMSSDK
|
|
539
|
+
*/
|
|
540
|
+
lowerLocalPeerHand: () => Promise<any>;
|
|
541
|
+
/**
|
|
542
|
+
* - This function is used to lower hand for the remote peer
|
|
543
|
+
* @param peer
|
|
544
|
+
*/
|
|
545
|
+
lowerRemotePeerHand: (peer: HMSPeer) => Promise<any>;
|
|
528
546
|
/**
|
|
529
547
|
* - This is a prototype event listener that takes action and listens for updates related to that particular action
|
|
530
548
|
*
|
|
@@ -565,6 +583,7 @@ export declare class HMSSDK {
|
|
|
565
583
|
onJoinListener: (data: any) => void;
|
|
566
584
|
onRoomListener: (data: any) => void;
|
|
567
585
|
onPeerListener: (peerData: any) => void;
|
|
586
|
+
onPeerListUpdatedListener: (data: any) => void;
|
|
568
587
|
onTrackListener: (data: any) => void;
|
|
569
588
|
onMessageListener: (data: any) => void;
|
|
570
589
|
onSpeakerListener: (data: any) => void;
|
|
@@ -590,8 +609,11 @@ export declare class HMSSDK {
|
|
|
590
609
|
onPIPRoomLeaveListener: (data: {
|
|
591
610
|
id: string;
|
|
592
611
|
}) => void;
|
|
612
|
+
onPIPModeChangedListener: (data: {
|
|
613
|
+
isInPictureInPictureMode: boolean;
|
|
614
|
+
}) => void;
|
|
593
615
|
isPipModeSupported(): Promise<undefined | boolean>;
|
|
594
|
-
|
|
616
|
+
enterPipMode(data?: PIPConfig): Promise<undefined | boolean>;
|
|
595
617
|
setPipParams(data?: PIPConfig): Promise<undefined | boolean>;
|
|
596
618
|
/**
|
|
597
619
|
* - Returns the instance of logger which can be used to manipulate log levels.
|
|
@@ -25,5 +25,6 @@ export declare enum HMSUpdateListenerActions {
|
|
|
25
25
|
ON_REMOTE_VIDEO_STATS = "ON_REMOTE_VIDEO_STATS",
|
|
26
26
|
ON_AUDIO_DEVICE_CHANGED = "ON_AUDIO_DEVICE_CHANGED",
|
|
27
27
|
ON_SESSION_STORE_AVAILABLE = "ON_SESSION_STORE_AVAILABLE",
|
|
28
|
-
ON_SESSION_STORE_CHANGED = "ON_SESSION_STORE_CHANGED"
|
|
28
|
+
ON_SESSION_STORE_CHANGED = "ON_SESSION_STORE_CHANGED",
|
|
29
|
+
ON_PEER_LIST_UPDATED = "ON_PEER_LIST_UPDATED"
|
|
29
30
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@100mslive/react-native-hms",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-alpha.0",
|
|
4
4
|
"description": "Integrate Real Time Audio and Video conferencing, Interactive Live Streaming, and Chat in your apps with 100ms React Native SDK. With support for HLS and RTMP Live Streaming and Recording, Picture-in-Picture (PiP), one-to-one Video Call Modes, Audio Rooms, Video Player and much more, add immersive real-time communications to your apps.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
package/sdk-versions.json
CHANGED
package/src/classes/HMSPeer.ts
CHANGED
|
@@ -13,6 +13,7 @@ export class HMSPeer {
|
|
|
13
13
|
private _customerUserID: string | undefined;
|
|
14
14
|
private _metadata: string | undefined;
|
|
15
15
|
private _role: HMSRole | undefined;
|
|
16
|
+
private _isHandRaised: boolean = false;
|
|
16
17
|
|
|
17
18
|
private _updateIsLocal(value: boolean) {
|
|
18
19
|
// If `_isLocal` is outdated, update it
|
|
@@ -21,6 +22,13 @@ export class HMSPeer {
|
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
private _updateIsHandRaised(value: boolean) {
|
|
26
|
+
// If `_isHandRaised` is outdated, update it
|
|
27
|
+
if (this._isHandRaised !== value) {
|
|
28
|
+
this._isHandRaised = value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
24
32
|
private _updateCustomerUserID(value: string) {
|
|
25
33
|
// If `_customerUserID` is outdated, update it
|
|
26
34
|
if (this._customerUserID !== value) {
|
|
@@ -64,6 +72,23 @@ export class HMSPeer {
|
|
|
64
72
|
return value ?? this._isLocal;
|
|
65
73
|
}
|
|
66
74
|
|
|
75
|
+
get isHandRaised(): boolean {
|
|
76
|
+
const hmsPeersCache = getHmsPeersCache();
|
|
77
|
+
|
|
78
|
+
const value = hmsPeersCache
|
|
79
|
+
? hmsPeersCache.getProperty(this.peerID, 'isHandRaised')
|
|
80
|
+
: getPeerPropertyFromNative(
|
|
81
|
+
HMSConstants.DEFAULT_SDK_ID,
|
|
82
|
+
this.peerID,
|
|
83
|
+
'isHandRaised'
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
if (typeof value === 'boolean') {
|
|
87
|
+
this._updateIsHandRaised(value);
|
|
88
|
+
}
|
|
89
|
+
return value ?? this._isHandRaised;
|
|
90
|
+
}
|
|
91
|
+
|
|
67
92
|
get networkQuality(): HMSNetworkQuality | undefined {
|
|
68
93
|
const hmsPeersCache = getHmsPeersCache();
|
|
69
94
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// import type { HMSException } from "./HMSException";
|
|
2
|
+
import type { HMSPeer } from './HMSPeer';
|
|
3
|
+
import HMSManagerModule from './HMSManagerModule';
|
|
4
|
+
import { HMSEncoder, logger } from '@100mslive/react-native-hms';
|
|
5
|
+
import { HMSConstants } from './HMSConstants';
|
|
6
|
+
|
|
7
|
+
export class HMSPeerListIterator {
|
|
8
|
+
private readonly uniqueId: number;
|
|
9
|
+
|
|
10
|
+
constructor(uniqueId: number) {
|
|
11
|
+
this.uniqueId = uniqueId;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async hasNext(): Promise<boolean> {
|
|
15
|
+
logger?.verbose('#Function HMSPeerListIterator#hasNext', this.uniqueId);
|
|
16
|
+
try {
|
|
17
|
+
return HMSManagerModule.peerListIteratorHasNext({
|
|
18
|
+
id: HMSConstants.DEFAULT_SDK_ID,
|
|
19
|
+
uniqueId: this.uniqueId,
|
|
20
|
+
});
|
|
21
|
+
} catch (e) {
|
|
22
|
+
logger?.error('#Error in #Function HMSPeerListIterator#hasNext ', e);
|
|
23
|
+
return Promise.reject(e);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async next(): Promise<HMSPeer[]> {
|
|
28
|
+
logger?.verbose('#Function HMSPeerListIterator#next', this.uniqueId);
|
|
29
|
+
try {
|
|
30
|
+
const peers = await HMSManagerModule.peerListIteratorNext({
|
|
31
|
+
id: HMSConstants.DEFAULT_SDK_ID,
|
|
32
|
+
uniqueId: this.uniqueId,
|
|
33
|
+
});
|
|
34
|
+
return HMSEncoder.encodeHmsPeers(peers);
|
|
35
|
+
} catch (e) {
|
|
36
|
+
logger?.error('#Error in #Function HMSPeerListIterator#next ', e);
|
|
37
|
+
return Promise.reject(e);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -5,6 +5,7 @@ export enum HMSPeerUpdate {
|
|
|
5
5
|
ROLE_CHANGED = 'ROLE_CHANGED',
|
|
6
6
|
NAME_CHANGED = 'NAME_CHANGED',
|
|
7
7
|
NETWORK_QUALITY_UPDATED = 'NETWORK_QUALITY_UPDATED',
|
|
8
|
+
HAND_RAISED_CHANGED = 'HAND_RAISED_CHANGED',
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
export const HMSPeerUpdateOrdinals = new Map([
|
|
@@ -14,4 +15,5 @@ export const HMSPeerUpdateOrdinals = new Map([
|
|
|
14
15
|
['5', HMSPeerUpdate.NAME_CHANGED],
|
|
15
16
|
['6', HMSPeerUpdate.METADATA_CHANGED],
|
|
16
17
|
['7', HMSPeerUpdate.NETWORK_QUALITY_UPDATED],
|
|
18
|
+
['8', HMSPeerUpdate.HAND_RAISED_CHANGED],
|
|
17
19
|
]);
|
|
@@ -39,6 +39,7 @@ export type HMSPeerCacheProps = {
|
|
|
39
39
|
audioTrack?: HMSAudioTrack | undefined;
|
|
40
40
|
videoTrack?: HMSVideoTrack | undefined;
|
|
41
41
|
auxiliaryTracks?: HMSTrack[] | undefined;
|
|
42
|
+
isHandRaised?: boolean | undefined;
|
|
42
43
|
};
|
|
43
44
|
|
|
44
45
|
export class HMSPeersCache {
|
|
@@ -206,6 +207,10 @@ export class HMSPeersCache {
|
|
|
206
207
|
updatedObj.name = data.name;
|
|
207
208
|
break;
|
|
208
209
|
}
|
|
210
|
+
case HMSPeerUpdate.HAND_RAISED_CHANGED: {
|
|
211
|
+
updatedObj.isHandRaised = data.isHandRaised;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
209
214
|
default: {
|
|
210
215
|
updatedObj = { ...updatedObj, ...data };
|
|
211
216
|
break;
|
|
@@ -256,6 +261,8 @@ export function getPeerPropertyFromNative<T extends keyof HMSPeerCacheProps>(
|
|
|
256
261
|
: undefined;
|
|
257
262
|
} else if (property === 'name') {
|
|
258
263
|
value = data?.[property];
|
|
264
|
+
} else if (property === 'isHandRaised') {
|
|
265
|
+
value = data ? data[property] : false;
|
|
259
266
|
} else {
|
|
260
267
|
value = data ? data[property] : undefined;
|
|
261
268
|
}
|
package/src/classes/HMSSDK.tsx
CHANGED
|
@@ -43,11 +43,14 @@ import {
|
|
|
43
43
|
} from './HMSRoomCache';
|
|
44
44
|
import { HMSPeerUpdateOrdinals } from './HMSPeerUpdate';
|
|
45
45
|
import { HMSSessionStore } from './HMSSessionStore';
|
|
46
|
+
// import type { HMSPeerListIteratorOptions } from './HMSPeerListIteratorOptions';
|
|
47
|
+
// import { HMSPeerListIterator } from './HMSPeerListIterator';
|
|
46
48
|
|
|
47
49
|
type HmsViewProps = Omit<HmsComponentProps, 'id'>;
|
|
48
50
|
|
|
49
51
|
// TODO: Rename to HMSPIPConfig & to be moved to a separate file
|
|
50
52
|
interface PIPConfig {
|
|
53
|
+
autoEnterPipMode?: boolean;
|
|
51
54
|
aspectRatio?: [number, number];
|
|
52
55
|
endButton?: boolean;
|
|
53
56
|
audioButton?: boolean;
|
|
@@ -66,6 +69,7 @@ export class HMSSDK {
|
|
|
66
69
|
private onJoinDelegate?: any;
|
|
67
70
|
private onRoomDelegate?: any;
|
|
68
71
|
private onPeerDelegate?: any;
|
|
72
|
+
private onPeerListUpdatedDelegate?: any;
|
|
69
73
|
private onTrackDelegate?: any;
|
|
70
74
|
private onErrorDelegate?: any;
|
|
71
75
|
private onMessageDelegate?: any;
|
|
@@ -83,6 +87,7 @@ export class HMSSDK {
|
|
|
83
87
|
private onAudioDeviceChangedDelegate?: any;
|
|
84
88
|
private onSessionStoreAvailableDelegate?: any;
|
|
85
89
|
private onPIPRoomLeaveDelegate?: any;
|
|
90
|
+
private onPIPModeChangedDelegate?: any;
|
|
86
91
|
|
|
87
92
|
private emitterSubscriptions: Partial<
|
|
88
93
|
Record<
|
|
@@ -1145,6 +1150,68 @@ export class HMSSDK {
|
|
|
1145
1150
|
return HMSEncoder.encodeHmsPeer({ peerID: peerId });
|
|
1146
1151
|
};
|
|
1147
1152
|
|
|
1153
|
+
/**
|
|
1154
|
+
* - This function is used to raise hand for the local peer
|
|
1155
|
+
* @memberof HMSSDK
|
|
1156
|
+
*/
|
|
1157
|
+
raiseLocalPeerHand = async () => {
|
|
1158
|
+
const data = {
|
|
1159
|
+
id: this.id,
|
|
1160
|
+
};
|
|
1161
|
+
logger?.verbose('#Function raiseLocalPeerHand', data);
|
|
1162
|
+
return HMSManager.raiseLocalPeerHand(data);
|
|
1163
|
+
};
|
|
1164
|
+
|
|
1165
|
+
/**
|
|
1166
|
+
* - This function is used to lower hand for the local peer
|
|
1167
|
+
* @memberof HMSSDK
|
|
1168
|
+
*/
|
|
1169
|
+
lowerLocalPeerHand = async () => {
|
|
1170
|
+
const data = {
|
|
1171
|
+
id: this.id,
|
|
1172
|
+
};
|
|
1173
|
+
logger?.verbose('#Function lowerLocalPeerHand', data);
|
|
1174
|
+
return HMSManager.lowerLocalPeerHand(data);
|
|
1175
|
+
};
|
|
1176
|
+
|
|
1177
|
+
/**
|
|
1178
|
+
* - This function is used to lower hand for the remote peer
|
|
1179
|
+
* @param peer
|
|
1180
|
+
*/
|
|
1181
|
+
lowerRemotePeerHand = async (peer: HMSPeer) => {
|
|
1182
|
+
const data = {
|
|
1183
|
+
peerId: peer.peerID,
|
|
1184
|
+
id: this.id,
|
|
1185
|
+
};
|
|
1186
|
+
logger?.verbose('#Function lowerRemotePeerHand', data);
|
|
1187
|
+
return HMSManager.lowerRemotePeerHand(data);
|
|
1188
|
+
};
|
|
1189
|
+
|
|
1190
|
+
// getPeerListIterator = (
|
|
1191
|
+
// options?: HMSPeerListIteratorOptions
|
|
1192
|
+
// ): HMSPeerListIterator => {
|
|
1193
|
+
// logger?.verbose('#Function getPeerListIterator', {
|
|
1194
|
+
// id: this.id,
|
|
1195
|
+
// options,
|
|
1196
|
+
// });
|
|
1197
|
+
|
|
1198
|
+
// const uniqueId = Date.now();
|
|
1199
|
+
|
|
1200
|
+
// const data: null | { sucess: boolean; uniqueId: number } =
|
|
1201
|
+
// HMSManager.getPeerListIterator({
|
|
1202
|
+
// id: this.id,
|
|
1203
|
+
// ...options,
|
|
1204
|
+
// limit: options?.limit ?? 10,
|
|
1205
|
+
// uniqueId: uniqueId,
|
|
1206
|
+
// });
|
|
1207
|
+
|
|
1208
|
+
// if (!data) {
|
|
1209
|
+
// throw new Error('Unable to create PeerListIterator');
|
|
1210
|
+
// }
|
|
1211
|
+
|
|
1212
|
+
// return new HMSPeerListIterator(data.uniqueId);
|
|
1213
|
+
// };
|
|
1214
|
+
|
|
1148
1215
|
/**
|
|
1149
1216
|
* - This is a prototype event listener that takes action and listens for updates related to that particular action
|
|
1150
1217
|
*
|
|
@@ -1229,6 +1296,28 @@ export class HMSSDK {
|
|
|
1229
1296
|
this.onPeerDelegate = callback;
|
|
1230
1297
|
break;
|
|
1231
1298
|
}
|
|
1299
|
+
case HMSUpdateListenerActions.ON_PEER_LIST_UPDATED: {
|
|
1300
|
+
// Checking if we already have ON_PEER_LIST_UPDATED subscription
|
|
1301
|
+
if (
|
|
1302
|
+
!this.emitterSubscriptions[
|
|
1303
|
+
HMSUpdateListenerActions.ON_PEER_LIST_UPDATED
|
|
1304
|
+
]
|
|
1305
|
+
) {
|
|
1306
|
+
// Adding ON_PEER_LIST_UPDATED native listener
|
|
1307
|
+
const peerListUpdatedSubscription =
|
|
1308
|
+
HMSNativeEventListener.addListener(
|
|
1309
|
+
this.id,
|
|
1310
|
+
HMSUpdateListenerActions.ON_PEER_LIST_UPDATED,
|
|
1311
|
+
this.onPeerListUpdatedListener
|
|
1312
|
+
);
|
|
1313
|
+
this.emitterSubscriptions[
|
|
1314
|
+
HMSUpdateListenerActions.ON_PEER_LIST_UPDATED
|
|
1315
|
+
] = peerListUpdatedSubscription;
|
|
1316
|
+
}
|
|
1317
|
+
// Adding App Delegate listener
|
|
1318
|
+
this.onPeerListUpdatedDelegate = callback;
|
|
1319
|
+
break;
|
|
1320
|
+
}
|
|
1232
1321
|
case HMSUpdateListenerActions.ON_TRACK_UPDATE: {
|
|
1233
1322
|
// Checking if we already have ON_TRACK_UPDATE subscription
|
|
1234
1323
|
if (
|
|
@@ -1554,6 +1643,25 @@ export class HMSSDK {
|
|
|
1554
1643
|
}
|
|
1555
1644
|
break;
|
|
1556
1645
|
}
|
|
1646
|
+
case HMSPIPListenerActions.ON_PIP_MODE_CHANGED: {
|
|
1647
|
+
if (Platform.OS === 'android') {
|
|
1648
|
+
// Checking if we already have ON_PIP_MODE_CHANGED subscription
|
|
1649
|
+
if (
|
|
1650
|
+
!this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_MODE_CHANGED]
|
|
1651
|
+
) {
|
|
1652
|
+
const pipModeChangedSubscription = HMSNativeEventListener.addListener(
|
|
1653
|
+
this.id,
|
|
1654
|
+
HMSPIPListenerActions.ON_PIP_MODE_CHANGED,
|
|
1655
|
+
this.onPIPModeChangedListener
|
|
1656
|
+
);
|
|
1657
|
+
this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_MODE_CHANGED] =
|
|
1658
|
+
pipModeChangedSubscription;
|
|
1659
|
+
}
|
|
1660
|
+
// Adding PIP mode changed Delegate listener
|
|
1661
|
+
this.onPIPModeChangedDelegate = callback;
|
|
1662
|
+
}
|
|
1663
|
+
break;
|
|
1664
|
+
}
|
|
1557
1665
|
default:
|
|
1558
1666
|
}
|
|
1559
1667
|
};
|
|
@@ -1893,6 +2001,22 @@ export class HMSSDK {
|
|
|
1893
2001
|
}
|
|
1894
2002
|
break;
|
|
1895
2003
|
}
|
|
2004
|
+
case HMSPIPListenerActions.ON_PIP_MODE_CHANGED: {
|
|
2005
|
+
if (Platform.OS === 'android') {
|
|
2006
|
+
const subscription =
|
|
2007
|
+
this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_MODE_CHANGED];
|
|
2008
|
+
// Removing ON_PIP_MODE_CHANGED native listener
|
|
2009
|
+
if (subscription) {
|
|
2010
|
+
subscription.remove();
|
|
2011
|
+
|
|
2012
|
+
this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_MODE_CHANGED] =
|
|
2013
|
+
undefined;
|
|
2014
|
+
}
|
|
2015
|
+
// Removing App Delegate listener
|
|
2016
|
+
this.onPIPModeChangedDelegate = null;
|
|
2017
|
+
}
|
|
2018
|
+
break;
|
|
2019
|
+
}
|
|
1896
2020
|
default:
|
|
1897
2021
|
}
|
|
1898
2022
|
};
|
|
@@ -2026,6 +2150,26 @@ export class HMSSDK {
|
|
|
2026
2150
|
}
|
|
2027
2151
|
};
|
|
2028
2152
|
|
|
2153
|
+
onPeerListUpdatedListener = (data: any) => {
|
|
2154
|
+
if (data.id !== this.id) {
|
|
2155
|
+
return;
|
|
2156
|
+
}
|
|
2157
|
+
const addedPeers = HMSEncoder.encodeHmsPeers(data.addedPeers);
|
|
2158
|
+
const removedPeers = HMSEncoder.encodeHmsPeers(data.removedPeers);
|
|
2159
|
+
|
|
2160
|
+
if (this.onPeerListUpdatedDelegate) {
|
|
2161
|
+
logger?.verbose('#Listener ON_PEER_LIST_UPDATED_LISTENER_CALL', {
|
|
2162
|
+
totalAddedPeers: addedPeers.length,
|
|
2163
|
+
totalRemovedPeers: removedPeers.length,
|
|
2164
|
+
});
|
|
2165
|
+
|
|
2166
|
+
this.onPeerListUpdatedDelegate({
|
|
2167
|
+
addedPeers,
|
|
2168
|
+
removedPeers,
|
|
2169
|
+
});
|
|
2170
|
+
}
|
|
2171
|
+
};
|
|
2172
|
+
|
|
2029
2173
|
onTrackListener = (data: any) => {
|
|
2030
2174
|
if (data.id !== this.id) {
|
|
2031
2175
|
return;
|
|
@@ -2324,12 +2468,20 @@ export class HMSSDK {
|
|
|
2324
2468
|
}
|
|
2325
2469
|
};
|
|
2326
2470
|
|
|
2471
|
+
onPIPModeChangedListener = (data: { isInPictureInPictureMode: boolean }) => {
|
|
2472
|
+
if (this.onPIPModeChangedDelegate) {
|
|
2473
|
+
logger?.verbose('#Listener onPIPModeChanged_CALL', data);
|
|
2474
|
+
|
|
2475
|
+
this.onPIPModeChangedDelegate(data);
|
|
2476
|
+
}
|
|
2477
|
+
}
|
|
2478
|
+
|
|
2327
2479
|
async isPipModeSupported(): Promise<undefined | boolean> {
|
|
2328
2480
|
return HMSManager.handlePipActions('isPipModeSupported', { id: this.id });
|
|
2329
2481
|
}
|
|
2330
2482
|
|
|
2331
|
-
async
|
|
2332
|
-
return HMSManager.handlePipActions('
|
|
2483
|
+
async enterPipMode(data?: PIPConfig): Promise<undefined | boolean> {
|
|
2484
|
+
return HMSManager.handlePipActions('enterPipMode', {
|
|
2333
2485
|
...data,
|
|
2334
2486
|
id: this.id,
|
|
2335
2487
|
});
|
|
@@ -26,4 +26,5 @@ export enum HMSUpdateListenerActions {
|
|
|
26
26
|
ON_AUDIO_DEVICE_CHANGED = 'ON_AUDIO_DEVICE_CHANGED',
|
|
27
27
|
ON_SESSION_STORE_AVAILABLE = 'ON_SESSION_STORE_AVAILABLE',
|
|
28
28
|
ON_SESSION_STORE_CHANGED = 'ON_SESSION_STORE_CHANGED',
|
|
29
|
+
ON_PEER_LIST_UPDATED = 'ON_PEER_LIST_UPDATED',
|
|
29
30
|
}
|
|
Binary file
|