Refactor: Update package structure and implement bottom navigation

This commit refactors the package structure for Gradle convention plugins and introduces bottom navigation to the application.

Key changes:
- Moved Gradle convention plugin files from `dev.adriankuta.partymania` to `dev.adriankuta.flights`.
- Added `TopLevelDestination.kt` to define top-level navigation destinations with icons, titles, and routes.
- Implemented `FlightsBottomBar` Composable in `FlightsApp.kt` to display a `NavigationBar` with items for each `TopLevelDestination`.
- Updated `FlightsNavGraph.kt`:
    - Renamed from `FlightsNavGraph.kt` to `navigation/FlightsNavGraph.kt`.
    - Added `navigateToTopLevelDestination` extension function for `NavController` to handle navigation to top-level destinations with appropriate `NavOptions`.
- Updated `HomeNavigation.kt`:
    - Added `navigateToHome` extension function for `NavController`.
- Added `strings.xml` for `ui:home` module with `home_screen_title`.
- Ensured Kotlin serialization plugin is correctly applied in `app/build.gradle.kts`.
This commit is contained in:
2025-06-15 22:09:05 +02:00
parent 762c6338de
commit 13348bc52f
19 changed files with 144 additions and 26 deletions

View File

@ -2,7 +2,9 @@
package dev.adriankuta.flights.ui.home.navigation
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import dev.adriankuta.flights.ui.home.HomeScreen
import kotlinx.serialization.Serializable
@ -10,6 +12,12 @@ import kotlinx.serialization.Serializable
@Serializable
data object HomeRoute
fun NavController.navigateToHome(
navOptions: NavOptions,
) {
navigate(route = HomeRoute, navOptions = navOptions)
}
fun NavGraphBuilder.homeScreen() {
composable<HomeRoute> {
HomeScreen()

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="home_screen_title">Search Flight</string>
</resources>