From 0b459e9f950f88bcd6bd881db669855ede9263f3 Mon Sep 17 00:00:00 2001 From: Fabio Date: Wed, 9 Apr 2025 14:01:36 +0200 Subject: [PATCH] Adding working navbar still --- .../java/com/f1rq/lifemap/MainActivity.kt | 30 ++++++++-------- .../java/com/f1rq/lifemap/NavBarHandler.kt | 32 +++++++++++++++++ .../{SettingsScreen.kt => ListView.kt} | 2 +- .../screens/{HomeScreen.kt => MapView.kt} | 2 +- .../navigation_bar/navigation_bar.json | 34 +++++++++++++++++- .../navigation_bar/navigation_bar_preview.png | Bin 1765 -> 1766 bytes .../ui-packages/navigation_bar/vector.svg | 4 ++- .../ui-packages/navigation_bar/vector1.svg | 4 ++- 8 files changed, 87 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/com/f1rq/lifemap/NavBarHandler.kt rename app/src/main/java/com/f1rq/lifemap/screens/{SettingsScreen.kt => ListView.kt} (90%) rename app/src/main/java/com/f1rq/lifemap/screens/{HomeScreen.kt => MapView.kt} (90%) diff --git a/app/src/main/java/com/f1rq/lifemap/MainActivity.kt b/app/src/main/java/com/f1rq/lifemap/MainActivity.kt index ebe1f36..0997da2 100644 --- a/app/src/main/java/com/f1rq/lifemap/MainActivity.kt +++ b/app/src/main/java/com/f1rq/lifemap/MainActivity.kt @@ -3,39 +3,36 @@ package com.f1rq.lifemap import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp import androidx.compose.ui.tooling.preview.Preview +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController -import com.f1rq.lifemap.ui.theme.LifeMapTheme import com.f1rq.lifemap.navigationbar.NavigationBar +import com.f1rq.lifemap.screens.ListView +import com.f1rq.lifemap.screens.MapView +import com.f1rq.lifemap.ui.theme.LifeMapTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - LifeMapTheme() { + LifeMapTheme { val navController = rememberNavController() Scaffold( - bottomBar = { - NavigationBar() - } + bottomBar = { NavigationBar(navController) } ) { innerPadding -> NavHost( navController = navController, - startDestination = "home" + startDestination = "mapview", + modifier = Modifier.padding(innerPadding) ) { - composable("home") { HomeScreen(Modifier.padding(innerPadding)) } - composable("settings") { SettingsScreen(Modifier.padding(innerPadding)) } + composable("mapview") { MapView(Modifier) } + composable("listview") { ListView(Modifier) } } } } @@ -46,7 +43,8 @@ class MainActivity : ComponentActivity() { @Preview(showBackground = true) @Composable fun GreetingPreview() { - LifeMapTheme() { - NavigationBar() + LifeMapTheme { + val previewNavController = rememberNavController() + NavigationBar(navController = previewNavController) } } \ No newline at end of file diff --git a/app/src/main/java/com/f1rq/lifemap/NavBarHandler.kt b/app/src/main/java/com/f1rq/lifemap/NavBarHandler.kt new file mode 100644 index 0000000..4d0140c --- /dev/null +++ b/app/src/main/java/com/f1rq/lifemap/NavBarHandler.kt @@ -0,0 +1,32 @@ +package com.f1rq.lifemap + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.navigation.NavHostController +import com.f1rq.lifemap.navigationbar.NavigationBar +import androidx.navigation.compose.currentBackStackEntryAsState +import androidx.compose.runtime.getValue + + +@Composable +fun NavBarHandler(navController: NavHostController) { + val currentRoute = currentRoute(navController) + + NavigationBar( + modifier = Modifier, + onWorldViewTapped = { + if (currentRoute != "mapview") navController.navigate("mapview") + }, + onListViewTapped = { + if (currentRoute != "listview") navController.navigate("listview") + }, + //homeState = if (currentRoute == "home") "active" else "inactive", + //settingsState = if (currentRoute == "settings") "active" else "inactive", + ) +} + +@Composable +private fun currentRoute(navController: NavHostController): String? { + val navBackStackEntry by navController.currentBackStackEntryAsState() + return navBackStackEntry?.destination?.route +} \ No newline at end of file diff --git a/app/src/main/java/com/f1rq/lifemap/screens/SettingsScreen.kt b/app/src/main/java/com/f1rq/lifemap/screens/ListView.kt similarity index 90% rename from app/src/main/java/com/f1rq/lifemap/screens/SettingsScreen.kt rename to app/src/main/java/com/f1rq/lifemap/screens/ListView.kt index e466593..44b2b45 100644 --- a/app/src/main/java/com/f1rq/lifemap/screens/SettingsScreen.kt +++ b/app/src/main/java/com/f1rq/lifemap/screens/ListView.kt @@ -8,7 +8,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @Composable -fun SettingsScreen() { +fun ListView(modifier: Modifier = Modifier) { Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center diff --git a/app/src/main/java/com/f1rq/lifemap/screens/HomeScreen.kt b/app/src/main/java/com/f1rq/lifemap/screens/MapView.kt similarity index 90% rename from app/src/main/java/com/f1rq/lifemap/screens/HomeScreen.kt rename to app/src/main/java/com/f1rq/lifemap/screens/MapView.kt index 5fe5508..faa18eb 100644 --- a/app/src/main/java/com/f1rq/lifemap/screens/HomeScreen.kt +++ b/app/src/main/java/com/f1rq/lifemap/screens/MapView.kt @@ -8,7 +8,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @Composable -fun HomeScreen() { +fun MapView(modifier: Modifier = Modifier) { Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center diff --git a/app/src/main/ui-packages/navigation_bar/navigation_bar.json b/app/src/main/ui-packages/navigation_bar/navigation_bar.json index 0763657..2ea1775 100644 --- a/app/src/main/ui-packages/navigation_bar/navigation_bar.json +++ b/app/src/main/ui-packages/navigation_bar/navigation_bar.json @@ -5,7 +5,7 @@ "type": "figma", "file": "7RzB5mC9Qj82hGEbAM11GM", "node": "38:3", - "version": "2201697548108180498", + "version": "2204970891916878617", "component-id": "915162a5cdf4f7f91ace42d239b4d1faf0d5c6e7" }, "default": "Navigation bar", @@ -96,6 +96,7 @@ "top": 12.0, "bottom": 16.0 }, + "tap-handler": "$on world view tapped", "size-constraints": { "width-constraints": { "sizing-mode": "proportional", @@ -109,6 +110,7 @@ "icon-container" ], "item-spacing": 4.0, + "background-color": "$world view background color", "clip-content": false }, { @@ -117,6 +119,7 @@ "top": 12.0, "bottom": 16.0 }, + "tap-handler": "$on list view tapped", "size-constraints": { "width-constraints": { "sizing-mode": "proportional", @@ -130,6 +133,7 @@ "icon-container1" ], "item-spacing": 4.0, + "background-color": "$list view background color", "clip-content": false }, { @@ -175,6 +179,12 @@ "children": [ "Frame" ], + "background-color": { + "alpha": 1.0, + "hue": 0.0, + "saturation": 0.0, + "value": 0.8666666666666667 + }, "clip-content": false }, { @@ -289,6 +299,28 @@ } } }, + "parameters": { + "world view background color": { + "data-type": "color", + "required": false, + "description": "" + }, + "on world view tapped": { + "data-type": "void-callback", + "required": false, + "description": "" + }, + "list view background color": { + "data-type": "color", + "required": false, + "description": "" + }, + "on list view tapped": { + "data-type": "void-callback", + "required": false, + "description": "" + } + }, "previews": [ { "design": "Navigation bar", diff --git a/app/src/main/ui-packages/navigation_bar/navigation_bar_preview.png b/app/src/main/ui-packages/navigation_bar/navigation_bar_preview.png index 8490bb6fb237c016d67ce37c717224b0c597fa07..6ffa785b00cf5a9e25f01561f54c92974977b39c 100644 GIT binary patch delta 1700 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 G&HDq_{X;+i diff --git a/app/src/main/ui-packages/navigation_bar/vector.svg b/app/src/main/ui-packages/navigation_bar/vector.svg index 37019c9..cc73ebd 100644 --- a/app/src/main/ui-packages/navigation_bar/vector.svg +++ b/app/src/main/ui-packages/navigation_bar/vector.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/app/src/main/ui-packages/navigation_bar/vector1.svg b/app/src/main/ui-packages/navigation_bar/vector1.svg index 3045b34..4c4782e 100644 --- a/app/src/main/ui-packages/navigation_bar/vector1.svg +++ b/app/src/main/ui-packages/navigation_bar/vector1.svg @@ -1 +1,3 @@ - \ No newline at end of file + + +