From e15244b5db915a6e7bbe9b4a4c688883faf1bcfc Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 6 Feb 2022 20:40:38 +0530 Subject: [PATCH] android: integrate ClawNavigationBar --- .../msfjarvis/claw/android/ui/LobstersApp.kt | 28 ++++++++++++++++++- .../claw/android/ui/decorations/ClawFab.kt | 2 +- ...upward_24.xml => ic_arrow_upward_24dp.xml} | 0 .../main/res/drawable/ic_whatshot_24dp.xml | 9 ++++++ 4 files changed, 37 insertions(+), 2 deletions(-) rename android/src/main/res/drawable/{ic_arrow_upward_24.xml => ic_arrow_upward_24dp.xml} (100%) create mode 100644 android/src/main/res/drawable/ic_whatshot_24dp.xml diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt index ae3cce3c..3389aa11 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.res.painterResource import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable @@ -25,12 +26,16 @@ import com.google.accompanist.insets.ProvideWindowInsets import com.google.accompanist.insets.navigationBarsPadding import com.google.accompanist.insets.statusBarsPadding import com.google.accompanist.systemuicontroller.rememberSystemUiController +import dev.msfjarvis.claw.android.R import dev.msfjarvis.claw.android.ui.decorations.ClawAppBar import dev.msfjarvis.claw.android.ui.decorations.ClawFab +import dev.msfjarvis.claw.android.ui.decorations.ClawNavigationBar +import dev.msfjarvis.claw.android.ui.decorations.NavigationItem import dev.msfjarvis.claw.android.ui.lists.DatabasePosts import dev.msfjarvis.claw.android.ui.lists.HottestPosts import dev.msfjarvis.claw.android.ui.navigation.Destinations import dev.msfjarvis.claw.android.viewmodel.ClawViewModel +import dev.msfjarvis.claw.common.R as commonR import dev.msfjarvis.claw.common.comments.CommentsPage import dev.msfjarvis.claw.common.comments.HTMLConverter import dev.msfjarvis.claw.common.comments.LocalHTMLConverter @@ -52,8 +57,8 @@ fun LobstersApp( val savedListState = rememberLazyListState() val navController = rememberNavController() val postActions = rememberPostActions(urlLauncher, navController, viewModel) - val currentDestination by currentNavigationDestination(navController) val nestedScrollConnection = rememberNestedScrollConnection { isFabVisible = it } + val currentDestination by currentNavigationDestination(navController) val networkPosts = viewModel.pagerFlow.collectAsLazyPagingItems() val savedPosts by viewModel.savedPosts.collectAsState(emptyList()) @@ -71,6 +76,20 @@ fun LobstersApp( systemUiController.setNavigationBarColor(color = Color.Transparent) } + val navItems = + listOf( + NavigationItem( + label = "Hottest", + route = Destinations.Hottest.getRoute(), + icon = painterResource(R.drawable.ic_whatshot_24dp), + ), + NavigationItem( + label = "Saved", + route = Destinations.Saved.getRoute(), + icon = painterResource(commonR.drawable.ic_favorite_24dp), + ), + ) + Scaffold( topBar = { ClawAppBar(modifier = Modifier.statusBarsPadding()) }, floatingActionButton = { @@ -80,6 +99,13 @@ fun LobstersApp( modifier = Modifier.navigationBarsPadding(), ) }, + bottomBar = { + ClawNavigationBar( + navController = navController, + items = navItems, + modifier = Modifier.navigationBarsPadding(), + ) + }, ) { NavHost(navController, startDestination = Destinations.Hottest.getRoute()) { composable(Destinations.Hottest.getRoute()) { diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawFab.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawFab.kt index 72cdd2dd..13d30485 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawFab.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawFab.kt @@ -45,7 +45,7 @@ fun ClawFab( ) { FloatingActionButton(onClick = { coroutineScope.launch { listState.animateScrollToItem(0) } }) { Icon( - painter = painterResource(R.drawable.ic_arrow_upward_24), + painter = painterResource(R.drawable.ic_arrow_upward_24dp), contentDescription = null, ) } diff --git a/android/src/main/res/drawable/ic_arrow_upward_24.xml b/android/src/main/res/drawable/ic_arrow_upward_24dp.xml similarity index 100% rename from android/src/main/res/drawable/ic_arrow_upward_24.xml rename to android/src/main/res/drawable/ic_arrow_upward_24dp.xml diff --git a/android/src/main/res/drawable/ic_whatshot_24dp.xml b/android/src/main/res/drawable/ic_whatshot_24dp.xml new file mode 100644 index 00000000..531de533 --- /dev/null +++ b/android/src/main/res/drawable/ic_whatshot_24dp.xml @@ -0,0 +1,9 @@ + + +