@@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.fillMaxSize
99import androidx.compose.foundation.layout.padding
1010import androidx.compose.material.icons.Icons
1111import androidx.compose.material.icons.automirrored.filled.List
12+ import androidx.compose.material.icons.filled.FormatColorFill
1213import androidx.compose.material.icons.filled.Home
1314import androidx.compose.material.icons.filled.Info
1415import androidx.compose.material.icons.filled.Settings
@@ -43,6 +44,8 @@ import com.pira.gnetp.ui.home.HomeViewModel
4344import com.pira.gnetp.ui.hotspot.HotspotScreen
4445import com.pira.gnetp.ui.logs.LogsScreen
4546import com.pira.gnetp.ui.settings.SettingsScreen
47+ import com.pira.gnetp.ui.settings.ThemeSettingsScreen
48+ import com.pira.gnetp.ui.settings.ProxySettingsScreen
4649import com.pira.gnetp.ui.theme.GNetTheme
4750import com.pira.gnetp.ui.theme.ThemeManager
4851import com.pira.gnetp.ui.theme.ThemeSettings
@@ -104,11 +107,14 @@ fun MainNavHost(
104107 val navBackStackEntry by navController.currentBackStackEntryAsState()
105108 val currentDestination = navBackStackEntry?.destination
106109 val isAboutScreen = currentDestination?.route == Screen .About .route
110+ val isProxySettingsScreen = currentDestination?.route == Screen .ProxySettings .route
111+ val isThemeSettingsScreen = currentDestination?.route == Screen .ThemeSettings .route
112+ val shouldHideBottomBar = isAboutScreen || isProxySettingsScreen || isThemeSettingsScreen
107113
108114 Scaffold (
109115 topBar = {},
110116 bottomBar = {
111- if (! isAboutScreen ) {
117+ if (! shouldHideBottomBar ) {
112118 BottomNavigationBar (navController)
113119 }
114120 }
@@ -121,8 +127,8 @@ fun MainNavHost(
121127 composable(Screen .Home .route) {
122128 HomeScreen (
123129 uiState = homeUiState,
124- onStartProxy = { homeViewModel.startProxy () },
125- onStopProxy = { homeViewModel.stopProxy () },
130+ onStartBothProxies = { homeViewModel.startBothProxies () },
131+ onStopBothProxies = { homeViewModel.stopBothProxies () },
126132 onNavigateToSettings = { navController.navigate(Screen .Settings .route) },
127133 onNavigateToHotspot = { navController.navigate(Screen .Hotspot .route) },
128134 onNavigateToLogs = { navController.navigate(Screen .Logs .route) },
@@ -135,6 +141,8 @@ fun MainNavHost(
135141 SettingsScreen (
136142 onNavigateBack = { navController.popBackStack() },
137143 onNavigateToAbout = { navController.navigate(Screen .About .route) },
144+ onNavigateToProxySettings = { navController.navigate(Screen .ProxySettings .route) },
145+ onNavigateToThemeSettings = { navController.navigate(Screen .ThemeSettings .route) },
138146 onThemeSettingsChanged = onThemeSettingsChanged
139147 )
140148 }
@@ -158,6 +166,19 @@ fun MainNavHost(
158166 onNavigateBack = { navController.popBackStack() }
159167 )
160168 }
169+
170+ composable(Screen .ProxySettings .route) {
171+ ProxySettingsScreen (
172+ onNavigateBack = { navController.popBackStack() }
173+ )
174+ }
175+
176+ composable(Screen .ThemeSettings .route) {
177+ ThemeSettingsScreen (
178+ onNavigateBack = { navController.popBackStack() },
179+ onThemeSettingsChanged = onThemeSettingsChanged
180+ )
181+ }
161182 }
162183 }
163184}
@@ -185,6 +206,8 @@ fun BottomNavigationBar(navController: NavHostController) {
185206 Screen .Hotspot -> Icons .Default .Info
186207 Screen .Logs -> Icons .AutoMirrored .Filled .List
187208 Screen .About -> Icons .Default .Info
209+ Screen .ProxySettings -> Icons .Default .Settings
210+ Screen .ThemeSettings -> Icons .Default .FormatColorFill
188211 },
189212 contentDescription = null
190213 )
0 commit comments