正在显示
6 个修改的文件
包含
96 行增加
和
9 行删除
| @@ -49,6 +49,7 @@ class SubscriberTransportObserver( | @@ -49,6 +49,7 @@ class SubscriberTransportObserver( | ||
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | override fun onIceConnectionChange(p0: PeerConnection.IceConnectionState?) { | 51 | override fun onIceConnectionChange(p0: PeerConnection.IceConnectionState?) { |
| 52 | + Timber.v { "onIceConnection new state: $p0" } | ||
| 52 | } | 53 | } |
| 53 | 54 | ||
| 54 | override fun onIceConnectionReceivingChange(p0: Boolean) { | 55 | override fun onIceConnectionReceivingChange(p0: Boolean) { |
| @@ -21,6 +21,14 @@ open class Participant(var sid: String, identity: String? = null) { | @@ -21,6 +21,14 @@ open class Participant(var sid: String, identity: String? = null) { | ||
| 21 | } | 21 | } |
| 22 | } | 22 | } |
| 23 | var metadata: String? = null | 23 | var metadata: String? = null |
| 24 | + internal set(v) { | ||
| 25 | + val prevMetadata = field | ||
| 26 | + field = v | ||
| 27 | + if (prevMetadata != v) { | ||
| 28 | + listener?.onMetadataChanged(this, prevMetadata) | ||
| 29 | + internalListener?.onMetadataChanged(this, prevMetadata) | ||
| 30 | + } | ||
| 31 | + } | ||
| 24 | 32 | ||
| 25 | /** | 33 | /** |
| 26 | * Listener for when participant properties change | 34 | * Listener for when participant properties change |
| @@ -64,14 +72,7 @@ open class Participant(var sid: String, identity: String? = null) { | @@ -64,14 +72,7 @@ open class Participant(var sid: String, identity: String? = null) { | ||
| 64 | sid = info.sid | 72 | sid = info.sid |
| 65 | identity = info.identity | 73 | identity = info.identity |
| 66 | participantInfo = info | 74 | participantInfo = info |
| 67 | - | ||
| 68 | - val prevMetadata = metadata | ||
| 69 | metadata = info.metadata | 75 | metadata = info.metadata |
| 70 | - | ||
| 71 | - if (prevMetadata != metadata) { | ||
| 72 | - listener?.onMetadataChanged(this, prevMetadata) | ||
| 73 | - internalListener?.onMetadataChanged(this, prevMetadata) | ||
| 74 | - } | ||
| 75 | } | 76 | } |
| 76 | 77 | ||
| 77 | override fun equals(other: Any?): Boolean { | 78 | override fun equals(other: Any?): Boolean { |
| @@ -15,7 +15,8 @@ import org.webrtc.VideoTrack | @@ -15,7 +15,8 @@ import org.webrtc.VideoTrack | ||
| 15 | 15 | ||
| 16 | class RemoteParticipant( | 16 | class RemoteParticipant( |
| 17 | val rtcClient: RTCClient, | 17 | val rtcClient: RTCClient, |
| 18 | - sid: String, name: String? = null, | 18 | + sid: String, |
| 19 | + name: String? = null, | ||
| 19 | ) : Participant(sid, name) { | 20 | ) : Participant(sid, name) { |
| 20 | /** | 21 | /** |
| 21 | * @suppress | 22 | * @suppress |
| @@ -4,7 +4,10 @@ import livekit.LivekitModels | @@ -4,7 +4,10 @@ import livekit.LivekitModels | ||
| 4 | import org.webrtc.DataChannel | 4 | import org.webrtc.DataChannel |
| 5 | import org.webrtc.MediaStreamTrack | 5 | import org.webrtc.MediaStreamTrack |
| 6 | 6 | ||
| 7 | -open class Track(name: String, kind: LivekitModels.TrackType) { | 7 | +open class Track( |
| 8 | + name: String, | ||
| 9 | + kind: LivekitModels.TrackType | ||
| 10 | +) { | ||
| 8 | var name = name | 11 | var name = name |
| 9 | internal set | 12 | internal set |
| 10 | var kind = kind | 13 | var kind = kind |
| 1 | +package io.livekit.android.room.participant | ||
| 2 | + | ||
| 3 | +import livekit.LivekitModels | ||
| 4 | +import org.junit.Assert.assertEquals | ||
| 5 | +import org.junit.Assert.assertTrue | ||
| 6 | +import org.junit.Before | ||
| 7 | +import org.junit.Test | ||
| 8 | + | ||
| 9 | +class ParticipantTest { | ||
| 10 | + | ||
| 11 | + lateinit var participant: Participant | ||
| 12 | + | ||
| 13 | + @Before | ||
| 14 | + fun setup() { | ||
| 15 | + participant = Participant("", null) | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + @Test | ||
| 19 | + fun updateFromInfo() { | ||
| 20 | + participant.updateFromInfo(INFO) | ||
| 21 | + | ||
| 22 | + assertTrue(participant.hasInfo) | ||
| 23 | + assertEquals(INFO.sid, participant.sid) | ||
| 24 | + assertEquals(INFO.identity, participant.identity) | ||
| 25 | + assertEquals(INFO.metadata, participant.metadata) | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + @Test | ||
| 29 | + fun setMetadataCallsListeners() { | ||
| 30 | + class MetadataListener : ParticipantListener { | ||
| 31 | + var wasCalled = false | ||
| 32 | + lateinit var participantValue: Participant | ||
| 33 | + var prevMetadataValue: String? = null | ||
| 34 | + override fun onMetadataChanged(participant: Participant, prevMetadata: String?) { | ||
| 35 | + wasCalled = true | ||
| 36 | + participantValue = participant | ||
| 37 | + prevMetadataValue = prevMetadata | ||
| 38 | + } | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + val publicListener = MetadataListener() | ||
| 42 | + val internalListener = MetadataListener() | ||
| 43 | + | ||
| 44 | + participant.listener = publicListener | ||
| 45 | + participant.internalListener = internalListener | ||
| 46 | + | ||
| 47 | + val prevMetadata = participant.metadata | ||
| 48 | + val metadata = "metadata" | ||
| 49 | + participant.metadata = metadata | ||
| 50 | + | ||
| 51 | + fun checkValues(listener: MetadataListener) { | ||
| 52 | + assertTrue(listener.wasCalled) | ||
| 53 | + assertEquals(participant, listener.participantValue) | ||
| 54 | + assertEquals(prevMetadata, listener.prevMetadataValue) | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + checkValues(publicListener) | ||
| 58 | + checkValues(internalListener) | ||
| 59 | + | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + companion object { | ||
| 63 | + val INFO = LivekitModels.ParticipantInfo.newBuilder() | ||
| 64 | + .setSid("sid") | ||
| 65 | + .setIdentity("identity") | ||
| 66 | + .setMetadata("metadata") | ||
| 67 | + .build() | ||
| 68 | + } | ||
| 69 | +} |
-
请 注册 或 登录 后发表评论