Skip to content

Commit 5f7f5d9

Browse files
authored
Merge branch 'main' into dependabot/gradle/com.squareup.okhttp3-logging-interceptor-4.12.0
2 parents c8a4913 + 19bf96b commit 5f7f5d9

File tree

16 files changed

+138
-87
lines changed

16 files changed

+138
-87
lines changed

app/src/main/kotlin/io/getstream/whatsappclone/navigation/WhatsAppNavHost.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,12 @@ import androidx.navigation.compose.NavHost
2222

2323
@Composable
2424
fun WhatsAppNavHost(
25-
navHostController: NavHostController,
26-
composeNavigator: AppComposeNavigator
25+
navHostController: NavHostController
2726
) {
2827
NavHost(
2928
navController = navHostController,
3029
startDestination = WhatsAppScreens.Home.route
3130
) {
32-
whatsAppHomeNavigation(
33-
composeNavigator = composeNavigator
34-
)
31+
whatsAppHomeNavigation()
3532
}
3633
}

app/src/main/kotlin/io/getstream/whatsappclone/navigation/WhatsAppNavigation.kt

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package io.getstream.whatsappclone.navigation
1919
import androidx.compose.foundation.layout.padding
2020
import androidx.compose.material3.Scaffold
2121
import androidx.compose.ui.Modifier
22-
import androidx.hilt.navigation.compose.hiltViewModel
2322
import androidx.navigation.NavGraphBuilder
2423
import androidx.navigation.compose.composable
2524
import io.getstream.whatsappclone.calls.info.WhatsAppCallHistoryInfo
@@ -28,14 +27,11 @@ import io.getstream.whatsappclone.model.WhatsAppUser
2827
import io.getstream.whatsappclone.ui.WhatsAppTabPager
2928
import io.getstream.whatsappclone.ui.WhatsAppTopBar
3029

31-
fun NavGraphBuilder.whatsAppHomeNavigation(
32-
composeNavigator: AppComposeNavigator
33-
) {
30+
fun NavGraphBuilder.whatsAppHomeNavigation() {
3431
composable(route = WhatsAppScreens.Home.name) {
3532
Scaffold(topBar = { WhatsAppTopBar() }) { padding ->
3633
WhatsAppTabPager(
37-
modifier = Modifier.padding(padding),
38-
composeNavigator = composeNavigator
34+
modifier = Modifier.padding(padding)
3935
)
4036
}
4137
}
@@ -46,9 +42,8 @@ fun NavGraphBuilder.whatsAppHomeNavigation(
4642
) {
4743
val channelId = it.arguments?.getString("channelId") ?: return@composable
4844
WhatsAppMessages(
49-
channelId = channelId,
50-
composeNavigator = composeNavigator,
51-
whatsAppMessagesViewModel = hiltViewModel()
45+
channelId = channelId
46+
5247
)
5348
}
5449

@@ -60,8 +55,7 @@ fun NavGraphBuilder.whatsAppHomeNavigation(
6055
?: return@composable
6156

6257
WhatsAppCallHistoryInfo(
63-
whatsAppUser = whatsAppUser,
64-
composeNavigator = composeNavigator
58+
whatsAppUser = whatsAppUser
6559
)
6660
}
6761
}

app/src/main/kotlin/io/getstream/whatsappclone/navigation/WhatsAppPagerContent.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,14 @@ import android.app.Activity
2020
import androidx.activity.compose.BackHandler
2121
import androidx.compose.runtime.Composable
2222
import androidx.compose.ui.platform.LocalContext
23-
import androidx.hilt.navigation.compose.hiltViewModel
2423
import io.getstream.whatsappclone.calls.WhatsAppCalls
2524
import io.getstream.whatsappclone.camera.WhatsAppCamera
26-
import io.getstream.whatsappclone.chats.WhatsAppChannels
25+
import io.getstream.whatsappclone.chats.channels.WhatsAppChannels
2726
import io.getstream.whatsappclone.status.WhatsAppStatus
2827

2928
@Composable
3029
fun WhatsAppPagerContent(
31-
page: Int,
32-
composeNavigator: AppComposeNavigator
30+
page: Int
3331
) {
3432
val activity = (LocalContext.current as? Activity)
3533
BackHandler {
@@ -38,11 +36,8 @@ fun WhatsAppPagerContent(
3836

3937
when (page) {
4038
WhatsAppPage.Camera.index -> WhatsAppCamera()
41-
WhatsAppPage.Chats.index -> WhatsAppChannels(composeNavigator = composeNavigator)
39+
WhatsAppPage.Chats.index -> WhatsAppChannels()
4240
WhatsAppPage.Status.index -> WhatsAppStatus()
43-
WhatsAppPage.Calls.index -> WhatsAppCalls(
44-
composeNavigator = composeNavigator,
45-
whatsAppCallsViewModel = hiltViewModel()
46-
)
41+
WhatsAppPage.Calls.index -> WhatsAppCalls()
4742
}
4843
}

app/src/main/kotlin/io/getstream/whatsappclone/ui/WhatsAppCloneMain.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ fun WhatsAppCloneMain(
3737

3838
WhatsAppCloneBackground {
3939
WhatsAppNavHost(
40-
navHostController = navHostController,
41-
composeNavigator = composeNavigator
40+
navHostController = navHostController
4241
)
4342
}
4443
}

app/src/main/kotlin/io/getstream/whatsappclone/ui/WhatsAppTabPager.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,14 @@ import io.getstream.whatsappclone.designsystem.component.WhatsAppCloneBackground
3838
import io.getstream.whatsappclone.designsystem.icon.WhatsAppIcons
3939
import io.getstream.whatsappclone.designsystem.theme.WHITE200
4040
import io.getstream.whatsappclone.designsystem.theme.getTabPrimaryColor
41-
import io.getstream.whatsappclone.navigation.AppComposeNavigator
4241
import io.getstream.whatsappclone.navigation.TOP_LEVEL_DESTINATIONS
4342
import io.getstream.whatsappclone.navigation.WhatsAppPage
4443
import io.getstream.whatsappclone.navigation.WhatsAppPagerContent
4544
import kotlinx.coroutines.launch
4645

4746
@Composable
4847
fun WhatsAppTabPager(
49-
modifier: Modifier = Modifier,
50-
composeNavigator: AppComposeNavigator
48+
modifier: Modifier = Modifier
5149
) {
5250
val coroutineScope = rememberCoroutineScope()
5351
val pagerState = rememberPagerState()
@@ -110,8 +108,7 @@ fun WhatsAppTabPager(
110108
) { page ->
111109

112110
WhatsAppPagerContent(
113-
page = page,
114-
composeNavigator = composeNavigator
111+
page = page
115112
)
116113
}
117114
}

features/calls/src/main/kotlin/io/getstream/whatsappclone/calls/WhatsAppCalls.kt

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,29 @@ import androidx.compose.foundation.lazy.LazyColumn
2020
import androidx.compose.foundation.lazy.items
2121
import androidx.compose.runtime.Composable
2222
import androidx.compose.runtime.getValue
23+
import androidx.hilt.navigation.compose.hiltViewModel
2324
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2425
import io.getstream.whatsappclone.designsystem.component.WhatsAppError
2526
import io.getstream.whatsappclone.designsystem.component.WhatsAppLoadingColumn
26-
import io.getstream.whatsappclone.navigation.AppComposeNavigator
27-
import io.getstream.whatsappclone.navigation.WhatsAppScreens
27+
import io.getstream.whatsappclone.model.WhatsAppUser
2828
import io.getstream.whatsappclone.uistate.WhatsAppUserUiState
2929

3030
@Composable
3131
fun WhatsAppCalls(
32-
composeNavigator: AppComposeNavigator,
33-
whatsAppCallsViewModel: WhatsAppCallsViewModel
32+
whatsAppCallsViewModel: WhatsAppCallsViewModel = hiltViewModel()
3433
) {
3534
val whatsAppUsersUiState by whatsAppCallsViewModel.whatsAppUserState.collectAsStateWithLifecycle()
3635

3736
WhatsAppCallsScreen(
38-
composeNavigator = composeNavigator,
39-
whatsAppUsersUiState = whatsAppUsersUiState
37+
whatsAppUsersUiState = whatsAppUsersUiState,
38+
onHistoryItemClick = whatsAppCallsViewModel::navigateToCallInfo
4039
)
4140
}
4241

4342
@Composable
4443
private fun WhatsAppCallsScreen(
45-
composeNavigator: AppComposeNavigator,
46-
whatsAppUsersUiState: WhatsAppUserUiState
44+
whatsAppUsersUiState: WhatsAppUserUiState,
45+
onHistoryItemClick: (WhatsAppUser) -> Unit
4746
) {
4847
when (whatsAppUsersUiState) {
4948
WhatsAppUserUiState.Loading -> WhatsAppLoadingColumn()
@@ -55,7 +54,7 @@ private fun WhatsAppCallsScreen(
5554
key = { it.name }
5655
) {
5756
WhatsAppCallHistory(whatsAppUser = it) {
58-
composeNavigator.navigate(WhatsAppScreens.CallInfo.createRoute(whatsAppUser = it))
57+
onHistoryItemClick(it)
5958
}
6059
}
6160
}

features/calls/src/main/kotlin/io/getstream/whatsappclone/calls/WhatsAppCallsViewModel.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ import androidx.lifecycle.viewModelScope
2121
import dagger.hilt.android.lifecycle.HiltViewModel
2222
import io.getstream.whatsappclone.data.coroutines.WhileSubscribedOrRetained
2323
import io.getstream.whatsappclone.data.repository.CallHistoryRepository
24+
import io.getstream.whatsappclone.model.WhatsAppUser
25+
import io.getstream.whatsappclone.navigation.AppComposeNavigator
26+
import io.getstream.whatsappclone.navigation.WhatsAppScreens
2427
import io.getstream.whatsappclone.uistate.WhatsAppUserExtensive
2528
import io.getstream.whatsappclone.uistate.WhatsAppUserUiState
2629
import javax.inject.Inject
@@ -31,7 +34,8 @@ import kotlinx.coroutines.flow.stateIn
3134

3235
@HiltViewModel
3336
class WhatsAppCallsViewModel @Inject constructor(
34-
callHistoryRepository: CallHistoryRepository
37+
callHistoryRepository: CallHistoryRepository,
38+
private val composeNavigator: AppComposeNavigator
3539
) : ViewModel() {
3640

3741
val whatsAppUserState: StateFlow<WhatsAppUserUiState> =
@@ -52,4 +56,8 @@ class WhatsAppCallsViewModel @Inject constructor(
5256
started = WhileSubscribedOrRetained,
5357
initialValue = WhatsAppUserUiState.Loading
5458
)
59+
60+
fun navigateToCallInfo(whatsAppUser: WhatsAppUser) {
61+
composeNavigator.navigate(WhatsAppScreens.CallInfo.createRoute(whatsAppUser = whatsAppUser))
62+
}
5563
}

features/calls/src/main/kotlin/io/getstream/whatsappclone/calls/info/WhatsAppCallHistoryInfo.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ import androidx.compose.foundation.layout.padding
2121
import androidx.compose.material3.Scaffold
2222
import androidx.compose.runtime.Composable
2323
import androidx.compose.ui.Modifier
24+
import androidx.hilt.navigation.compose.hiltViewModel
2425
import io.getstream.whatsappclone.model.WhatsAppUser
25-
import io.getstream.whatsappclone.navigation.AppComposeNavigator
2626

2727
@Composable
2828
fun WhatsAppCallHistoryInfo(
2929
whatsAppUser: WhatsAppUser,
30-
composeNavigator: AppComposeNavigator
30+
whatsAppCallHistoryViewModel: WhatsAppCallHistoryViewModel = hiltViewModel()
3131
) {
3232
Scaffold(
3333
modifier = Modifier.fillMaxSize(),
34-
topBar = { WhatsAppCallHistoryTopBar(composeNavigator = composeNavigator) }
34+
topBar = { WhatsAppCallHistoryTopBar(onBackClick = whatsAppCallHistoryViewModel::navigateUp) }
3535
) {
3636
WhatsAppCallHistoryInfoBody(
3737
modifier = Modifier.padding(it),

features/calls/src/main/kotlin/io/getstream/whatsappclone/calls/info/WhatsAppCallHistoryInfoBody.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import java.util.Date
4141
fun WhatsAppCallHistoryInfoBody(
4242
modifier: Modifier,
4343
whatsAppUser: WhatsAppUser
44+
4445
) {
4546
ConstraintLayout(modifier = modifier.padding(12.dp)) {
4647
val (image, name, call, divider, location, date) = createRefs()

features/calls/src/main/kotlin/io/getstream/whatsappclone/calls/info/WhatsAppCallHistoryTopBar.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@ import androidx.compose.ui.unit.dp
3232
import io.getstream.whatsappclone.calls.R
3333
import io.getstream.whatsappclone.designsystem.icon.WhatsAppIcons
3434
import io.getstream.whatsappclone.designsystem.theme.WhatsAppCloneComposeTheme
35-
import io.getstream.whatsappclone.navigation.AppComposeNavigator
36-
import io.getstream.whatsappclone.navigation.WhatsAppCloneComposeNavigator
3735

3836
@Composable
3937
fun WhatsAppCallHistoryTopBar(
40-
composeNavigator: AppComposeNavigator
38+
onBackClick: () -> Unit
4139
) {
4240
TopAppBar(
4341
modifier = Modifier.fillMaxWidth(),
@@ -46,7 +44,7 @@ fun WhatsAppCallHistoryTopBar(
4644
modifier = Modifier
4745
.size(26.dp)
4846
.clickable {
49-
composeNavigator.navigateUp()
47+
onBackClick()
5048
},
5149
imageVector = WhatsAppIcons.ArrowBack,
5250
tint = MaterialTheme.colorScheme.tertiary,
@@ -85,9 +83,7 @@ fun WhatsAppCallHistoryTopBar(
8583
@Composable
8684
private fun WhatsAppCallHistoryTopBarPreview() {
8785
WhatsAppCloneComposeTheme {
88-
WhatsAppCallHistoryTopBar(
89-
composeNavigator = WhatsAppCloneComposeNavigator()
90-
)
86+
WhatsAppCallHistoryTopBar(onBackClick = {})
9187
}
9288
}
9389

@@ -96,7 +92,7 @@ private fun WhatsAppCallHistoryTopBarPreview() {
9692
private fun WhatsAppCallHistoryTopBarDarkPreview() {
9793
WhatsAppCloneComposeTheme(darkTheme = true) {
9894
WhatsAppCallHistoryTopBar(
99-
composeNavigator = WhatsAppCloneComposeNavigator()
95+
onBackClick = {}
10096
)
10197
}
10298
}

0 commit comments

Comments
 (0)