Skip to content

Commit

Permalink
Merge pull request #4 from jarroyoesp/feature/network
Browse files Browse the repository at this point in the history
TASK- Network&Detail: Added:
  • Loading branch information
jarroyoesp committed Mar 10, 2023
2 parents c31d55f + 550531e commit a1f85ac
Show file tree
Hide file tree
Showing 67 changed files with 3,373 additions and 181 deletions.
117 changes: 117 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/codeStyles/codeStyleConfig.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ android {
dependencies {
// Modules
implementation projects.modules.featureHome
implementation projects.modules.libraryNavigation
implementation projects.modules.libraryNetwork
implementation projects.modules.libraryUi

implementation libs.androidx.core.ktx
Expand Down
62 changes: 47 additions & 15 deletions app/src/main/java/com/jarroyo/composeapp/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,69 @@ import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier
import androidx.navigation.compose.rememberNavController
import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi
import com.google.accompanist.navigation.material.ModalBottomSheetLayout
import com.google.accompanist.navigation.material.rememberBottomSheetNavigator
import com.jarroyo.composeapp.ui.navigation.NavGraph
import com.jarroyo.composeapp.ui.theme.ComposeAppTheme
import com.jarroyo.library.navigation.api.navigator.AppNavigator
import com.jarroyo.library.navigation.api.navigator.NavigatorEvent
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import timber.log.Timber
import javax.inject.Inject

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterialNavigationApi::class)
@Inject
lateinit var appNavigator: AppNavigator

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ComposeAppTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background,
) {
val bottomSheetNavigator = rememberBottomSheetNavigator()
val navController = rememberNavController(bottomSheetNavigator)
ModalBottomSheetLayout(
bottomSheetNavigator = bottomSheetNavigator,
sheetBackgroundColor = MaterialTheme.colorScheme.background,
) {
NavGraph(navController = navController)
}
}
MainScreen(appNavigator)
}
}
}
}

@OptIn(ExperimentalMaterialNavigationApi::class)
@Composable
private fun MainScreen(
appNavigator: AppNavigator,
) {
val bottomSheetNavigator = rememberBottomSheetNavigator()
val navHostController = rememberNavController(bottomSheetNavigator)
LaunchedEffect(navHostController) {
appNavigator.destinations.onEach { event ->
Timber.d("backQueue = ${navHostController.backQueue.map { "route = ${it.destination.route}" }}")
when (event) {
is NavigatorEvent.Directions -> navHostController.navigate(
event.destination,
event.builder,
).also { Timber.d("Navigate to ${event.destination}") }
is NavigatorEvent.HandleDeepLink -> TODO()
is NavigatorEvent.NavigateBack -> TODO()
is NavigatorEvent.NavigateUp -> TODO()
}
}.launchIn(this)
}
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background,
) {
ModalBottomSheetLayout(
bottomSheetNavigator = bottomSheetNavigator,
sheetBackgroundColor = MaterialTheme.colorScheme.background,
) {
NavGraph(navController = navHostController)
}
}
}
9 changes: 9 additions & 0 deletions app/src/main/java/com/jarroyo/composeapp/di/AppModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.jarroyo.composeapp.di

import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
object AppModule
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import com.jarroyo.feature.home.HomeScreen
import com.jarroyo.feature.home.ui.HomeScreen
import com.jarroyo.feature.home.ui.rocketdetail.RocketDetailScreen
import com.jarroyo.library.navigation.api.destination.Screens

@Composable
fun NavGraph(navController: NavHostController) {
Expand All @@ -19,6 +21,8 @@ fun NavGraph(navController: NavHostController) {
}

fun NavGraphBuilder.addComposableDestinations() {
val destination = Screens.HomeScreen.route
composable(destination) { HomeScreen() }
val homeDestination = Screens.HomeScreen.route
val rocketDetailDestination = Screens.RocketDetailScreen.route
composable(homeDestination) { HomeScreen() }
composable(rocketDetailDestination) { RocketDetailScreen() }
}

This file was deleted.

Loading

0 comments on commit a1f85ac

Please sign in to comment.