davidliu
Committed by GitHub

Expose Participant.Kind information (#432)

* Expose Participant.Kind information

* spotless
@@ -176,6 +176,14 @@ open class Participant( @@ -176,6 +176,14 @@ open class Participant(
176 internal set 176 internal set
177 177
178 /** 178 /**
  179 + * The kind of participant (i.e. a standard client participant, AI agent, etc.)
  180 + */
  181 + @FlowObservable
  182 + @get:FlowObservable
  183 + var kind by flowDelegate(Kind.UNKNOWN)
  184 + internal set
  185 +
  186 + /**
179 * @suppress 187 * @suppress
180 */ 188 */
181 @Deprecated("Use events instead") 189 @Deprecated("Use events instead")
@@ -318,6 +326,7 @@ open class Participant( @@ -318,6 +326,7 @@ open class Participant(
318 participantInfo = info 326 participantInfo = info
319 metadata = info.metadata 327 metadata = info.metadata
320 name = info.name 328 name = info.name
  329 + kind = Kind.fromProto(info.kind)
321 if (info.hasPermission()) { 330 if (info.hasPermission()) {
322 permissions = ParticipantPermission.fromProto(info.permission) 331 permissions = ParticipantPermission.fromProto(info.permission)
323 } 332 }
@@ -378,6 +387,32 @@ open class Participant( @@ -378,6 +387,32 @@ open class Participant(
378 permissions = null 387 permissions = null
379 connectionQuality = ConnectionQuality.UNKNOWN 388 connectionQuality = ConnectionQuality.UNKNOWN
380 } 389 }
  390 +
  391 + enum class Kind {
  392 + AGENT,
  393 + STANDARD,
  394 + INGRESS,
  395 + EGRESS,
  396 + SIP,
  397 + UNKNOWN,
  398 + ;
  399 +
  400 + companion object {
  401 + /**
  402 + * @suppress
  403 + */
  404 + fun fromProto(proto: LivekitModels.ParticipantInfo.Kind): Kind {
  405 + return when (proto) {
  406 + LivekitModels.ParticipantInfo.Kind.AGENT -> AGENT
  407 + LivekitModels.ParticipantInfo.Kind.STANDARD -> STANDARD
  408 + LivekitModels.ParticipantInfo.Kind.INGRESS -> INGRESS
  409 + LivekitModels.ParticipantInfo.Kind.EGRESS -> EGRESS
  410 + LivekitModels.ParticipantInfo.Kind.SIP -> SIP
  411 + LivekitModels.ParticipantInfo.Kind.UNRECOGNIZED -> UNKNOWN
  412 + }
  413 + }
  414 + }
  415 + }
381 } 416 }
382 417
383 /** 418 /**
@@ -56,6 +56,7 @@ class ParticipantTest { @@ -56,6 +56,7 @@ class ParticipantTest {
56 assertEquals(INFO.identity, participant.identity?.value) 56 assertEquals(INFO.identity, participant.identity?.value)
57 assertEquals(INFO.metadata, participant.metadata) 57 assertEquals(INFO.metadata, participant.metadata)
58 assertEquals(INFO.name, participant.name) 58 assertEquals(INFO.name, participant.name)
  59 + assertEquals(Participant.Kind.fromProto(INFO.kind), participant.kind)
59 assertEquals(INFO, participant.participantInfo) 60 assertEquals(INFO, participant.participantInfo)
60 } 61 }
61 62
@@ -169,6 +170,7 @@ class ParticipantTest { @@ -169,6 +170,7 @@ class ParticipantTest {
169 .setIdentity("identity") 170 .setIdentity("identity")
170 .setMetadata("metadata") 171 .setMetadata("metadata")
171 .setName("name") 172 .setName("name")
  173 + .setKind(LivekitModels.ParticipantInfo.Kind.STANDARD)
172 .build() 174 .build()
173 175
174 val TRACK_INFO = LivekitModels.TrackInfo.newBuilder() 176 val TRACK_INFO = LivekitModels.TrackInfo.newBuilder()
1 -Subproject commit 5f0256e10a8d35851a5502a83c00070934c980e3 1 +Subproject commit 90207b41e22999ef62acb8b1336d6cd5bbe369b3