Skip to content

Commit f20791a

Browse files
authored
Merge pull request #111 from GetStream/complete/video-call
Bump Stream Video SDK 0.4.0 and complete video calling feature
2 parents 4ec00c0 + 4585e85 commit f20791a

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

features/video/src/main/kotlin/io/getstream/whatsappclone/video/WhatsAppVideoCall.kt

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.size
2222
import androidx.compose.material.Text
2323
import androidx.compose.material3.MaterialTheme
2424
import androidx.compose.runtime.Composable
25+
import androidx.compose.runtime.DisposableEffect
2526
import androidx.compose.runtime.LaunchedEffect
2627
import androidx.compose.runtime.getValue
2728
import androidx.compose.ui.Alignment
@@ -33,7 +34,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
3334
import io.getstream.video.android.compose.theme.VideoTheme
3435
import io.getstream.video.android.compose.ui.components.call.activecall.CallContent
3536
import io.getstream.video.android.compose.ui.components.call.controls.ControlActions
37+
import io.getstream.video.android.compose.ui.components.call.controls.actions.FlipCameraAction
3638
import io.getstream.video.android.compose.ui.components.call.controls.actions.LeaveCallAction
39+
import io.getstream.video.android.compose.ui.components.call.controls.actions.ToggleCameraAction
3740
import io.getstream.video.android.compose.ui.components.call.controls.actions.ToggleMicrophoneAction
3841
import io.getstream.video.android.core.Call
3942
import io.getstream.whatsappclone.designsystem.component.WhatsAppLoadingIndicator
@@ -71,12 +74,15 @@ fun WhatsAppVideoCallContent(
7174
videoCall: Boolean,
7275
onBackPressed: () -> Unit
7376
) {
77+
val isCameraEnabled by call.camera.isEnabled.collectAsStateWithLifecycle()
7478
val isMicrophoneEnabled by call.microphone.isEnabled.collectAsStateWithLifecycle()
7579

76-
LaunchedEffect(key1 = call.id) {
80+
DisposableEffect(key1 = call.id) {
7781
if (!videoCall) {
7882
call.camera.setEnabled(false)
7983
}
84+
85+
onDispose { call.leave() }
8086
}
8187

8288
VideoTheme {
@@ -85,7 +91,37 @@ fun WhatsAppVideoCallContent(
8591
onBackPressed = onBackPressed,
8692
controlsContent = {
8793
if (videoCall) {
88-
ControlActions(call = call)
94+
ControlActions(
95+
call = call,
96+
actions = listOf(
97+
{
98+
ToggleCameraAction(
99+
modifier = Modifier.size(52.dp),
100+
isCameraEnabled = isCameraEnabled,
101+
onCallAction = { call.camera.setEnabled(it.isEnabled) }
102+
)
103+
},
104+
{
105+
ToggleMicrophoneAction(
106+
modifier = Modifier.size(52.dp),
107+
isMicrophoneEnabled = isMicrophoneEnabled,
108+
onCallAction = { call.microphone.setEnabled(it.isEnabled) }
109+
)
110+
},
111+
{
112+
FlipCameraAction(
113+
modifier = Modifier.size(52.dp),
114+
onCallAction = { call.camera.flip() }
115+
)
116+
},
117+
{
118+
LeaveCallAction(
119+
modifier = Modifier.size(52.dp),
120+
onCallAction = { onBackPressed.invoke() }
121+
)
122+
}
123+
)
124+
)
89125
} else {
90126
ControlActions(
91127
call = call,

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[versions]
22
streamChatSDK = "6.0.5"
3-
streamVideoSDK = "0.3.4"
3+
streamVideoSDK = "0.4.0"
44
streamLog = "1.1.4"
55
sealedx = "1.0.1"
66
landscapist = "2.2.10"
@@ -26,7 +26,7 @@ androidxTest = "1.5.0"
2626
androidxTestExt = "1.1.3"
2727
androidxTracing = "1.1.0"
2828
androidxUiAutomator = "2.2.0"
29-
composeStableMarker = "1.0.1"
29+
composeStableMarker = "1.0.2"
3030
hilt = "2.48.1"
3131
hiltExt = "1.0.0"
3232
junit4 = "4.13.2"

0 commit comments

Comments
 (0)