mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-21 12:48:26 +00:00
Fix start conversation button padding
This commit is contained in:
parent
78da9bdc67
commit
28c28dc4be
@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.conversation.start.home
|
|||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.ColumnScope
|
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
@ -11,18 +10,21 @@ import androidx.compose.foundation.verticalScroll
|
|||||||
import androidx.compose.material.Surface
|
import androidx.compose.material.Surface
|
||||||
import androidx.compose.material.Text
|
import androidx.compose.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
|
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
import org.thoughtcrime.securesms.conversation.start.NullStartConversationDelegate
|
import org.thoughtcrime.securesms.conversation.start.NullStartConversationDelegate
|
||||||
import org.thoughtcrime.securesms.conversation.start.StartConversationDelegate
|
import org.thoughtcrime.securesms.conversation.start.StartConversationDelegate
|
||||||
import org.thoughtcrime.securesms.ui.Divider
|
import org.thoughtcrime.securesms.ui.Divider
|
||||||
import org.thoughtcrime.securesms.ui.SmallItemButton
|
import org.thoughtcrime.securesms.ui.ItemButton
|
||||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||||
|
import org.thoughtcrime.securesms.ui.LocalItemButtonMinHeight
|
||||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||||
import org.thoughtcrime.securesms.ui.color.Colors
|
import org.thoughtcrime.securesms.ui.color.Colors
|
||||||
@ -47,47 +49,52 @@ internal fun StartConversationScreen(
|
|||||||
Column(
|
Column(
|
||||||
modifier = Modifier.verticalScroll(rememberScrollState())
|
modifier = Modifier.verticalScroll(rememberScrollState())
|
||||||
) {
|
) {
|
||||||
Items(accountId, delegate)
|
CompositionLocalProvider(LocalItemButtonMinHeight provides 40.dp) {
|
||||||
|
ItemButton(
|
||||||
|
textId = R.string.messageNew,
|
||||||
|
icon = R.drawable.ic_message,
|
||||||
|
onClick = delegate::onNewMessageSelected)
|
||||||
|
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
||||||
|
ItemButton(
|
||||||
|
textId = R.string.activity_create_group_title,
|
||||||
|
icon = R.drawable.ic_group,
|
||||||
|
onClick = delegate::onCreateGroupSelected
|
||||||
|
)
|
||||||
|
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
||||||
|
ItemButton(
|
||||||
|
textId = R.string.dialog_join_community_title,
|
||||||
|
icon = R.drawable.ic_globe,
|
||||||
|
onClick = delegate::onJoinCommunitySelected
|
||||||
|
)
|
||||||
|
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
||||||
|
ItemButton(
|
||||||
|
textId = R.string.activity_settings_invite_button_title,
|
||||||
|
icon = R.drawable.ic_invite_friend,
|
||||||
|
Modifier.contentDescription(R.string.AccessibilityId_invite_friend_button),
|
||||||
|
onClick = delegate::onInviteFriend
|
||||||
|
)
|
||||||
|
}
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.padding(horizontal = LocalDimensions.current.margin)
|
||||||
|
.padding(top = LocalDimensions.current.itemSpacing)
|
||||||
|
.padding(bottom = LocalDimensions.current.margin)
|
||||||
|
) {
|
||||||
|
Text(stringResource(R.string.accountIdYours), style = xl)
|
||||||
|
Spacer(modifier = Modifier.height(LocalDimensions.current.xxxsItemSpacing))
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.qrYoursDescription),
|
||||||
|
color = LocalColors.current.textSecondary,
|
||||||
|
style = small
|
||||||
|
)
|
||||||
|
Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing))
|
||||||
|
QrImage(string = accountId, Modifier.contentDescription(R.string.AccessibilityId_qr_code))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Items of the StartConversationHome screen. Use in a [Column]
|
|
||||||
*/
|
|
||||||
@Suppress("UnusedReceiverParameter")
|
|
||||||
@Composable
|
|
||||||
private fun ColumnScope.Items(
|
|
||||||
accountId: String,
|
|
||||||
delegate: StartConversationDelegate
|
|
||||||
) {
|
|
||||||
SmallItemButton(textId = R.string.messageNew, icon = R.drawable.ic_message, onClick = delegate::onNewMessageSelected)
|
|
||||||
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
|
||||||
SmallItemButton(textId = R.string.activity_create_group_title, icon = R.drawable.ic_group, onClick = delegate::onCreateGroupSelected)
|
|
||||||
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
|
||||||
SmallItemButton(textId = R.string.dialog_join_community_title, icon = R.drawable.ic_globe, onClick = delegate::onJoinCommunitySelected)
|
|
||||||
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
|
||||||
SmallItemButton(textId = R.string.activity_settings_invite_button_title, icon = R.drawable.ic_invite_friend, Modifier.contentDescription(
|
|
||||||
R.string.AccessibilityId_invite_friend_button), onClick = delegate::onInviteFriend)
|
|
||||||
Column(
|
|
||||||
modifier = Modifier
|
|
||||||
.padding(horizontal = LocalDimensions.current.margin)
|
|
||||||
.padding(top = LocalDimensions.current.itemSpacing)
|
|
||||||
.padding(bottom = LocalDimensions.current.margin)
|
|
||||||
) {
|
|
||||||
Text(stringResource(R.string.accountIdYours), style = xl)
|
|
||||||
Spacer(modifier = Modifier.height(LocalDimensions.current.xxxsItemSpacing))
|
|
||||||
Text(
|
|
||||||
text = stringResource(R.string.qrYoursDescription),
|
|
||||||
color = LocalColors.current.textSecondary,
|
|
||||||
style = small
|
|
||||||
)
|
|
||||||
Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing))
|
|
||||||
QrImage(string = accountId, Modifier.contentDescription(R.string.AccessibilityId_qr_code))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Preview
|
@Preview
|
||||||
@Composable
|
@Composable
|
||||||
private fun PreviewStartConversationScreen(
|
private fun PreviewStartConversationScreen(
|
||||||
|
@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.Arrangement
|
|||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.BoxScope
|
import androidx.compose.foundation.layout.BoxScope
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.IntrinsicSize
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.RowScope
|
import androidx.compose.foundation.layout.RowScope
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
@ -36,6 +37,7 @@ import androidx.compose.material.TextButton
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
|
import androidx.compose.runtime.staticCompositionLocalOf
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.drawWithContent
|
import androidx.compose.ui.draw.drawWithContent
|
||||||
@ -108,6 +110,8 @@ fun <T> OptionsCard(card: OptionsCard<T>, callbacks: Callbacks<T>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val LocalItemButtonMinHeight = staticCompositionLocalOf { 60.dp }
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ItemButtonWithDrawable(
|
fun ItemButtonWithDrawable(
|
||||||
@StringRes textId: Int,
|
@StringRes textId: Int,
|
||||||
@ -167,7 +171,7 @@ fun ItemButton(
|
|||||||
@Composable
|
@Composable
|
||||||
fun ItemButton(
|
fun ItemButton(
|
||||||
text: String,
|
text: String,
|
||||||
icon: @Composable (BoxScope.() -> Unit),
|
icon: @Composable BoxScope.() -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
colors: ButtonColors = transparentButtonColors(),
|
colors: ButtonColors = transparentButtonColors(),
|
||||||
onClick: () -> Unit
|
onClick: () -> Unit
|
||||||
@ -175,7 +179,7 @@ fun ItemButton(
|
|||||||
TextButton(
|
TextButton(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.heightIn(min = 60.dp),
|
.heightIn(min = LocalItemButtonMinHeight.current),
|
||||||
colors = colors,
|
colors = colors,
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
shape = RectangleShape,
|
shape = RectangleShape,
|
||||||
@ -183,7 +187,7 @@ fun ItemButton(
|
|||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.width(80.dp)
|
.width(80.dp)
|
||||||
.height(60.dp)
|
.height(LocalItemButtonMinHeight.current)
|
||||||
.align(Alignment.CenterVertically)
|
.align(Alignment.CenterVertically)
|
||||||
) {
|
) {
|
||||||
icon()
|
icon()
|
||||||
@ -191,6 +195,7 @@ fun ItemButton(
|
|||||||
Text(
|
Text(
|
||||||
text,
|
text,
|
||||||
Modifier.fillMaxWidth()
|
Modifier.fillMaxWidth()
|
||||||
|
.padding(vertical = LocalDimensions.current.xsItemSpacing)
|
||||||
.align(Alignment.CenterVertically),
|
.align(Alignment.CenterVertically),
|
||||||
style = xl
|
style = xl
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user