Skip to content

Commit d0187d4

Browse files
committed
[ISSUE-36] - Moving Scafold to be internal component of each screen
1 parent 3ca6324 commit d0187d4

File tree

4 files changed

+64
-67
lines changed

4 files changed

+64
-67
lines changed

app/src/main/java/com/codandotv/streamplayerapp/MainActivity.kt

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,8 @@ package com.codandotv.streamplayerapp
33
import android.os.Bundle
44
import androidx.activity.ComponentActivity
55
import androidx.activity.compose.setContent
6-
7-
import androidx.compose.foundation.layout.Box
8-
import androidx.compose.foundation.layout.padding
9-
import androidx.compose.material3.ExperimentalMaterial3Api
10-
import androidx.compose.material3.Scaffold
116
import androidx.compose.runtime.Composable
12-
import androidx.compose.ui.Modifier
137
import androidx.navigation.compose.rememberNavController
14-
import com.codandotv.streamplayerapp.core_navigation.bottomnavigation.StreamPlayerBottomNavigation
15-
import com.codandotv.streamplayerapp.core_navigation.helper.currentRoute
16-
import com.codandotv.streamplayerapp.core_navigation.routes.SplashRoutes
178
import com.codandotv.streamplayerapp.core_shared_ui.theme.StreamPlayerTheme
189
import com.codandotv.streamplayerapp.navigation.NavigationGraph
1910

@@ -26,22 +17,10 @@ class MainActivity : ComponentActivity() {
2617
}
2718
}
2819

29-
@OptIn(ExperimentalMaterial3Api::class)
3020
@Composable
3121
fun StreamPlayerApp() {
3222
StreamPlayerTheme {
3323
val navController = rememberNavController()
34-
35-
Scaffold(
36-
bottomBar = {
37-
if (currentRoute(navController = navController) != SplashRoutes.Splash) {
38-
StreamPlayerBottomNavigation(navController = navController)
39-
}
40-
}
41-
) { innerPadding ->
42-
Box(Modifier.padding(innerPadding)) {
43-
NavigationGraph(navController = navController)
44-
}
45-
}
24+
NavigationGraph(navController = navController)
4625
}
4726
}
Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package com.codandotv.streamplayerapp.navigation
22

3-
import androidx.compose.foundation.layout.Column
3+
import android.annotation.SuppressLint
4+
import androidx.compose.material3.ExperimentalMaterial3Api
5+
import androidx.compose.material3.Scaffold
46
import androidx.compose.material3.Text
57
import androidx.compose.runtime.Composable
68
import androidx.compose.ui.graphics.Color
9+
import androidx.navigation.NavController
710
import androidx.navigation.NavGraphBuilder
811
import androidx.navigation.NavHostController
912
import androidx.navigation.compose.NavHost
1013
import androidx.navigation.compose.composable
14+
import com.codandotv.streamplayerapp.core_navigation.bottomnavigation.StreamPlayerBottomNavigation
1115
import com.codandotv.streamplayerapp.core_navigation.routes.BottomNavRoutes
1216
import com.codandotv.streamplayerapp.core_navigation.routes.SplashRoutes
1317
import com.codandotv.streamplayerapp.feature_list_streams.presentation.navigation.listStreamsNavGraph
@@ -18,20 +22,28 @@ fun NavigationGraph(navController: NavHostController) {
1822
NavHost(navController = navController, startDestination = SplashRoutes.Splash) {
1923
splashNavGraph(navController = navController)
2024
listStreamsNavGraph(navController = navController)
21-
temporaryFun(BottomNavRoutes.GAMES)
22-
temporaryFun(BottomNavRoutes.NEWS)
23-
temporaryFun(BottomNavRoutes.SCENES)
24-
temporaryFun(BottomNavRoutes.DOWNLOADS)
25+
temporaryFun(BottomNavRoutes.GAMES, navController)
26+
temporaryFun(BottomNavRoutes.NEWS, navController)
27+
temporaryFun(BottomNavRoutes.SCENES, navController)
28+
temporaryFun(BottomNavRoutes.DOWNLOADS, navController)
2529
}
2630
}
2731

28-
fun NavGraphBuilder.temporaryFun(route: String) {
32+
fun NavGraphBuilder.temporaryFun(route: String, navController: NavController) {
2933
composable(route = route) {
30-
example(route)
34+
example(navController = navController, route)
3135
}
3236
}
3337

38+
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
39+
@OptIn(ExperimentalMaterial3Api::class)
3440
@Composable
35-
fun example(route: String) {
36-
Text(text = route, color = Color.White)
41+
fun example(navController: NavController, route: String) {
42+
Scaffold(
43+
bottomBar = {
44+
StreamPlayerBottomNavigation(navController = navController)
45+
}
46+
) { _ ->
47+
Text(text = route, color = Color.White)
48+
}
3749
}

feature-list-streams/src/main/java/com/codandotv/streamplayerapp/feature_list_streams/presentation/navigation/ListStreamsNavigation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ import com.codandotv.streamplayerapp.feature_list_streams.presentation.screens.L
88

99
fun NavGraphBuilder.listStreamsNavGraph(navController: NavHostController) {
1010
composable(BottomNavRoutes.HOME) {
11-
ListStreamsScreen()
11+
ListStreamsScreen(navController)
1212
}
1313
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.codandotv.streamplayerapp.feature_list_streams.presentation.screens
22

3+
import android.annotation.SuppressLint
34
import androidx.compose.foundation.ScrollState
45
import androidx.compose.foundation.background
56
import androidx.compose.foundation.layout.Box
@@ -9,59 +10,64 @@ import androidx.compose.foundation.layout.fillMaxSize
910
import androidx.compose.foundation.layout.height
1011
import androidx.compose.foundation.verticalScroll
1112
import androidx.compose.material3.CircularProgressIndicator
13+
import androidx.compose.material3.ExperimentalMaterial3Api
1214
import androidx.compose.material3.MaterialTheme
15+
import androidx.compose.material3.Scaffold
1316
import androidx.compose.runtime.Composable
1417
import androidx.compose.runtime.remember
1518
import androidx.compose.ui.Alignment
1619
import androidx.compose.ui.Modifier
1720
import androidx.compose.ui.unit.dp
18-
import com.codandotv.streamplayerapp.core_shared_ui.theme.ThemePreview
19-
import com.codandotv.streamplayerapp.core_shared_ui.theme.ThemePreviews
21+
import androidx.navigation.NavController
22+
import com.codandotv.streamplayerapp.core_navigation.bottomnavigation.StreamPlayerBottomNavigation
2023
import com.codandotv.streamplayerapp.feature_list_streams.presentation.widgets.StreamsCarousel
2124
import org.koin.androidx.compose.koinViewModel
2225

26+
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
27+
@OptIn(ExperimentalMaterial3Api::class)
2328
@Composable
24-
fun ListStreamsScreen(viewModel: ListStreamViewModel = koinViewModel()) {
29+
fun ListStreamsScreen(
30+
navController: NavController,
31+
viewModel: ListStreamViewModel = koinViewModel()
32+
) {
2533

2634
val uiState = remember {
2735
viewModel.uiState
2836
}
2937

30-
Box(
31-
modifier = Modifier
32-
.fillMaxSize()
33-
.background(MaterialTheme.colorScheme.background)
34-
) {
35-
if (uiState.value.isLoading) {
36-
CircularProgressIndicator(
37-
modifier = Modifier.align(
38-
Alignment.Center
39-
)
40-
)
41-
} else {
42-
Column(
43-
modifier = Modifier
44-
.fillMaxSize()
45-
.align(Alignment.TopCenter)
46-
.verticalScroll(ScrollState(0))
47-
) {
48-
uiState.value.carousels.forEach {
49-
StreamsCarousel(
50-
title = it.categoryName,
51-
contentList = it.cards
38+
Scaffold(
39+
bottomBar = {
40+
StreamPlayerBottomNavigation(navController = navController)
41+
}
42+
) { _ ->
43+
Box(
44+
modifier = Modifier
45+
.fillMaxSize()
46+
.background(MaterialTheme.colorScheme.background)
47+
) {
48+
if (uiState.value.isLoading) {
49+
CircularProgressIndicator(
50+
modifier = Modifier.align(
51+
Alignment.Center
5252
)
53-
}
53+
)
54+
} else {
55+
Column(
56+
modifier = Modifier
57+
.fillMaxSize()
58+
.align(Alignment.TopCenter)
59+
.verticalScroll(ScrollState(0))
60+
) {
61+
uiState.value.carousels.forEach {
62+
StreamsCarousel(
63+
title = it.categoryName,
64+
contentList = it.cards
65+
)
66+
}
5467

55-
Spacer(modifier = Modifier.height(12.dp))
68+
Spacer(modifier = Modifier.height(12.dp))
69+
}
5670
}
5771
}
5872
}
59-
}
60-
61-
@Composable
62-
@ThemePreviews
63-
fun ListStreamsScreenPreview() {
64-
ThemePreview {
65-
ListStreamsScreen()
66-
}
6773
}

0 commit comments

Comments
 (0)