Unifying dimensions and reusing values

This commit is contained in:
ThomasSession 2024-06-18 11:00:56 +10:00 committed by Andrew
parent 6ea535c9c7
commit 1eaf51aee1
18 changed files with 49 additions and 32 deletions

View File

@ -104,11 +104,7 @@
android:screenOrientation="portrait"
android:theme="@style/Theme.Session.DayNight.FlatActionBar" />
<activity
android:name="org.thoughtcrime.securesms.onboarding.RegisterActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.Session.DayNight.FlatActionBar" />
<activity
android:name="org.thoughtcrime.securesms.onboarding.LoadAccountActivity"
android:name="org.thoughtcrime.securesms.onboarding.loadaccount.LoadAccountActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.Session.DayNight.FlatActionBar" />

View File

@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@ -29,6 +30,7 @@ import network.loki.messenger.R
import org.session.libsession.utilities.TextSecurePreferences
import org.thoughtcrime.securesms.preferences.copyPublicKey
import org.thoughtcrime.securesms.preferences.sendInvitationToUseSession
import org.thoughtcrime.securesms.ui.LocalDimensions
import org.thoughtcrime.securesms.ui.color.LocalColors
import org.thoughtcrime.securesms.ui.PreviewTheme
import org.thoughtcrime.securesms.ui.base
@ -84,7 +86,7 @@ private fun InviteFriend(
.border(
width = 1.dp,
color = LocalColors.current.textSecondary,
shape = RoundedCornerShape(size = 13.dp)
shape = MaterialTheme.shapes.small
)
.fillMaxWidth()
.wrapContentHeight()

View File

@ -64,6 +64,7 @@ import org.thoughtcrime.securesms.ui.Divider
import org.thoughtcrime.securesms.ui.GetString
import org.thoughtcrime.securesms.ui.HorizontalPagerIndicator
import org.thoughtcrime.securesms.ui.ItemButton
import org.thoughtcrime.securesms.ui.LocalDimensions
import org.thoughtcrime.securesms.ui.color.LocalColors
import org.thoughtcrime.securesms.ui.PreviewTheme
import org.thoughtcrime.securesms.ui.color.Colors
@ -338,7 +339,7 @@ fun FileDetails(fileDetails: List<TitledText>) {
CellWithPaddingAndMargin(padding = 0.dp) {
FlowRow(
modifier = Modifier.padding(vertical = 24.dp, horizontal = 12.dp),
modifier = Modifier.padding(vertical = 24.dp, horizontal = LocalDimensions.current.itemSpacingXSmall),
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
fileDetails.forEach {
@ -347,7 +348,7 @@ fun FileDetails(fileDetails: List<TitledText>) {
it,
modifier = Modifier
.widthIn(min = maxWidth.div(2))
.padding(horizontal = 12.dp)
.padding(horizontal = LocalDimensions.current.itemSpacingXSmall)
.width(IntrinsicSize.Max)
)
}

View File

@ -60,7 +60,7 @@ internal fun EmptyView(newAccount: Boolean) {
stringResource(R.string.conversationsNone),
style = h8,
textAlign = TextAlign.Center,
modifier = Modifier.padding(bottom = 12.dp))
modifier = Modifier.padding(bottom = LocalDimensions.current.itemSpacingXSmall))
Text(
stringResource(R.string.onboardingHitThePlusButton),
style = small,

View File

@ -54,7 +54,7 @@ internal fun SeedReminder(startRecoveryPasswordActivity: () -> Unit) {
stringResource(R.string.save_your_recovery_password),
style = h8
)
Spacer(Modifier.requiredWidth(LocalDimensions.current.itemSpacingExtraSmall))
Spacer(Modifier.requiredWidth(LocalDimensions.current.itemSpacingXXSmall))
SessionShieldIcon()
}
Text(

View File

@ -18,6 +18,7 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Card
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
@ -148,7 +149,7 @@ internal fun LandingScreen(
.contentDescription(R.string.AccessibilityId_create_account_button),
onClick = createAccount
)
Spacer(modifier = Modifier.height(LocalDimensions.current.itemSpacingExtraSmall))
Spacer(modifier = Modifier.height(LocalDimensions.current.itemSpacingSmall))
PrimaryOutlineButton(
stringResource(R.string.onboardingAccountExists),
modifier = Modifier
@ -165,7 +166,7 @@ internal fun LandingScreen(
.contentDescription(R.string.AccessibilityId_open_url),
onClick = { isUrlDialogVisible = true }
)
Spacer(modifier = Modifier.height(LocalDimensions.current.itemSpacingExtraSmall))
Spacer(modifier = Modifier.height(LocalDimensions.current.itemSpacingXXSmall))
}
}
}
@ -210,7 +211,7 @@ private fun MessageText(
) {
Card(
modifier = modifier.fillMaxWidth(0.666f),
shape = RoundedCornerShape(size = 13.dp),
shape = MaterialTheme.shapes.small,
backgroundColor = color,
elevation = 0.dp
) {
@ -218,7 +219,10 @@ private fun MessageText(
text,
style = large,
color = textColor,
modifier = Modifier.padding(horizontal = 16.dp, vertical = 12.dp)
modifier = Modifier.padding(
horizontal = LocalDimensions.current.itemSpacingSmall,
vertical = LocalDimensions.current.itemSpacingXSmall
)
)
}
}

View File

@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
@ -85,12 +86,12 @@ private fun RecoveryPassword(state: State, onChange: (String) -> Unit = {}, onCo
contentDescription = null,
)
}
Spacer(Modifier.size(28.dp))
Spacer(Modifier.height(LocalDimensions.current.itemSpacingSmall))
Text(
stringResource(R.string.activity_link_enter_your_recovery_password_to_load_your_account_if_you_haven_t_saved_it_you_can_find_it_in_your_app_settings),
style = base
)
Spacer(Modifier.size(24.dp))
Spacer(Modifier.height(LocalDimensions.current.itemSpacingMedium))
SessionOutlinedTextField(
text = state.recoveryPhrase,
modifier = Modifier

View File

@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ButtonDefaults
import androidx.compose.material.RadioButton
@ -49,7 +50,7 @@ internal fun MessageNotificationsScreen(
Text(stringResource(R.string.notificationsMessage), style = h4)
Spacer(Modifier.height(LocalDimensions.current.marginExtraSmall))
Text(stringResource(R.string.onboardingMessageNotificationExplaination), style = base)
Spacer(Modifier.height(LocalDimensions.current.marginExtraSmall))
Spacer(Modifier.height(LocalDimensions.current.itemSpacingMedium))
NotificationRadioButton(
R.string.activity_pn_mode_fast_mode,
R.string.activity_pn_mode_fast_mode_explanation,
@ -58,7 +59,7 @@ internal fun MessageNotificationsScreen(
selected = state.pushEnabled,
onClick = { setEnabled(true) }
)
Spacer(Modifier.height(LocalDimensions.current.marginExtraSmall))
Spacer(Modifier.height(LocalDimensions.current.itemSpacingXSmall))
NotificationRadioButton(
R.string.activity_pn_mode_slow_mode,
R.string.activity_pn_mode_slow_mode_explanation,

View File

@ -4,7 +4,9 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@ -33,18 +35,18 @@ private fun PreviewDisplayName() {
internal fun DisplayName(state: State, onChange: (String) -> Unit = {}, onContinue: () -> Unit = {}) {
Column {
Column(
verticalArrangement = Arrangement.spacedBy(LocalDimensions.current.itemSpacingOnboarding),
modifier = Modifier
.padding(horizontal = LocalDimensions.current.marginOnboarding)
.weight(1f)
) {
Spacer(modifier = Modifier.weight(1f))
Text(stringResource(state.title), style = h4)
Spacer(Modifier.height(LocalDimensions.current.itemSpacingSmall))
Text(
stringResource(state.description),
style = base,
modifier = Modifier.padding(bottom = 12.dp))
modifier = Modifier.padding(bottom = LocalDimensions.current.itemSpacingXSmall))
Spacer(Modifier.height(LocalDimensions.current.itemSpacingMedium))
SessionOutlinedTextField(
text = state.displayName,
modifier = Modifier

View File

@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@ -73,7 +74,7 @@ private fun RecoveryPasswordCell(seed: String, copySeed:() -> Unit = {}) {
stringResource(R.string.sessionRecoveryPassword),
style = h8
)
Spacer(Modifier.width(LocalDimensions.current.itemSpacingExtraSmall))
Spacer(Modifier.width(LocalDimensions.current.itemSpacingXXSmall))
SessionShieldIcon()
}
@ -137,7 +138,7 @@ private fun RecoveryPassword(seed: String) {
.border(
width = 1.dp,
color = LocalColors.current.borders,
shape = RoundedCornerShape(11.dp)
shape = MaterialTheme.shapes.small
)
.padding(LocalDimensions.current.marginSmall),
textAlign = TextAlign.Center,

View File

@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.TextButton
import androidx.compose.runtime.Composable
@ -35,7 +36,7 @@ fun AlertDialog(
) {
androidx.compose.material.AlertDialog(
onDismissRequest,
shape = RoundedCornerShape(12.dp),
shape = MaterialTheme.shapes.small,
backgroundColor = LocalColors.current.backgroundSecondary,
buttons = {
Box {

View File

@ -23,6 +23,7 @@ import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.LocalContentAlpha
import androidx.compose.material.LocalContentColor
import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
@ -46,7 +47,7 @@ import kotlin.math.sign
@Composable
fun BoxScope.HorizontalPagerIndicator(pagerState: PagerState) {
if (pagerState.pageCount >= 2) Card(
shape = RoundedCornerShape(50.dp),
shape = MaterialTheme.shapes.large,
backgroundColor = Color.Black.copy(alpha = 0.4f),
modifier = Modifier
.align(Alignment.BottomCenter)

View File

@ -31,6 +31,7 @@ import androidx.compose.material.Card
import androidx.compose.material.CircularProgressIndicator
import androidx.compose.material.Icon
import androidx.compose.material.LocalContentColor
import androidx.compose.material.MaterialTheme
import androidx.compose.material.RadioButton
import androidx.compose.material.Text
import androidx.compose.material.TextButton
@ -213,7 +214,7 @@ fun CellWithPaddingAndMargin(
) {
Card(
backgroundColor = LocalColors.current.backgroundSecondary,
shape = RoundedCornerShape(16.dp),
shape = MaterialTheme.shapes.medium,
elevation = 0.dp,
modifier = Modifier
.wrapContentHeight()

View File

@ -8,7 +8,8 @@ val LocalDimensions = staticCompositionLocalOf { Dimensions() }
data class Dimensions(
val itemSpacingTiny: Dp = 4.dp,
val itemSpacingExtraSmall: Dp = 8.dp,
val itemSpacingXXSmall: Dp = 8.dp,
val itemSpacingXSmall: Dp = 12.dp,
val itemSpacingSmall: Dp = 16.dp,
val itemSpacingOnboarding: Dp = 20.dp,
val itemSpacingMedium: Dp = 24.dp,

View File

@ -14,6 +14,7 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.dp
import org.session.libsession.utilities.AppTextSecurePreferences
import org.thoughtcrime.securesms.ui.color.ClassicDark
import org.thoughtcrime.securesms.ui.color.ClassicLight
@ -80,7 +81,9 @@ private fun Colors.toMaterialColors() = androidx.compose.material.Colors(
@Composable private fun Context.colors() = AppTextSecurePreferences(this).colors()
val sessionShapes = Shapes(
small = RoundedCornerShape(50)
small = RoundedCornerShape(12.dp),
medium = RoundedCornerShape(16.dp),
large = RoundedCornerShape(50.dp)
)
/**

View File

@ -61,7 +61,7 @@ fun Button(
modifier: Modifier = Modifier,
enabled: Boolean = true,
size: ButtonStyle = ButtonStyle.Large,
shape: Shape = MaterialTheme.shapes.small,
shape: Shape = MaterialTheme.shapes.large,
border: BorderStroke? = type.border(color, enabled),
colors: ButtonColors = type.buttonColors(color),
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
@ -98,7 +98,7 @@ fun Button(
modifier: Modifier = Modifier,
enabled: Boolean = true,
size: ButtonStyle = ButtonStyle.Large,
shape: Shape = MaterialTheme.shapes.small,
shape: Shape = MaterialTheme.shapes.large,
border: BorderStroke? = type.border(color, enabled),
colors: ButtonColors = type.buttonColors(color),
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },

View File

@ -182,7 +182,7 @@ fun ScanQrCode(errors: Flow<String>, onScan: (String) -> Unit) {
Modifier
.aspectRatio(1f)
.padding(20.dp)
.clip(shape = RoundedCornerShape(20.dp))
.clip(shape = RoundedCornerShape(26.dp))
.background(Color(0x33ffffff))
.align(Alignment.Center)
)

View File

@ -12,6 +12,7 @@ import androidx.compose.foundation.text.InlineTextContent
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.appendInlineContent
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.OutlinedTextField
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
@ -26,6 +27,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import org.thoughtcrime.securesms.ui.LocalDimensions
import org.thoughtcrime.securesms.ui.base
import org.thoughtcrime.securesms.ui.baseBold
import org.thoughtcrime.securesms.ui.color.LocalColors
@ -61,7 +63,7 @@ fun SessionOutlinedTextField(
onSend = { onContinue() },
),
isError = error != null,
shape = RoundedCornerShape(12.dp)
shape = MaterialTheme.shapes.small
)
error?.let {
Spacer(modifier = Modifier.height(14.dp))