diff --git a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt index 7e4269314..e06ebfae7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt @@ -134,8 +134,6 @@ object LocalPreferences { ) } - println("AAA migrated: $migrated") - _savedAccounts = migrated } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/JoinUserOrChannelView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/JoinUserOrChannelView.kt index d2cc30fb6..888b31dac 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/JoinUserOrChannelView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/JoinUserOrChannelView.kt @@ -3,7 +3,6 @@ package com.vitorpamplona.amethyst.ui.actions import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.defaultMinSize @@ -64,6 +63,8 @@ import com.vitorpamplona.amethyst.ui.note.SearchIcon import com.vitorpamplona.amethyst.ui.note.UsernameDisplay import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.SearchBarViewModel +import com.vitorpamplona.amethyst.ui.theme.DividerThickness +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.Size20Modifier import com.vitorpamplona.amethyst.ui.theme.Size55dp import com.vitorpamplona.amethyst.ui.theme.placeholderText @@ -313,10 +314,7 @@ private fun RenderSearchResults( ) { LazyColumn( modifier = Modifier.fillMaxHeight(), - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed( @@ -411,7 +409,7 @@ fun UserComposeForChat( Divider( modifier = Modifier.padding(top = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt index e5727182d..ca547b85a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth @@ -67,6 +66,8 @@ import com.vitorpamplona.amethyst.service.relays.FeedType import com.vitorpamplona.amethyst.ui.note.RenderRelayIcon import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.DividerThickness +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.Font14SP import com.vitorpamplona.amethyst.ui.theme.HalfHorzPadding import com.vitorpamplona.amethyst.ui.theme.HalfStartPadding @@ -154,10 +155,7 @@ fun NewRelayListView(onClose: () -> Unit, accountViewModel: AccountViewModel, re ) { Row(modifier = Modifier.weight(1f), verticalAlignment = Alignment.CenterVertically) { LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ) + contentPadding = FeedPadding ) { itemsIndexed(feedState, key = { _, item -> item.url }) { index, item -> ServerConfig( @@ -252,7 +250,7 @@ fun ServerConfigHeader() { } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } @@ -409,7 +407,7 @@ fun ServerConfigClickableLine( } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelaySelectionDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelaySelectionDialog.kt index d0806002a..032779358 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelaySelectionDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelaySelectionDialog.kt @@ -4,7 +4,6 @@ import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth @@ -32,6 +31,7 @@ import com.vitorpamplona.amethyst.model.RelayInformation import com.vitorpamplona.amethyst.service.Nip11Retriever import com.vitorpamplona.amethyst.service.relays.Relay import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.toImmutableList @@ -145,10 +145,7 @@ fun RelaySelectionDialog( ) LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ) + contentPadding = FeedPadding ) { itemsIndexed( relays, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt index 12ca76e4e..c9d9503af 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt @@ -3,7 +3,6 @@ package com.vitorpamplona.amethyst.ui.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -27,6 +26,7 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.ui.note.getGradient import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding import com.vitorpamplona.amethyst.ui.theme.secondaryButtonBackground import com.vitorpamplona.quartz.events.ImmutableListOfLists @@ -114,7 +114,7 @@ fun ShowMoreButton(onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.secondaryButtonBackground ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.show_more), color = Color.White) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt index a2aba698c..7363716b0 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt @@ -4,7 +4,6 @@ import androidx.compose.animation.Crossfade import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -37,6 +36,7 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding import com.vitorpamplona.quartz.events.EventInterface @Composable @@ -143,7 +143,7 @@ fun ContentWarningNote(onDismiss: () -> Unit) { .buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text( text = stringResource(R.string.show_anyway), diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TextSpinner.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TextSpinner.kt index f55e3aa01..26a881d22 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TextSpinner.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TextSpinner.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Font14SP import kotlinx.collections.immutable.ImmutableList @@ -143,7 +144,7 @@ fun SpinnerSelectionDialog( fontWeight = FontWeight.Bold ) } - Divider(color = Color.LightGray, thickness = 0.25.dp) + Divider(color = Color.LightGray, thickness = DividerThickness) } } itemsIndexed(options) { index, item -> @@ -160,7 +161,7 @@ fun SpinnerSelectionDialog( } } if (index < options.lastIndex) { - Divider(color = Color.LightGray, thickness = 0.25.dp) + Divider(color = Color.LightGray, thickness = DividerThickness) } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt index 1c4ca0739..16d2bc61d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt @@ -30,14 +30,14 @@ import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavBackStackEntry import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.BottomTopHeight import com.vitorpamplona.amethyst.ui.theme.DividerThickness +import com.vitorpamplona.amethyst.ui.theme.Font12SP import com.vitorpamplona.amethyst.ui.theme.Size0dp +import com.vitorpamplona.amethyst.ui.theme.Size10Modifier import com.vitorpamplona.amethyst.ui.theme.Size10dp import kotlinx.collections.immutable.persistentListOf @@ -86,9 +86,18 @@ fun keyboardAsState(): State { } @Composable -fun AppBottomBar(accountViewModel: AccountViewModel, navEntryState: State, nav: (Route, Boolean) -> Unit) { +fun IfKeyboardClosed( + inner: @Composable () -> Unit +) { val isKeyboardOpen by keyboardAsState() if (isKeyboardOpen == Keyboard.Closed) { + inner() + } +} + +@Composable +fun AppBottomBar(accountViewModel: AccountViewModel, navEntryState: State, nav: (Route, Boolean) -> Unit) { + IfKeyboardClosed { RenderBottomMenu(accountViewModel, navEntryState, nav) } } @@ -124,30 +133,30 @@ private fun RowScope.HasNewItemsIcon( } } - val size = remember { - if ("Home" == route.base) 25.dp else 23.dp - } - val iconSize = remember { - if ("Home" == route.base) 24.dp else 20.dp - } - NavigationBarItem( icon = { - val hasNewItems = accountViewModel.notificationDots.hasNewItems[route]?.collectAsStateWithLifecycle() - - NotifiableIcon( - route.icon, - size, - iconSize, - selected, - hasNewItems - ) + ObserveNewItems(route, accountViewModel) { hasNewItems -> + NotifiableIcon( + route.icon, + route.notifSize, + route.iconSize, + selected, + hasNewItems + ) + } }, selected = selected, onClick = { nav(route, selected) } ) } +@Composable +fun ObserveNewItems(route: Route, accountViewModel: AccountViewModel, inner: @Composable (hasNewItems: State?) -> Unit) { + val hasNewItems = accountViewModel.notificationDots.hasNewItems[route]?.collectAsStateWithLifecycle() + + inner(hasNewItems) +} + @Composable private fun NotifiableIcon( icon: Int, @@ -177,9 +186,7 @@ private fun NotificationDotIcon(modifier: Modifier) { Box(modifier.size(Size10dp)) { Box( modifier = remember { - Modifier - .size(Size10dp) - .clip(shape = CircleShape) + Size10Modifier.clip(shape = CircleShape) }.background(MaterialTheme.colorScheme.primary), contentAlignment = Alignment.TopEnd ) { @@ -187,7 +194,7 @@ private fun NotificationDotIcon(modifier: Modifier) { "", color = Color.White, textAlign = TextAlign.Center, - fontSize = 12.sp, + fontSize = Font12SP, modifier = remember { Modifier .wrapContentHeight() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt index ee0e89ce2..332d1934d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt @@ -813,7 +813,7 @@ fun TopBarWithBackButton(caption: String, popBack: () -> Unit) { }, actions = {} ) - Divider(thickness = 0.25.dp) + Divider(thickness = DividerThickness) } } @@ -835,7 +835,7 @@ fun FlexibleTopBarWithBackButton( actions = {} ) Spacer(modifier = HalfVertSpacer) - Divider(thickness = 0.25.dp) + Divider(thickness = DividerThickness) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt index 428df7a19..422414c88 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt @@ -77,6 +77,7 @@ import com.vitorpamplona.amethyst.ui.note.LoadStatuses import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountBackupDialog import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.ConnectOrbotDialog +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer import com.vitorpamplona.amethyst.ui.theme.Size10dp import com.vitorpamplona.amethyst.ui.theme.Size16dp @@ -114,7 +115,7 @@ fun DrawerContent( nav ) Divider( - thickness = 0.25.dp, + thickness = DividerThickness, modifier = Modifier.padding(top = 20.dp) ) ListContent( @@ -761,7 +762,7 @@ fun BottomContent(user: User, drawerState: DrawerState, loadProfilePicture: Bool Column(modifier = Modifier) { Divider( modifier = Modifier.padding(top = 15.dp), - thickness = 0.25.dp + thickness = DividerThickness ) Row( modifier = Modifier diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt index 912c665d6..a7520cea9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt @@ -5,6 +5,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.runtime.State import androidx.compose.runtime.getValue +import androidx.compose.ui.unit.Dp import androidx.navigation.NamedNavArgument import androidx.navigation.NavBackStackEntry import androidx.navigation.NavDestination @@ -21,6 +22,10 @@ import com.vitorpamplona.amethyst.ui.dal.ChatroomListKnownFeedFilter import com.vitorpamplona.amethyst.ui.dal.DiscoverLiveNowFeedFilter import com.vitorpamplona.amethyst.ui.dal.HomeNewThreadFeedFilter import com.vitorpamplona.amethyst.ui.dal.NotificationFeedFilter +import com.vitorpamplona.amethyst.ui.theme.Size20dp +import com.vitorpamplona.amethyst.ui.theme.Size23dp +import com.vitorpamplona.amethyst.ui.theme.Size24dp +import com.vitorpamplona.amethyst.ui.theme.Size25dp import com.vitorpamplona.quartz.events.ChatroomKeyable import com.vitorpamplona.quartz.events.LiveActivitiesEvent import kotlinx.collections.immutable.ImmutableList @@ -30,16 +35,18 @@ import kotlinx.collections.immutable.toImmutableList @Immutable sealed class Route( val route: String, + val base: String = route.substringBefore("?"), val icon: Int, + val notifSize: Dp = Size23dp, + val iconSize: Dp = Size20dp, val hasNewItems: (Account, Set) -> Boolean = { _, _ -> false }, val arguments: ImmutableList = persistentListOf() ) { - val base: String - get() = route.substringBefore("?") - object Home : Route( route = "Home?nip47={nip47}", icon = R.drawable.ic_home, + notifSize = Size25dp, + iconSize = Size24dp, arguments = listOf( navArgument("nip47") { type = NavType.StringType; nullable = true; defaultValue = null } ).toImmutableList(), diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt index 02433b796..c847d3882 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt @@ -35,6 +35,7 @@ import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.ui.screen.BadgeCard import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.newItemBackgroundColor import com.vitorpamplona.amethyst.ui.theme.placeholderText import kotlinx.coroutines.launch @@ -161,7 +162,7 @@ fun BadgeCompose(likeSetCard: BadgeCard, isInnerNote: Boolean = false, routeForL Divider( modifier = Modifier.padding(top = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt index a650a172d..511e73047 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt @@ -4,7 +4,6 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button @@ -22,6 +21,8 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Size35dp import kotlinx.collections.immutable.ImmutableSet @@ -50,7 +51,7 @@ fun BlankNote(modifier: Modifier = Modifier, showDivider: Boolean = false, idHex if (!showDivider) { Divider( modifier = Modifier.padding(vertical = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) } } @@ -110,7 +111,7 @@ fun HiddenNote( .buttonColors( contentColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.show_anyway), color = Color.White) } @@ -118,7 +119,7 @@ fun HiddenNote( } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index 84f91938f..4ac258fb4 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -581,7 +581,7 @@ fun CommunityHeader( if (showBottomDiviser) { Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt index ae9974ca3..35109dd82 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt @@ -1,7 +1,6 @@ package com.vitorpamplona.amethyst.ui.note import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -27,6 +26,8 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.RelayInfo import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.placeholderText import java.time.Instant import java.time.ZoneId @@ -86,7 +87,7 @@ fun RelayCompose( Divider( modifier = Modifier.padding(top = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) } } @@ -120,7 +121,7 @@ fun AddRelayButton(onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(id = R.string.add), color = Color.White) } @@ -135,7 +136,7 @@ fun RemoveRelayButton(onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.remove), color = Color.White) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt index 0ba79a4f1..dcb26f0fd 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt @@ -76,6 +76,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.TextSpinner import com.vitorpamplona.amethyst.ui.screen.loggedIn.TitleExplainer import com.vitorpamplona.amethyst.ui.screen.loggedIn.getFragmentActivity import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Font14SP import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.quartz.encoders.decodePublicKey @@ -376,7 +377,7 @@ fun UpdateZapAmountDialog( Divider( modifier = Modifier.padding(vertical = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) var qrScanning by remember { mutableStateOf(false) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt index 19f0f108f..192a75ad4 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.model.User import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Size55dp import com.vitorpamplona.amethyst.ui.theme.StdPadding @@ -50,7 +51,7 @@ fun UserCompose( if (showDiviser) { Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapNoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapNoteCompose.kt index 6a7a3664b..d633902b6 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapNoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapNoteCompose.kt @@ -34,6 +34,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.UnfollowButton import com.vitorpamplona.amethyst.ui.screen.loggedIn.WatchIsHiddenUser import com.vitorpamplona.amethyst.ui.screen.loggedIn.showAmountAxis import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Size55dp import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.quartz.events.LnZapEvent @@ -76,7 +77,7 @@ fun ZapNoteCompose(baseReqResponse: ZapReqResponse, accountViewModel: AccountVie Divider( modifier = Modifier.padding(top = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt index cc186c225..d159fe399 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt @@ -2,7 +2,6 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.lazy.LazyColumn @@ -17,11 +16,11 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.note.ChatroomMessageCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.Font14SP import com.vitorpamplona.amethyst.ui.theme.HalfPadding @@ -91,10 +90,7 @@ fun ChatroomFeedLoaded( } LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, modifier = Modifier.fillMaxSize(), reverseLayout = true, state = listState diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt index 7e6f9668b..8a1855e8e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt @@ -3,7 +3,6 @@ package com.vitorpamplona.amethyst.ui.screen import android.util.Log import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.lazy.LazyColumn @@ -14,10 +13,10 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.ui.note.ChatroomHeaderCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import kotlin.time.ExperimentalTime import kotlin.time.measureTimedValue @@ -89,10 +88,7 @@ private fun FeedLoaded( } LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed( diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt index 2fc947d57..50de40d7c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt @@ -7,7 +7,6 @@ import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize @@ -31,11 +30,11 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.ui.note.NoteCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import kotlin.time.ExperimentalTime import kotlin.time.measureTimedValue @@ -65,16 +64,14 @@ fun RefresheableView( val modifier = remember { if (enablePullRefresh) { - Modifier.pullRefresh(pullRefreshState) + Modifier.fillMaxSize().pullRefresh(pullRefreshState) } else { - Modifier + Modifier.fillMaxSize() } } Box(modifier) { - Column(Modifier.fillMaxSize()) { - content() - } + content() if (enablePullRefresh) { PullRefreshIndicator( @@ -191,10 +188,7 @@ private fun FeedLoaded( } LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { _, item -> diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedView.kt index 03f5b2c21..b76797b7f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedView.kt @@ -2,16 +2,15 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue -import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.ui.note.ZapNoteCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding @Composable fun LnZapFeedView( @@ -52,10 +51,7 @@ private fun LnZapFeedLoaded( val listState = rememberLazyListState() LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(state.feed.value, key = { _, item -> item.zapEvent.idHex }) { _, item -> diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayFeedView.kt index 3c3613a56..ab78afa03 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayFeedView.kt @@ -3,7 +3,6 @@ package com.vitorpamplona.amethyst.ui.screen import android.util.Log import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState @@ -18,7 +17,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp import androidx.lifecycle.ViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewModelScope @@ -29,6 +27,7 @@ import com.vitorpamplona.amethyst.ui.actions.NewRelayListView import com.vitorpamplona.amethyst.ui.components.BundledUpdate import com.vitorpamplona.amethyst.ui.note.RelayCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow @@ -137,10 +136,7 @@ fun RelayFeedView( val listState = rememberLazyListState() LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(feedState, key = { _, item -> item.url }) { _, item -> diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/StringFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/StringFeedView.kt index 82426613e..56904188f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/StringFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/StringFeedView.kt @@ -4,7 +4,6 @@ import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed @@ -16,9 +15,9 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.ui.theme.FeedPadding @Composable fun RefreshingFeedStringFeedView( @@ -99,10 +98,7 @@ private fun FeedLoaded( val listState = rememberLazyListState() LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { item { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt index 510183f45..91e15f061 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt @@ -8,7 +8,6 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth @@ -91,7 +90,9 @@ import com.vitorpamplona.amethyst.ui.note.Reward import com.vitorpamplona.amethyst.ui.note.timeAgo import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.ChannelHeader +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.SmallBorder import com.vitorpamplona.amethyst.ui.theme.lessImportantLink import com.vitorpamplona.amethyst.ui.theme.placeholderText @@ -172,10 +173,7 @@ fun ThreadFeedView(noteId: String, viewModel: FeedViewModel, accountViewModel: A } LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { index, item -> @@ -507,7 +505,7 @@ fun NoteMaster( ReactionsRow(note, true, accountViewModel, nav) Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt index acb39012b..7851182ac 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt @@ -2,16 +2,15 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue -import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.ui.note.UserCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding @Composable fun RefreshingFeedUserFeedView( @@ -67,10 +66,7 @@ private fun FeedLoaded( val listState = rememberLazyListState() LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(state.feed.value, key = { _, item -> item.pubkeyHex }) { _, item -> diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountBackupDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountBackupDialog.kt index 2350fe388..4beb7d24c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountBackupDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountBackupDialog.kt @@ -10,7 +10,6 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize @@ -47,6 +46,7 @@ import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.ui.actions.CloseButton import com.vitorpamplona.amethyst.ui.note.authenticate import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding import com.vitorpamplona.quartz.encoders.toNsec import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch @@ -131,7 +131,7 @@ private fun NSecCopyButton( colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Icon( tint = MaterialTheme.colorScheme.onPrimary, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt index 2c18675ea..531fd1af5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt @@ -8,7 +8,6 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsFocusedAsState import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.defaultMinSize @@ -117,6 +116,8 @@ import com.vitorpamplona.amethyst.ui.screen.NostrChannelFeedViewModel import com.vitorpamplona.amethyst.ui.screen.RefreshingChatroomFeedView import com.vitorpamplona.amethyst.ui.screen.equalImmutableLists import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer import com.vitorpamplona.amethyst.ui.theme.EditFieldBorder @@ -616,7 +617,7 @@ fun ChannelHeader( if (showBottomDiviser) { Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } @@ -1139,7 +1140,7 @@ fun JoinChatButton(accountViewModel: AccountViewModel, channel: Channel, nav: (S accountViewModel.account.follow(channel) } }, - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.join), color = Color.White) } @@ -1156,7 +1157,7 @@ fun LeaveChatButton(accountViewModel: AccountViewModel, channel: Channel, nav: ( accountViewModel.account.unfollow(channel) } }, - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.leave), color = Color.White) } @@ -1177,7 +1178,7 @@ fun JoinCommunityButton(accountViewModel: AccountViewModel, note: AddressableNot colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.join), color = Color.White) } @@ -1198,7 +1199,7 @@ fun LeaveCommunityButton(accountViewModel: AccountViewModel, note: AddressableNo colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.leave), color = Color.White) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomListScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomListScreen.kt index 00c5de374..89c31e1f9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomListScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomListScreen.kt @@ -221,64 +221,60 @@ fun ChatroomListScreenOnlyList( } } - Box(Modifier.fillMaxSize()) { - Column(Modifier.fillMaxHeight()) { - Column( - modifier = Modifier.padding(vertical = 0.dp) + Column( + modifier = Modifier.fillMaxHeight() + ) { + Box(Modifier.fillMaxWidth()) { + TabRow( + containerColor = MaterialTheme.colorScheme.background, + contentColor = MaterialTheme.colorScheme.onBackground, + selectedTabIndex = pagerState.currentPage, + modifier = TabRowHeight ) { - Box(Modifier.fillMaxWidth()) { - TabRow( - containerColor = MaterialTheme.colorScheme.background, - contentColor = MaterialTheme.colorScheme.onBackground, - selectedTabIndex = pagerState.currentPage, - modifier = TabRowHeight - ) { - tabs.forEachIndexed { index, tab -> - Tab( - selected = pagerState.currentPage == index, - text = { - Text(text = stringResource(tab.resource)) - }, - onClick = { - coroutineScope.launch { pagerState.animateScrollToPage(index) } - } - ) + tabs.forEachIndexed { index, tab -> + Tab( + selected = pagerState.currentPage == index, + text = { + Text(text = stringResource(tab.resource)) + }, + onClick = { + coroutineScope.launch { pagerState.animateScrollToPage(index) } } - } - - IconButton( - modifier = Modifier - .size(40.dp) - .align(Alignment.CenterEnd), - onClick = { moreActionsExpanded = true } - ) { - Icon( - imageVector = Icons.Default.MoreVert, - contentDescription = null, - tint = MaterialTheme.colorScheme.placeholderText - ) - - ChatroomTabMenu( - moreActionsExpanded, - { moreActionsExpanded = false }, - { markKnownAsRead.value = true }, - { markNewAsRead.value = true } - ) - } - } - - HorizontalPager( - state = pagerState, - modifier = Modifier.fillMaxSize() - ) { page -> - ChatroomListFeedView( - viewModel = tabs[page].viewModel, - accountViewModel = accountViewModel, - nav = nav, - markAsRead = tabs[page].markAsRead ) } } + + IconButton( + modifier = Modifier + .size(40.dp) + .align(Alignment.CenterEnd), + onClick = { moreActionsExpanded = true } + ) { + Icon( + imageVector = Icons.Default.MoreVert, + contentDescription = null, + tint = MaterialTheme.colorScheme.placeholderText + ) + + ChatroomTabMenu( + moreActionsExpanded, + { moreActionsExpanded = false }, + { markKnownAsRead.value = true }, + { markNewAsRead.value = true } + ) + } + } + + HorizontalPager( + state = pagerState, + modifier = Modifier.fillMaxSize() + ) { page -> + ChatroomListFeedView( + viewModel = tabs[page].viewModel, + accountViewModel = accountViewModel, + nav = nav, + markAsRead = tabs[page].markAsRead + ) } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt index bae8e2b2e..6e1c0eaa4 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt @@ -84,6 +84,7 @@ import com.vitorpamplona.amethyst.ui.note.UsernameDisplay import com.vitorpamplona.amethyst.ui.screen.NostrChatroomFeedViewModel import com.vitorpamplona.amethyst.ui.screen.RefreshingChatroomFeedView import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.EditFieldBorder import com.vitorpamplona.amethyst.ui.theme.EditFieldModifier import com.vitorpamplona.amethyst.ui.theme.EditFieldTrailingIconModifier @@ -548,7 +549,7 @@ fun ChatroomHeader( } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } @@ -592,7 +593,7 @@ fun GroupChatroomHeader( } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/DiscoverScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/DiscoverScreen.kt index 554ec1caa..885a7927e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/DiscoverScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/DiscoverScreen.kt @@ -4,7 +4,6 @@ import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth @@ -54,6 +53,7 @@ import com.vitorpamplona.amethyst.ui.screen.RefresheableView import com.vitorpamplona.amethyst.ui.screen.SaveableFeedState import com.vitorpamplona.amethyst.ui.screen.ScrollStateKeys import com.vitorpamplona.amethyst.ui.screen.rememberForeverPagerState +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.TabRowHeight import com.vitorpamplona.quartz.events.ChannelCreateEvent import com.vitorpamplona.quartz.events.CommunityDefinitionEvent @@ -234,10 +234,7 @@ private fun DiscoverFeedLoaded( nav: (String) -> Unit ) { LazyColumn( - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { _, item -> @@ -273,10 +270,7 @@ private fun DiscoverFeedTwoColumnsLoaded( ) { LazyVerticalGrid( columns = GridCells.Fixed(2), - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { _, item -> diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/GeoHashScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/GeoHashScreen.kt index fac64a79b..d4d9c6fad 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/GeoHashScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/GeoHashScreen.kt @@ -33,6 +33,7 @@ import com.vitorpamplona.amethyst.service.NostrGeohashDataSource import com.vitorpamplona.amethyst.service.ReverseGeoLocationUtil import com.vitorpamplona.amethyst.ui.screen.NostrGeoHashFeedViewModel import com.vitorpamplona.amethyst.ui.screen.RefresheableFeedView +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.StdPadding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -124,7 +125,7 @@ fun GeoHashHeader(tag: String, modifier: Modifier = StdPadding, account: Account } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt index 0f0e13295..f2edb1c08 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt @@ -27,6 +27,7 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.service.NostrHashtagDataSource import com.vitorpamplona.amethyst.ui.screen.NostrHashtagFeedViewModel import com.vitorpamplona.amethyst.ui.screen.RefresheableFeedView +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.StdPadding @Composable @@ -121,7 +122,7 @@ fun HashtagHeader(tag: String, modifier: Modifier = StdPadding, account: Account } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt index eda26f757..58cbd2f72 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt @@ -3,7 +3,6 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth @@ -56,6 +55,7 @@ import com.vitorpamplona.amethyst.ui.screen.RefreshingFeedUserFeedView import com.vitorpamplona.amethyst.ui.screen.StringFeedView import com.vitorpamplona.amethyst.ui.screen.UserFeedViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.HorzPadding import com.vitorpamplona.amethyst.ui.theme.Size10dp @@ -291,7 +291,7 @@ fun MutedWordHeader(tag: String, modifier: Modifier = StdPadding, account: Accou } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } } @@ -347,7 +347,7 @@ fun HideWordButton(onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.block_only), color = Color.White) } @@ -362,7 +362,7 @@ fun ShowWordButton(text: Int = R.string.unblock, onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(text), color = Color.White, textAlign = TextAlign.Center) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt index d47c0dc70..ea810b90f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt @@ -4,7 +4,6 @@ import androidx.compose.animation.Crossfade import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.PagerState import androidx.compose.material3.MaterialTheme @@ -24,7 +23,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import com.vitorpamplona.amethyst.R @@ -52,16 +50,65 @@ fun HomeScreen( nav: (String) -> Unit, nip47: String? = null ) { - var wantsToAddNip47 by remember(nip47) { mutableStateOf(nip47) } - - val pagerState = rememberForeverPagerState(key = PagerStateKeys.HOME_SCREEN) { 2 } + ResolveNIP47(nip47, accountViewModel) WatchAccountForHomeScreen(homeFeedViewModel, repliesFeedViewModel, accountViewModel) + WatchLifeCycleChanges() + + AssembleHomeTabs(homeFeedViewModel, repliesFeedViewModel) { pagerState, tabItems -> + AssembleHomePage(pagerState, tabItems, accountViewModel, nav) + } +} + +@OptIn(ExperimentalFoundationApi::class) +@Composable +private fun AssembleHomeTabs( + homeFeedViewModel: NostrHomeFeedViewModel, + repliesFeedViewModel: NostrHomeRepliesFeedViewModel, + inner: @Composable (PagerState, ImmutableList) -> Unit +) { + val pagerState = rememberForeverPagerState(key = PagerStateKeys.HOME_SCREEN) { 2 } + + val tabs by remember(homeFeedViewModel, repliesFeedViewModel) { + mutableStateOf( + listOf( + TabItem(R.string.new_threads, homeFeedViewModel, Route.Home.base + "Follows", ScrollStateKeys.HOME_FOLLOWS), + TabItem(R.string.conversations, repliesFeedViewModel, Route.Home.base + "FollowsReplies", ScrollStateKeys.HOME_REPLIES) + ).toImmutableList() + ) + } + + inner(pagerState, tabs) +} + +@OptIn(ExperimentalFoundationApi::class) +@Composable +private fun AssembleHomePage( + pagerState: PagerState, + tabs: ImmutableList, + accountViewModel: AccountViewModel, + nav: (String) -> Unit +) { + Column(Modifier.fillMaxHeight()) { + HomePages(pagerState, tabs, accountViewModel, nav) + } +} + +@Composable +fun ResolveNIP47( + nip47: String?, + accountViewModel: AccountViewModel +) { + var wantsToAddNip47 by remember(nip47) { mutableStateOf(nip47) } + if (wantsToAddNip47 != null) { UpdateZapAmountDialog({ wantsToAddNip47 = null }, wantsToAddNip47, accountViewModel) } +} +@Composable +private fun WatchLifeCycleChanges() { val lifeCycleOwner = LocalLifecycleOwner.current DisposableEffect(lifeCycleOwner) { val observer = LifecycleEventObserver { _, event -> @@ -75,23 +122,6 @@ fun HomeScreen( lifeCycleOwner.lifecycle.removeObserver(observer) } } - - val tabs by remember(homeFeedViewModel, repliesFeedViewModel) { - mutableStateOf( - listOf( - TabItem(R.string.new_threads, homeFeedViewModel, Route.Home.base + "Follows", ScrollStateKeys.HOME_FOLLOWS), - TabItem(R.string.conversations, repliesFeedViewModel, Route.Home.base + "FollowsReplies", ScrollStateKeys.HOME_REPLIES) - ).toImmutableList() - ) - } - - Column(Modifier.fillMaxHeight()) { - Column( - modifier = Modifier.padding(vertical = 0.dp) - ) { - HomePages(pagerState, tabs, accountViewModel, nav) - } - } } @Composable diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt index b22a03cd4..7373673e4 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt @@ -62,6 +62,7 @@ import com.vitorpamplona.amethyst.ui.screen.RefresheableCardView import com.vitorpamplona.amethyst.ui.screen.ScrollStateKeys import com.vitorpamplona.amethyst.ui.screen.SharedPreferencesViewModel import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange +import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.RoyalBlue import com.vitorpamplona.amethyst.ui.theme.chartStyle import java.math.BigDecimal @@ -213,7 +214,7 @@ fun SummaryBar(model: UserReactionsViewModel) { } Divider( - thickness = 0.25.dp + thickness = DividerThickness ) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt index a35f6209a..ca03b0100 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt @@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight @@ -134,6 +133,7 @@ import com.vitorpamplona.amethyst.ui.screen.RelayFeedViewModel import com.vitorpamplona.amethyst.ui.screen.UserFeedViewModel import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.ButtonBorder +import com.vitorpamplona.amethyst.ui.theme.ButtonPadding import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Size16Modifier import com.vitorpamplona.amethyst.ui.theme.Size35dp @@ -1697,7 +1697,7 @@ private fun InnerEditButton(onClick: () -> Unit) { .padding(horizontal = 3.dp) .width(50.dp), onClick = onClick, - contentPadding = PaddingValues(0.dp) + contentPadding = ZeroPadding ) { Icon( tint = Color.White, @@ -1716,7 +1716,7 @@ fun UnfollowButton(onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.unfollow), color = Color.White) } @@ -1731,7 +1731,7 @@ fun FollowButton(text: Int = R.string.follow, onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(text), color = Color.White, textAlign = TextAlign.Center) } @@ -1746,7 +1746,7 @@ fun ShowUserButton(onClick: () -> Unit) { colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary ), - contentPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp) + contentPadding = ButtonPadding ) { Text(text = stringResource(R.string.unblock), color = Color.White) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt index ae8620f05..ad2467c0d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt @@ -4,7 +4,6 @@ import android.util.Log import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxHeight @@ -65,6 +64,8 @@ import com.vitorpamplona.amethyst.ui.note.NoteCompose import com.vitorpamplona.amethyst.ui.note.SearchIcon import com.vitorpamplona.amethyst.ui.note.UserCompose import com.vitorpamplona.amethyst.ui.note.UsernameDisplay +import com.vitorpamplona.amethyst.ui.theme.DividerThickness +import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.Size20Modifier import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.quartz.events.findHashtags @@ -353,10 +354,7 @@ private fun DisplaySearchResults( LazyColumn( modifier = Modifier.fillMaxHeight(), - contentPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp - ), + contentPadding = FeedPadding, state = listState ) { itemsIndexed( @@ -438,7 +436,7 @@ fun HashtagLine(tag: String, onClick: () -> Unit) { Divider( modifier = Modifier.padding(top = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) } } @@ -479,7 +477,7 @@ fun UserLine( Divider( modifier = Modifier.padding(top = 10.dp), - thickness = 0.25.dp + thickness = DividerThickness ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt index 8fe7e6382..eefb1ce07 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt @@ -58,6 +58,7 @@ val Size18dp = 18.dp val Size19dp = 19.dp val Size20dp = 20.dp val Size22dp = 22.dp +val Size23dp = 23.dp val Size24dp = 24.dp val Size25dp = 25.dp val Size30dp = 30.dp @@ -144,9 +145,6 @@ val EditFieldLeadingIconModifier = Modifier .height(32.dp) .padding(start = 2.dp) -val FeedPadding = PaddingValues( - top = 10.dp, - bottom = 10.dp -) - val ZeroPadding = PaddingValues(0.dp) +val FeedPadding = PaddingValues(top = 10.dp, bottom = 10.dp) +val ButtonPadding = PaddingValues(vertical = 6.dp, horizontal = 16.dp)