Initialize the basic framework

This commit is contained in:
2024-03-14 17:09:28 +08:00
commit 51261e5be9
90 changed files with 3926 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
package top.fatweb.oxygen.toolbox.navigation
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.navigation.compose.NavHost
import top.fatweb.oxygen.toolbox.ui.OxygenAppState
@Composable
fun OxygenNavHost(
modifier: Modifier = Modifier,
appState: OxygenAppState,
onShowSnackbar: suspend (String, String?) -> Boolean,
startDestination: String
) {
val navController = appState.navController
NavHost(
modifier = modifier,
navController = navController,
startDestination = startDestination
) {
searchScreen(
onBackClick = navController::popBackStack
)
toolsScreen(
)
starScreen(
)
}
}

View File

@@ -0,0 +1,22 @@
package top.fatweb.oxygen.toolbox.navigation
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import top.fatweb.oxygen.toolbox.ui.search.SearchRoute
const val SEARCH_ROUTE = "search_route"
fun NavController.navigateToSearch(navOptions: NavOptions? = null) =
navigate(SEARCH_ROUTE, navOptions)
fun NavGraphBuilder.searchScreen(
onBackClick: () -> Unit
) {
composable(
route = SEARCH_ROUTE
) {
SearchRoute(onBackClick = onBackClick)
}
}

View File

@@ -0,0 +1,18 @@
package top.fatweb.oxygen.toolbox.navigation
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
const val STAR_ROUTE = "star_route"
fun NavController.navigateToStar(navOptions: NavOptions) = navigate(STAR_ROUTE, navOptions)
fun NavGraphBuilder.starScreen() {
composable(
route = STAR_ROUTE
) {
}
}

View File

@@ -0,0 +1,16 @@
package top.fatweb.oxygen.toolbox.navigation
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
const val TOOLS_ROUTE = "tools_route"
fun NavController.navigateToTools(navOptions: NavOptions) = navigate(TOOLS_ROUTE, navOptions)
fun NavGraphBuilder.toolsScreen() {
composable(
route = TOOLS_ROUTE
) { }
}

View File

@@ -0,0 +1,26 @@
package top.fatweb.oxygen.toolbox.navigation
import androidx.compose.ui.graphics.vector.ImageVector
import top.fatweb.oxygen.toolbox.R
import top.fatweb.oxygen.toolbox.icon.OxygenIcons
enum class TopLevelDestination(
val selectedIcon: ImageVector,
val unselectedIcon: ImageVector,
val iconTextId: Int,
val titleTextId: Int
) {
TOOLS(
selectedIcon = OxygenIcons.Home,
unselectedIcon = OxygenIcons.HomeBorder,
iconTextId = R.string.feature_tools_title,
titleTextId = R.string.feature_tools_title
),
STAR(
selectedIcon = OxygenIcons.Star,
unselectedIcon = OxygenIcons.StarBorder,
iconTextId = R.string.feature_star_title,
titleTextId = R.string.feature_star_title
)
}