Skip to content

Commit 2016186

Browse files
authored
Add Video Analytics in call-join flow (#1716)
* update open api generated models * internal: add call leave reason * internal: Add analytics * internal: renaming * internal: spotless * chore: fix tests, remove logs * chore: fix retry exception * chore: fix binary compatibility * chore: add capping to analytics file * chore: use isolate coroutine scope to interact with data source * chore: renaming * chore: renaming * chore: fix paparazzi tests * chore: write analytics tests * chore: fix tests * chore: Enable Audio Analytics * chore: update audio analytics unit-test * chore: update PeerConnectionAnalyticsState * chore: add temp commit * fix: fix incorrect events * fix: fix incorrect events in pc and video * fix: fix pc publish analytics * fix: remove persistance and audio analytics, update tests fix: remove persistance and audio analytics * fix: fix error code and reason * fix: fix tests * fix: remove comments * fix: spotless * fix: Correctly send sfu ws terminal * fix: spotless * fix: spotless * fix: fix failed permission * fix: fix failed permission * fix: add missing class * fix: run only if user id is not null * fix: fix tests
1 parent 168c664 commit 2016186

50 files changed

Lines changed: 4171 additions & 28 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

demo-app/src/main/kotlin/io/getstream/video/android/ui/call/CallScreen.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,9 @@ import io.getstream.video.android.compose.ui.components.call.renderer.RegularVid
115115
import io.getstream.video.android.compose.ui.components.call.renderer.copy
116116
import io.getstream.video.android.compose.ui.components.video.VideoScalingType
117117
import io.getstream.video.android.core.Call
118+
import io.getstream.video.android.core.CallLeaveReason
118119
import io.getstream.video.android.core.RealtimeConnection
120+
import io.getstream.video.android.core.UserActionCause
119121
import io.getstream.video.android.core.call.state.ChooseLayout
120122
import io.getstream.video.android.core.model.PreferredVideoResolution
121123
import io.getstream.video.android.core.pip.PictureInPictureConfiguration
@@ -371,7 +373,12 @@ fun CallScreen(
371373
LeaveCallAction(
372374
modifier = Modifier.testTag("Stream_HangUpButton"),
373375
) {
374-
call.leave()
376+
// for call join analytics purpose
377+
call.leave(
378+
CallLeaveReason.UserAction(
379+
UserActionCause.CANCELLED_BY_SELF,
380+
),
381+
)
375382
}
376383
},
377384
)

stream-video-android-core/api/stream-video-android-core.api

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2457,37 +2457,38 @@ public final class io/getstream/android/video/generated/models/ChatPreferencesRe
24572457

24582458
public final class io/getstream/android/video/generated/models/ClientEvent {
24592459
public fun <init> ()V
2460-
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V
2461-
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
2460+
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V
2461+
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
24622462
public final fun component1 ()Ljava/lang/String;
24632463
public final fun component10 ()Ljava/lang/String;
24642464
public final fun component11 ()Ljava/lang/String;
2465-
public final fun component12 ()Lorg/threeten/bp/OffsetDateTime;
2466-
public final fun component13 ()Ljava/lang/Integer;
2467-
public final fun component14 ()Ljava/lang/String;
2465+
public final fun component12 ()Ljava/lang/String;
2466+
public final fun component13 ()Lorg/threeten/bp/OffsetDateTime;
2467+
public final fun component14 ()Ljava/lang/Integer;
24682468
public final fun component15 ()Ljava/lang/String;
24692469
public final fun component16 ()Ljava/lang/String;
24702470
public final fun component17 ()Ljava/lang/String;
24712471
public final fun component18 ()Ljava/lang/String;
24722472
public final fun component19 ()Ljava/lang/String;
24732473
public final fun component2 ()Ljava/lang/String;
24742474
public final fun component20 ()Ljava/lang/String;
2475-
public final fun component21 ()Lorg/threeten/bp/OffsetDateTime;
2476-
public final fun component22 ()Ljava/lang/String;
2475+
public final fun component21 ()Ljava/lang/String;
2476+
public final fun component22 ()Lorg/threeten/bp/OffsetDateTime;
24772477
public final fun component23 ()Ljava/lang/String;
24782478
public final fun component24 ()Ljava/lang/String;
24792479
public final fun component25 ()Ljava/lang/String;
24802480
public final fun component26 ()Ljava/lang/String;
2481-
public final fun component27 ()Ljava/lang/Boolean;
2481+
public final fun component27 ()Ljava/lang/String;
2482+
public final fun component28 ()Ljava/lang/Boolean;
24822483
public final fun component3 ()Ljava/lang/String;
2483-
public final fun component4 ()Ljava/lang/Integer;
2484-
public final fun component5 ()Ljava/lang/String;
2484+
public final fun component4 ()Ljava/lang/String;
2485+
public final fun component5 ()Ljava/lang/Integer;
24852486
public final fun component6 ()Ljava/lang/String;
24862487
public final fun component7 ()Ljava/lang/String;
24872488
public final fun component8 ()Ljava/lang/String;
24882489
public final fun component9 ()Ljava/lang/String;
2489-
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Lio/getstream/android/video/generated/models/ClientEvent;
2490-
public static synthetic fun copy$default (Lio/getstream/android/video/generated/models/ClientEvent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lio/getstream/android/video/generated/models/ClientEvent;
2490+
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Lio/getstream/android/video/generated/models/ClientEvent;
2491+
public static synthetic fun copy$default (Lio/getstream/android/video/generated/models/ClientEvent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lio/getstream/android/video/generated/models/ClientEvent;
24912492
public fun equals (Ljava/lang/Object;)Z
24922493
public final fun getCallSessionId ()Ljava/lang/String;
24932494
public final fun getCameraPermissionStatus ()Ljava/lang/String;
@@ -2497,6 +2498,7 @@ public final class io/getstream/android/video/generated/models/ClientEvent {
24972498
public final fun getIceState ()Ljava/lang/String;
24982499
public final fun getId ()Ljava/lang/String;
24992500
public final fun getJoinAttemptId ()Ljava/lang/String;
2501+
public final fun getJoinReason ()Ljava/lang/String;
25002502
public final fun getMicrophonePermissionStatus ()Ljava/lang/String;
25012503
public final fun getOutcome ()Ljava/lang/String;
25022504
public final fun getPeerConnection ()Ljava/lang/String;

stream-video-android-core/src/main/kotlin/io/getstream/android/video/generated/models/ClientEvent.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ data class ClientEvent (
4848
@Json(name = "coordinator_connect_id")
4949
val coordinatorConnectId: kotlin.String? = null,
5050

51+
@Json(name = "join_reason")
52+
val joinReason: kotlin.String? = null,
53+
5154
@Json(name = "elapsed_time")
5255
val elapsedTime: kotlin.Int? = null,
5356

@@ -133,6 +136,7 @@ data class ClientEvent (
133136
appendIfNotNull("stageId", stageId)
134137
appendIfNotNull("userSessionId", userSessionId)
135138
appendIfNotNull("joinAttemptId", joinAttemptId)
139+
appendIfNotNull("joinReason", joinReason)
136140
appendIfNotNull("coordinatorConnectId", coordinatorConnectId)
137141

138142
appendIfNotNull("userId", userId)

0 commit comments

Comments
 (0)