Skip to content

Commit 13373d1

Browse files
Merge pull request #37 from CodandoTV/feature/36-scafold-decoupling
[ISSUE-36] - Desacoplar o Scafold para ser por screen
2 parents 3ca6324 + 5b83b43 commit 13373d1

File tree

4 files changed

+67
-62
lines changed

4 files changed

+67
-62
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,72 @@ 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
21+
import androidx.navigation.NavController
22+
import androidx.navigation.compose.rememberNavController
23+
import com.codandotv.streamplayerapp.core_navigation.bottomnavigation.StreamPlayerBottomNavigation
1924
import com.codandotv.streamplayerapp.core_shared_ui.theme.ThemePreviews
2025
import com.codandotv.streamplayerapp.feature_list_streams.presentation.widgets.StreamsCarousel
2126
import org.koin.androidx.compose.koinViewModel
2227

28+
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
29+
@OptIn(ExperimentalMaterial3Api::class)
2330
@Composable
24-
fun ListStreamsScreen(viewModel: ListStreamViewModel = koinViewModel()) {
31+
fun ListStreamsScreen(
32+
navController: NavController,
33+
viewModel: ListStreamViewModel = koinViewModel()
34+
) {
2535

2636
val uiState = remember {
2737
viewModel.uiState
2838
}
2939

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
40+
Scaffold(
41+
bottomBar = {
42+
StreamPlayerBottomNavigation(navController = navController)
43+
}
44+
) { _ ->
45+
Box(
46+
modifier = Modifier
47+
.fillMaxSize()
48+
.background(MaterialTheme.colorScheme.background)
49+
) {
50+
if (uiState.value.isLoading) {
51+
CircularProgressIndicator(
52+
modifier = Modifier.align(
53+
Alignment.Center
5254
)
53-
}
55+
)
56+
} else {
57+
Column(
58+
modifier = Modifier
59+
.fillMaxSize()
60+
.align(Alignment.TopCenter)
61+
.verticalScroll(ScrollState(0))
62+
) {
63+
uiState.value.carousels.forEach {
64+
StreamsCarousel(
65+
title = it.categoryName,
66+
contentList = it.cards
67+
)
68+
}
5469

55-
Spacer(modifier = Modifier.height(12.dp))
70+
Spacer(modifier = Modifier.height(12.dp))
71+
}
5672
}
5773
}
5874
}
5975
}
6076

61-
@Composable
6277
@ThemePreviews
78+
@Composable
6379
fun ListStreamsScreenPreview() {
64-
ThemePreview {
65-
ListStreamsScreen()
66-
}
80+
ListStreamsScreen(navController = rememberNavController())
6781
}

0 commit comments

Comments
 (0)