@@ -74,9 +74,7 @@ import java.util.Locale
74
74
/* * LocalPeer is the main class which handles all the functionality of the client
75
75
* Where Client Means the currently Running Application.
76
76
*/
77
- class LocalPeer (
78
- context : Context
79
- ) : EventEmitter() {
77
+ class LocalPeer (context : Context ) : EventEmitter() {
80
78
81
79
companion object {
82
80
/* * LocalPeer Instance, Singleton class, only one instance of this class can be created
@@ -339,9 +337,7 @@ class LocalPeer(
339
337
return try {
340
338
socket.publish(
341
339
Request .RequestCase .SEND_DATA , mapOf (
342
- " to" to parsedTo,
343
- " payload" to data.payload,
344
- " label" to data.label
340
+ " to" to parsedTo, " payload" to data.payload, " label" to data.label
345
341
)
346
342
)
347
343
Pair (true , null )
@@ -430,7 +426,7 @@ class LocalPeer(
430
426
431
427
432
428
suspend fun produce (
433
- label : String , audioTrack : AudioTrack ? , videoTrack : VideoTrack ? , appData : String?
429
+ label : String , audioTrack : AudioTrack ? , videoTrack : VideoTrack ? , appData : String? ,
434
430
) {
435
431
Timber .i(" produce called" )
436
432
try {
@@ -583,17 +579,17 @@ class LocalPeer(
583
579
}
584
580
}
585
581
586
- fun changeCam (){
587
- localVideoManager?.switchCamera(
588
- object : CameraSwitchHandler {
589
- override fun onCameraSwitchDone ( b : Boolean ) {
590
- store.setCamInProgress( false )
591
- }
592
- override fun onCameraSwitchError (s : String ) {
593
- Timber .w(" ❌ Error Enabling Video $s " )
594
- store.setCamInProgress(false )
595
- }
596
- })
582
+ fun changeCam () {
583
+ localVideoManager?.switchCamera(object : CameraSwitchHandler {
584
+ override fun onCameraSwitchDone ( b : Boolean ) {
585
+ store.setCamInProgress( false )
586
+ }
587
+
588
+ override fun onCameraSwitchError (s : String ) {
589
+ Timber .w(" ❌ Error Enabling Video $s " )
590
+ store.setCamInProgress(false )
591
+ }
592
+ })
597
593
}
598
594
599
595
@@ -639,7 +635,7 @@ class LocalPeer(
639
635
* @returns Consumer?; Returns null if consumer is not found
640
636
*/
641
637
fun getConsumer (
642
- label : String , peerId : String
638
+ label : String , peerId : String ,
643
639
): Consumer ? {
644
640
val consumer = consumers.get(label, peerId)
645
641
return consumer
@@ -783,28 +779,20 @@ class LocalPeer(
783
779
waitingToProduce.clear()
784
780
waitingToConsume.clear()
785
781
786
- activeAudioTrack.values.forEach { stream ->
787
- stream.dispose()
788
- }
789
- activeVideoTrack.values.forEach { stream ->
790
- stream.dispose()
791
- }
792
782
joined = false
793
783
794
- // dispose audio manager
795
- localAudioManager?.dispose()
796
- // dispose video manager
797
- localVideoManager?.dispose()
798
- camCapturer?.stopCapture()
799
-
800
784
_sendTransport ?.close()
801
785
_sendTransport = null
802
786
803
787
_recvTransport ?.close()
804
788
_recvTransport = null
805
789
806
- permissions.reset()
790
+ // dispose audio manager
791
+ localAudioManager?.dispose()
792
+ // dispose video manager
793
+ localVideoManager?.dispose()
807
794
795
+ permissions.reset()
808
796
// store setRoomState
809
797
store.setRoomState(RoomStates .CLOSED )
810
798
@@ -927,10 +915,9 @@ class LocalPeer(
927
915
try {
928
916
Timber .i(" ✅ Client recovered after reconnecting => $syncMeetingStateResponse " )
929
917
930
- val latestPeersSet = syncMeetingStateResponse.roomInfo.peersList
931
- .orEmpty()
932
- .mapNotNull { it.peerId }
933
- .toSet()
918
+ val latestPeersSet =
919
+ syncMeetingStateResponse.roomInfo.peersList.orEmpty().mapNotNull { it.peerId }
920
+ .toSet()
934
921
935
922
remotePeers.entries.toList().forEach { (peerId, peer) ->
936
923
if (peerId in latestPeersSet) {
@@ -941,13 +928,11 @@ class LocalPeer(
941
928
remotePeers.remove(peerId)
942
929
room.emit(" peer-left" , peerId)
943
930
} else {
944
- val latestPeerInfo = syncMeetingStateResponse.roomInfo.peersList
945
- .find { it.peerId == peerId }
931
+ val latestPeerInfo =
932
+ syncMeetingStateResponse.roomInfo.peersList .find { it.peerId == peerId }
946
933
947
- val newProducerSet = latestPeerInfo?.producersList
948
- .orEmpty()
949
- .mapNotNull { it.label }
950
- .toSet()
934
+ val newProducerSet =
935
+ latestPeerInfo?.producersList.orEmpty().mapNotNull { it.label }.toSet()
951
936
952
937
peer.labels.forEach { label ->
953
938
if (label in newProducerSet) {
@@ -973,32 +958,30 @@ class LocalPeer(
973
958
}
974
959
975
960
// Handle new peers
976
- syncMeetingStateResponse.roomInfo.peersList
977
- .filter { it.peerId != null && ! remotePeers.containsKey(it.peerId) && it.peerId != this .peerId }
978
- .forEach { latestPeer ->
979
- val peerId = latestPeer .peerId
980
-
981
- val remotePeer = RemotePeer (
982
- peerId = peerId,
983
- role = latestPeer.role,
984
- metadata = latestPeer.metadata
985
- )
961
+ syncMeetingStateResponse.roomInfo.peersList.filter {
962
+ it.peerId != null && ! remotePeers.containsKey(
963
+ it.peerId
964
+ ) && it. peerId != this .peerId
965
+ }.forEach { latestPeer ->
966
+ val peerId = latestPeer.peerId
967
+
968
+ val remotePeer = RemotePeer (
969
+ peerId = peerId, role = latestPeer.role, metadata = latestPeer.metadata
970
+ )
986
971
987
- remotePeers[peerId] = remotePeer
972
+ remotePeers[peerId] = remotePeer
988
973
989
- latestPeer.producersList.forEach { producer ->
990
- val producerId = producer.id
991
- val label = producer.label
974
+ latestPeer.producersList.forEach { producer ->
975
+ val producerId = producer.id
976
+ val label = producer.label
992
977
993
- remotePeer.addLabelData(
994
- label = label,
995
- producerId = producerId,
996
- this @LocalPeer.appContext
997
- )
998
- }
999
-
1000
- room.emit(" new-peer-joined" , mapOf (" peer" to remotePeer))
978
+ remotePeer.addLabelData(
979
+ label = label, producerId = producerId, this @LocalPeer.appContext
980
+ )
1001
981
}
982
+
983
+ room.emit(" new-peer-joined" , mapOf (" peer" to remotePeer))
984
+ }
1002
985
} catch (error: Throwable ) {
1003
986
Timber .e(" ❌ Error Syncing Meeting State, Can't Recover | error: $error " )
1004
987
}
@@ -1514,7 +1497,7 @@ class LocalPeer(
1514
1497
}
1515
1498
1516
1499
override fun onProduce (
1517
- transport : Transport , kind : String , rtpParameters : String , appData : String?
1500
+ transport : Transport , kind : String , rtpParameters : String , appData : String? ,
1518
1501
): String {
1519
1502
try {
1520
1503
socket.publish(
@@ -1538,7 +1521,7 @@ class LocalPeer(
1538
1521
sctpStreamParameters : String ,
1539
1522
label : String ,
1540
1523
protocol : String ,
1541
- appData : String?
1524
+ appData : String? ,
1542
1525
): String {
1543
1526
TODO (" Not yet implemented" )
1544
1527
}
@@ -1576,7 +1559,7 @@ class LocalPeer(
1576
1559
dtlsParameters : String ,
1577
1560
sctpParameters : String? = null,
1578
1561
rtcConfig : PeerConnection .RTCConfiguration ? = null,
1579
- appData : String? = null
1562
+ appData : String? = null,
1580
1563
): Transport ? {
1581
1564
Timber .i(" createDeviceTransport called for $transportType " )
1582
1565
val transport = when (transportType) {
@@ -1612,7 +1595,7 @@ class LocalPeer(
1612
1595
}
1613
1596
1614
1597
private fun connectionStateChangeHandler (
1615
- transport : Transport ? , state : String , transportType : String
1598
+ transport : Transport ? , state : String , transportType : String ,
1616
1599
) {
1617
1600
try {
1618
1601
Timber .d(" 🔔 $transportType Transport Connection State Changed, state: $state " )
@@ -1673,9 +1656,7 @@ class LocalPeer(
1673
1656
val peerId = peer.peerId
1674
1657
if (peerId != this .peerId) {
1675
1658
val remotePeer = RemotePeer (
1676
- peerId = peerId,
1677
- metadata = peer.metadata.orEmpty(),
1678
- role = peer.role
1659
+ peerId = peerId, metadata = peer.metadata.orEmpty(), role = peer.role
1679
1660
)
1680
1661
remotePeers[peerId] = remotePeer
1681
1662
CoroutineScope (Dispatchers .Main ).launch {
@@ -1687,9 +1668,7 @@ class LocalPeer(
1687
1668
put(" role" , peer.role)
1688
1669
})
1689
1670
remotePeer.addLabelData(
1690
- producer.label,
1691
- producer.id,
1692
- this @LocalPeer.appContext
1671
+ producer.label, producer.id, this @LocalPeer.appContext
1693
1672
)
1694
1673
}
1695
1674
}
@@ -1709,7 +1688,7 @@ class LocalPeer(
1709
1688
* Helper function to close the consumer of a remote peer
1710
1689
*/
1711
1690
private fun closeRemotePeerConsumer (
1712
- peerId : String , label : String
1691
+ peerId : String , label : String ,
1713
1692
) {
1714
1693
try {
1715
1694
val remotePeer = room.getRemotePeerById(peerId)
0 commit comments