android: integrate ClawNavigationBar

This commit is contained in:
Harsh Shandilya 2022-02-06 20:40:38 +05:30
parent 0e87507e63
commit e15244b5db
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
4 changed files with 37 additions and 2 deletions

View file

@ -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()) {

View file

@ -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,
)
}

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M13.5,0.67s0.74,2.65 0.74,4.8c0,2.06 -1.35,3.73 -3.41,3.73 -2.07,0 -3.63,-1.67 -3.63,-3.73l0.03,-0.36C5.21,7.51 4,10.62 4,14c0,4.42 3.58,8 8,8s8,-3.58 8,-8C20,8.61 17.41,3.8 13.5,0.67zM11.71,19c-1.78,0 -3.22,-1.4 -3.22,-3.14 0,-1.62 1.05,-2.76 2.81,-3.12 1.77,-0.36 3.6,-1.21 4.62,-2.58 0.39,1.29 0.59,2.65 0.59,4.04 0,2.65 -2.15,4.8 -4.8,4.8z" />
</vector>