mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 08:17:04 +05:30
android: integrate ClawNavigationBar
This commit is contained in:
parent
0e87507e63
commit
e15244b5db
4 changed files with 37 additions and 2 deletions
|
@ -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()) {
|
||||
|
|
|
@ -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,
|
||||
)
|
||||
}
|
||||
|
|
9
android/src/main/res/drawable/ic_whatshot_24dp.xml
Normal file
9
android/src/main/res/drawable/ic_whatshot_24dp.xml
Normal 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>
|
Loading…
Add table
Add a link
Reference in a new issue