Skip to content

Commit 9ef795c

Browse files
committed
Implement join a call
1 parent 4e4e9c0 commit 9ef795c

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

features/chats/src/main/kotlin/io/getstream/whatsappclone/chats/messages/WhatsAppMessageTopBar.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import androidx.compose.ui.Modifier
3232
import androidx.compose.ui.draw.clip
3333
import androidx.compose.ui.tooling.preview.Preview
3434
import androidx.compose.ui.unit.dp
35+
import androidx.hilt.navigation.compose.hiltViewModel
3536
import com.skydoves.landscapist.animation.crossfade.CrossfadePlugin
3637
import com.skydoves.landscapist.components.rememberImageComponent
3738
import com.skydoves.landscapist.glide.GlideImage
@@ -42,6 +43,8 @@ import io.getstream.whatsappclone.uistate.WhatsAppMessageUiState
4243

4344
@Composable
4445
fun WhatsAppMessageTopBar(
46+
channelId: String,
47+
whatsAppMessagesViewModel: WhatsAppMessagesViewModel = hiltViewModel(),
4548
messageUiState: WhatsAppMessageUiState,
4649
onBackClick: () -> Unit
4750
) {
@@ -64,7 +67,11 @@ fun WhatsAppMessageTopBar(
6467
},
6568
actions = {
6669
Icon(
67-
modifier = Modifier.size(26.dp),
70+
modifier = Modifier
71+
.size(26.dp)
72+
.clickable {
73+
whatsAppMessagesViewModel.navigateToVideoCall(channelId = channelId)
74+
},
6875
imageVector = WhatsAppIcons.Video,
6976
tint = MaterialTheme.colorScheme.tertiary,
7077
contentDescription = null
@@ -131,6 +138,7 @@ private fun WhatsAppMessageUserInfo(
131138
private fun WhatsAppTopBarPreview() {
132139
WhatsAppCloneComposeTheme {
133140
WhatsAppMessageTopBar(
141+
channelId = "",
134142
messageUiState = WhatsAppMessageUiState.Loading,
135143
onBackClick = {}
136144
)
@@ -142,6 +150,7 @@ private fun WhatsAppTopBarPreview() {
142150
private fun WhatsAppTopBarDarkPreview() {
143151
WhatsAppCloneComposeTheme(darkTheme = true) {
144152
WhatsAppMessageTopBar(
153+
channelId = "",
145154
messageUiState = WhatsAppMessageUiState.Loading,
146155
onBackClick = {}
147156
)

features/chats/src/main/kotlin/io/getstream/whatsappclone/chats/messages/WhatsAppMessages.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ fun WhatsAppMessages(
3636
WhatsAppChatTheme {
3737
Column(Modifier.fillMaxSize()) {
3838
WhatsAppMessageTopBar(
39+
channelId = channelId,
3940
messageUiState = messageUiState,
4041
onBackClick = { whatsAppMessagesViewModel.handleEvents(WhatsAppMessageEvent.NavigateUp) }
4142
)

features/chats/src/main/kotlin/io/getstream/whatsappclone/chats/messages/WhatsAppMessagesViewModel.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import io.getstream.chat.android.client.ChatClient
2424
import io.getstream.chat.android.client.utils.onError
2525
import io.getstream.chat.android.client.utils.onSuccess
2626
import io.getstream.whatsappclone.navigation.AppComposeNavigator
27+
import io.getstream.whatsappclone.navigation.WhatsAppScreens
2728
import io.getstream.whatsappclone.uistate.WhatsAppMessageUiState
2829
import javax.inject.Inject
2930
import kotlinx.coroutines.flow.MutableStateFlow
@@ -54,6 +55,10 @@ class WhatsAppMessagesViewModel @Inject constructor(
5455
}
5556
}
5657

58+
fun navigateToVideoCall(channelId: String) {
59+
composeNavigator.navigate(WhatsAppScreens.VideoCall.createRoute(channelId))
60+
}
61+
5762
private fun fetchChannel(channelId: String) {
5863
viewModelScope.launch {
5964
val result = chatClient.channel(channelId).watch().await()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ fun WhatsAppVideoCall(
4242
val uiState by viewModel.videoUiSate.collectAsStateWithLifecycle()
4343

4444
LaunchedEffect(key1 = id) {
45-
viewModel.joinCall(type = "default", id = id)
45+
viewModel.joinCall(type = "default", id = id.replace(":", ""))
4646
}
4747

4848
when (uiState) {

0 commit comments

Comments
 (0)