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 8490bb6..6ffa785 100644 Binary files a/app/src/main/ui-packages/navigation_bar/navigation_bar_preview.png and b/app/src/main/ui-packages/navigation_bar/navigation_bar_preview.png differ 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 + + +