diff --git a/app/src/main/java/com/mapgie/goflo/MainActivity.kt b/app/src/main/java/com/mapgie/goflo/MainActivity.kt index dcf83f2..ff1f9c5 100644 --- a/app/src/main/java/com/mapgie/goflo/MainActivity.kt +++ b/app/src/main/java/com/mapgie/goflo/MainActivity.kt @@ -15,7 +15,7 @@ import androidx.compose.material.icons.filled.BarChart import androidx.compose.material.icons.filled.Dashboard import androidx.compose.material.icons.filled.DateRange import androidx.compose.material.icons.filled.Home -import androidx.compose.material.icons.outlined.Tune +import androidx.compose.material.icons.filled.Settings import android.graphics.Color as AndroidColor import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon @@ -238,7 +238,7 @@ private fun MainNavHost(app: GoFloApplication, currentTheme: AppTheme, pendingCa NavigationBar { NavigationBarItem( colors = navItemColors, - selected = currentRoute == Screen.Home.route || currentRoute == Screen.Settings.route, + selected = currentRoute == Screen.Home.route || currentRoute == Screen.Manage.route, onClick = { navController.navigate(Screen.Home.route) { popUpTo(navController.graph.findStartDestination().id) { saveState = true } launchSingleTop = true; restoreState = true @@ -280,13 +280,13 @@ private fun MainNavHost(app: GoFloApplication, currentTheme: AppTheme, pendingCa ) NavigationBarItem( colors = navItemColors, - selected = currentRoute == Screen.Manage.route, - onClick = { navController.navigate(Screen.Manage.route) { + selected = currentRoute == Screen.Settings.route, + onClick = { navController.navigate(Screen.Settings.route) { popUpTo(navController.graph.findStartDestination().id) { saveState = true } launchSingleTop = true; restoreState = true } }, - icon = { Icon(Icons.Outlined.Tune, contentDescription = "Manage") }, - label = { Text("Manage") } + icon = { Icon(Icons.Default.Settings, contentDescription = "Settings") }, + label = { Text("Settings") } ) } } @@ -372,7 +372,8 @@ private fun MainNavHost(app: GoFloApplication, currentTheme: AppTheme, pendingCa }, onNavigateToLicenses = { navController.navigate(Screen.Licenses.route) }, onNavigateToPrivacy = { navController.navigate(Screen.Privacy.route) }, - onNavigateToManageCategories = { navController.navigate(Screen.ManageCategories.route) } + onNavigateToManageCategories = { navController.navigate(Screen.ManageCategories.route) }, + onNavigateToManage = { navController.navigate(Screen.Manage.route) } ) } diff --git a/app/src/main/java/com/mapgie/goflo/ui/screens/home/HomeScreen.kt b/app/src/main/java/com/mapgie/goflo/ui/screens/home/HomeScreen.kt index 2c16f6e..814ba99 100644 --- a/app/src/main/java/com/mapgie/goflo/ui/screens/home/HomeScreen.kt +++ b/app/src/main/java/com/mapgie/goflo/ui/screens/home/HomeScreen.kt @@ -27,7 +27,7 @@ import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.DateRange import androidx.compose.material.icons.outlined.HelpOutline -import androidx.compose.material.icons.filled.Settings +import androidx.compose.material.icons.outlined.Tune import androidx.compose.material3.AlertDialog import androidx.compose.material3.IconButton import androidx.compose.material3.Card @@ -192,10 +192,10 @@ fun HomeScreen( } }, actions = { - IconButton(onClick = { onNavigate(Screen.Settings.route) }) { + IconButton(onClick = { onNavigate(Screen.Manage.route) }) { Icon( - imageVector = Icons.Default.Settings, - contentDescription = "Settings", + imageVector = Icons.Outlined.Tune, + contentDescription = "Manage", tint = MaterialTheme.colorScheme.onPrimaryContainer ) } diff --git a/app/src/main/java/com/mapgie/goflo/ui/screens/settings/SettingsScreen.kt b/app/src/main/java/com/mapgie/goflo/ui/screens/settings/SettingsScreen.kt index 335e198..83ec78c 100644 --- a/app/src/main/java/com/mapgie/goflo/ui/screens/settings/SettingsScreen.kt +++ b/app/src/main/java/com/mapgie/goflo/ui/screens/settings/SettingsScreen.kt @@ -312,7 +312,8 @@ fun SettingsScreen( onNavigateToPinSetup: (changing: Boolean) -> Unit, onNavigateToLicenses: () -> Unit, onNavigateToPrivacy: () -> Unit, - onNavigateToManageCategories: () -> Unit = {} + onNavigateToManageCategories: () -> Unit = {}, + onNavigateToManage: () -> Unit = {} ) { val context = LocalContext.current val prefs by viewModel.prefs.collectAsState() @@ -607,13 +608,14 @@ fun SettingsScreen( when (currentSubScreen) { SettingsSubScreen.NONE -> SettingsMainList( - security = security, - currentTheme = currentTheme, - scrollState = mainListScrollState, - onBack = onBack, - onNavigateTo = { currentSubScreen = it }, - onOpenDiscord = { openUrl(context, "https://discord.gg/xphnQCZeYq") }, - onOpenSupport = { openUrl(context, "https://github.com/sponsors/mapgie") } + security = security, + currentTheme = currentTheme, + scrollState = mainListScrollState, + onBack = onBack, + onNavigateTo = { currentSubScreen = it }, + onNavigateToManage = onNavigateToManage, + onOpenDiscord = { openUrl(context, "https://discord.gg/xphnQCZeYq") }, + onOpenSupport = { openUrl(context, "https://github.com/sponsors/mapgie") } ) SettingsSubScreen.CYCLE -> CycleSubScreen( prefs = prefs, @@ -690,6 +692,7 @@ private fun SettingsMainList( scrollState: ScrollState, onBack: () -> Unit, onNavigateTo: (SettingsSubScreen) -> Unit, + onNavigateToManage: () -> Unit, onOpenDiscord: () -> Unit, onOpenSupport: () -> Unit, ) { @@ -754,6 +757,16 @@ private fun SettingsMainList( } } + // ── MANAGE ──────────────────────────────────────────────────── + SettingsNavItem( + title = "Manage", + subtitle = "Tracking modes, categories, cycle, and reminders", + icon = Icons.Outlined.Tune, + onClick = onNavigateToManage + ) + + HorizontalDivider(modifier = Modifier.padding(horizontal = 16.dp)) + // ── PERSONALISATION ─────────────────────────────────────────── SettingsSectionHeader("Personalisation") SettingsNavItem( diff --git a/changelog/unreleased/settings-manage-nav-swap.json b/changelog/unreleased/settings-manage-nav-swap.json new file mode 100644 index 0000000..457ee91 --- /dev/null +++ b/changelog/unreleased/settings-manage-nav-swap.json @@ -0,0 +1,8 @@ +{ + "bump": "minor", + "changed": [ + "Settings now has its own spot on the bottom navigation bar", + "The home screen's top-right icon now opens Manage", + "Manage is now the first item in the Settings screen" + ] +}