Feat(Tool): Add tool store

Add tool store, support install tool online.
This commit is contained in:
2024-08-08 17:56:45 +08:00
parent c1879dfdc8
commit c9c0debb2b
35 changed files with 1078 additions and 179 deletions

View File

@@ -28,9 +28,12 @@ fun OxygenNavHost(
librariesScreen(
onBackClick = navController::popBackStack
)
toolStoreScreen(
onNavigateToToolView = navController::navigateToToolView
)
toolsScreen(
onNavigateToToolView = navController::navigateToToolView,
onShowSnackbar = onShowSnackbar
onNavigateToToolStore = { appState.navigateToTopLevelDestination(TopLevelDestination.TOOL_STORE) }
)
toolViewScreen(
onBackClick = navController::popBackStack

View File

@@ -0,0 +1,23 @@
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.tool.ToolStoreRoute
const val TOOL_STORE_ROUTE = "tool_store_route"
fun NavController.navigateToToolStore(navOptions: NavOptions? = null) = navigate(TOOL_STORE_ROUTE, navOptions)
fun NavGraphBuilder.toolStoreScreen(
onNavigateToToolView: (username: String, toolId: String) -> Unit
) {
composable(
route = TOOL_STORE_ROUTE
) {
ToolStoreRoute(
onNavigateToToolView = onNavigateToToolView
)
}
}

View File

@@ -12,14 +12,14 @@ fun NavController.navigateToTools(navOptions: NavOptions) = navigate(TOOLS_ROUTE
fun NavGraphBuilder.toolsScreen(
onNavigateToToolView: (username: String, toolId: String) -> Unit,
onShowSnackbar: suspend (String, String?) -> Boolean
onNavigateToToolStore: () -> Unit
) {
composable(
route = TOOLS_ROUTE
) {
ToolsRoute(
onNavigateToToolView = onNavigateToToolView,
onShowSnackbar = onShowSnackbar
onNavigateToToolStore = onNavigateToToolStore
)
}
}

View File

@@ -11,6 +11,13 @@ enum class TopLevelDestination(
@StringRes val iconTextId: Int,
@StringRes val titleTextId: Int
) {
TOOL_STORE(
selectedIcon = OxygenIcons.Store,
unselectedIcon = OxygenIcons.StoreBorder,
iconTextId = R.string.feature_store_title,
titleTextId = R.string.feature_store_title
),
TOOLS(
selectedIcon = OxygenIcons.Home,
unselectedIcon = OxygenIcons.HomeBorder,