Skip to content

Commit 1e5ac75

Browse files
committed
updated LocalPeer.kt
1 parent ec7619f commit 1e5ac75

File tree

1 file changed

+54
-75
lines changed
  • kotlin_client/src/main/java/com/huddle01/kotlin_client/core

1 file changed

+54
-75
lines changed

kotlin_client/src/main/java/com/huddle01/kotlin_client/core/LocalPeer.kt

+54-75
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,7 @@ import java.util.Locale
7474
/** LocalPeer is the main class which handles all the functionality of the client
7575
* Where Client Means the currently Running Application.
7676
*/
77-
class LocalPeer(
78-
context: Context
79-
) : EventEmitter() {
77+
class LocalPeer(context: Context) : EventEmitter() {
8078

8179
companion object {
8280
/** LocalPeer Instance, Singleton class, only one instance of this class can be created
@@ -339,9 +337,7 @@ class LocalPeer(
339337
return try {
340338
socket.publish(
341339
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
345341
)
346342
)
347343
Pair(true, null)
@@ -430,7 +426,7 @@ class LocalPeer(
430426

431427

432428
suspend fun produce(
433-
label: String, audioTrack: AudioTrack?, videoTrack: VideoTrack?, appData: String?
429+
label: String, audioTrack: AudioTrack?, videoTrack: VideoTrack?, appData: String?,
434430
) {
435431
Timber.i("produce called")
436432
try {
@@ -583,17 +579,17 @@ class LocalPeer(
583579
}
584580
}
585581

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+
})
597593
}
598594

599595

@@ -639,7 +635,7 @@ class LocalPeer(
639635
* @returns Consumer?; Returns null if consumer is not found
640636
*/
641637
fun getConsumer(
642-
label: String, peerId: String
638+
label: String, peerId: String,
643639
): Consumer? {
644640
val consumer = consumers.get(label, peerId)
645641
return consumer
@@ -783,28 +779,20 @@ class LocalPeer(
783779
waitingToProduce.clear()
784780
waitingToConsume.clear()
785781

786-
activeAudioTrack.values.forEach { stream ->
787-
stream.dispose()
788-
}
789-
activeVideoTrack.values.forEach { stream ->
790-
stream.dispose()
791-
}
792782
joined = false
793783

794-
// dispose audio manager
795-
localAudioManager?.dispose()
796-
// dispose video manager
797-
localVideoManager?.dispose()
798-
camCapturer?.stopCapture()
799-
800784
_sendTransport?.close()
801785
_sendTransport = null
802786

803787
_recvTransport?.close()
804788
_recvTransport = null
805789

806-
permissions.reset()
790+
// dispose audio manager
791+
localAudioManager?.dispose()
792+
// dispose video manager
793+
localVideoManager?.dispose()
807794

795+
permissions.reset()
808796
// store setRoomState
809797
store.setRoomState(RoomStates.CLOSED)
810798

@@ -927,10 +915,9 @@ class LocalPeer(
927915
try {
928916
Timber.i("✅ Client recovered after reconnecting => $syncMeetingStateResponse")
929917

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()
934921

935922
remotePeers.entries.toList().forEach { (peerId, peer) ->
936923
if (peerId in latestPeersSet) {
@@ -941,13 +928,11 @@ class LocalPeer(
941928
remotePeers.remove(peerId)
942929
room.emit("peer-left", peerId)
943930
} else {
944-
val latestPeerInfo = syncMeetingStateResponse.roomInfo.peersList
945-
.find { it.peerId == peerId }
931+
val latestPeerInfo =
932+
syncMeetingStateResponse.roomInfo.peersList.find { it.peerId == peerId }
946933

947-
val newProducerSet = latestPeerInfo?.producersList
948-
.orEmpty()
949-
.mapNotNull { it.label }
950-
.toSet()
934+
val newProducerSet =
935+
latestPeerInfo?.producersList.orEmpty().mapNotNull { it.label }.toSet()
951936

952937
peer.labels.forEach { label ->
953938
if (label in newProducerSet) {
@@ -973,32 +958,30 @@ class LocalPeer(
973958
}
974959

975960
// 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+
)
986971

987-
remotePeers[peerId] = remotePeer
972+
remotePeers[peerId] = remotePeer
988973

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
992977

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+
)
1001981
}
982+
983+
room.emit("new-peer-joined", mapOf("peer" to remotePeer))
984+
}
1002985
} catch (error: Throwable) {
1003986
Timber.e("❌ Error Syncing Meeting State, Can't Recover | error: $error")
1004987
}
@@ -1514,7 +1497,7 @@ class LocalPeer(
15141497
}
15151498

15161499
override fun onProduce(
1517-
transport: Transport, kind: String, rtpParameters: String, appData: String?
1500+
transport: Transport, kind: String, rtpParameters: String, appData: String?,
15181501
): String {
15191502
try {
15201503
socket.publish(
@@ -1538,7 +1521,7 @@ class LocalPeer(
15381521
sctpStreamParameters: String,
15391522
label: String,
15401523
protocol: String,
1541-
appData: String?
1524+
appData: String?,
15421525
): String {
15431526
TODO("Not yet implemented")
15441527
}
@@ -1576,7 +1559,7 @@ class LocalPeer(
15761559
dtlsParameters: String,
15771560
sctpParameters: String? = null,
15781561
rtcConfig: PeerConnection.RTCConfiguration? = null,
1579-
appData: String? = null
1562+
appData: String? = null,
15801563
): Transport? {
15811564
Timber.i("createDeviceTransport called for $transportType")
15821565
val transport = when (transportType) {
@@ -1612,7 +1595,7 @@ class LocalPeer(
16121595
}
16131596

16141597
private fun connectionStateChangeHandler(
1615-
transport: Transport?, state: String, transportType: String
1598+
transport: Transport?, state: String, transportType: String,
16161599
) {
16171600
try {
16181601
Timber.d("🔔 $transportType Transport Connection State Changed, state: $state")
@@ -1673,9 +1656,7 @@ class LocalPeer(
16731656
val peerId = peer.peerId
16741657
if (peerId != this.peerId) {
16751658
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
16791660
)
16801661
remotePeers[peerId] = remotePeer
16811662
CoroutineScope(Dispatchers.Main).launch {
@@ -1687,9 +1668,7 @@ class LocalPeer(
16871668
put("role", peer.role)
16881669
})
16891670
remotePeer.addLabelData(
1690-
producer.label,
1691-
producer.id,
1692-
this@LocalPeer.appContext
1671+
producer.label, producer.id, this@LocalPeer.appContext
16931672
)
16941673
}
16951674
}
@@ -1709,7 +1688,7 @@ class LocalPeer(
17091688
* Helper function to close the consumer of a remote peer
17101689
*/
17111690
private fun closeRemotePeerConsumer(
1712-
peerId: String, label: String
1691+
peerId: String, label: String,
17131692
) {
17141693
try {
17151694
val remotePeer = room.getRemotePeerById(peerId)

0 commit comments

Comments
 (0)