RegV5 text style and padding fixes.

This commit is contained in:
jeffrey-signal 2026-06-03 10:06:48 -04:00 committed by Cody Henthorne
parent ceee5f714d
commit ba3e15ea6d
16 changed files with 196 additions and 133 deletions

View File

@ -24,10 +24,7 @@ import androidx.compose.animation.slideOutHorizontally
import androidx.compose.animation.slideOutVertically
import androidx.compose.animation.togetherWith
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable

View File

@ -17,7 +17,6 @@ import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeDrawing
@ -170,7 +169,7 @@ object RegistrationScaffold {
shadowElevation = if (isElevated) 8.dp else 0.dp
) {
Box(
modifier = Modifier.windowInsetsPadding(WindowInsets.navigationBars)
modifier = Modifier.windowInsetsPadding(WindowInsets.safeDrawing.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom))
) {
content()
}

View File

@ -78,8 +78,10 @@ private fun OnePaneLayout(
horizontalAlignment = Alignment.CenterHorizontally
) {
Title()
Spacer(modifier = Modifier.height(12.dp))
Description(state)
Description(
state = state,
modifier = Modifier.padding(top = 16.dp)
)
}
},
footer = {
@ -177,12 +179,15 @@ private fun Title() {
}
@Composable
private fun Description(state: AccountLockedState) {
private fun Description(
state: AccountLockedState,
modifier: Modifier = Modifier
) {
Text(
text = stringResource(R.string.AccountLockedScreen__your_account, state.daysRemaining),
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.fillMaxWidth()
modifier = modifier
)
}

View File

@ -187,13 +187,13 @@ private fun Description() {
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.size(8.dp))
Text(
text = stringResource(R.string.EnterAepScreen__your_recovery_key_is_a_64_character_code),
style = MaterialTheme.typography.bodyMedium,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.fillMaxWidth()
modifier = Modifier
.fillMaxWidth()
.padding(top = 16.dp)
)
}

View File

@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
@ -36,6 +37,7 @@ import org.signal.registration.R
import org.signal.registration.screens.OnePaneRegistrationScaffold
import org.signal.registration.screens.RegistrationScaffold
import org.signal.registration.screens.TwoPaneRegistrationScaffold
import org.signal.registration.screens.attachDebugLogHelper
import org.signal.registration.screens.util.MockPermissionsState
import org.signal.registration.test.TestTags
@ -76,6 +78,7 @@ private fun OnePane(params: RegistrationScaffold.Params.OnePane, permissionState
},
footer = {
FooterContent(
params = params,
permissionState = permissionState,
isElevated = scrollState.canScrollForward,
onProceed = onProceed
@ -88,7 +91,6 @@ private fun OnePane(params: RegistrationScaffold.Params.OnePane, permissionState
@Composable
private fun TwoPane(params: RegistrationScaffold.Params.TwoPane, permissionState: PermissionState, onProceed: () -> Unit) {
val firstPaneScrollState = rememberScrollState()
val secondPaneScrollState = rememberScrollState()
TwoPaneRegistrationScaffold(
params = params,
@ -105,15 +107,14 @@ private fun TwoPane(params: RegistrationScaffold.Params.TwoPane, permissionState
SecondPaneContent(
modifier = Modifier
.weight(1f)
.fillMaxHeight()
.verticalScroll(secondPaneScrollState)
.padding(paddingValues)
)
},
footer = {
FooterContent(
params = params,
permissionState = permissionState,
isElevated = firstPaneScrollState.canScrollForward || secondPaneScrollState.canScrollForward,
isElevated = firstPaneScrollState.canScrollForward,
onProceed = onProceed
)
}
@ -127,13 +128,17 @@ private fun FirstPaneContent(
Column(modifier = modifier) {
Text(
text = stringResource(R.string.AllowNotificationsScreen__allow_notifications),
style = MaterialTheme.typography.headlineLarge,
modifier = Modifier.padding(bottom = 12.dp)
style = MaterialTheme.typography.headlineMedium,
modifier = Modifier
.fillMaxWidth()
.attachDebugLogHelper()
)
Text(
text = stringResource(R.string.AllowNotificationsScreen__signal_would_like_to_request_the_notification_permission),
style = MaterialTheme.typography.titleMedium
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.padding(top = 16.dp)
)
}
}
@ -153,6 +158,7 @@ private fun SecondPaneContent(
@OptIn(ExperimentalPermissionsApi::class)
@Composable
private fun FooterContent(
params: RegistrationScaffold.Params,
permissionState: PermissionState,
isElevated: Boolean,
onProceed: () -> Unit
@ -162,7 +168,7 @@ private fun FooterContent(
) {
Row(
horizontalArrangement = spacedBy(56.dp),
modifier = Modifier.padding(56.dp)
modifier = Modifier.padding(params.footerPadding)
) {
Spacer(modifier = Modifier.weight(1f))

View File

@ -9,6 +9,7 @@ import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
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
@ -42,6 +43,7 @@ import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.SpanStyle
@ -97,10 +99,23 @@ private fun OnePaneLayout(
scrollBehavior = topBarScrollBehavior,
onCloseClick = { onEvent(CountryCodePickerScreenEvents.Dismissed) }
)
},
content = { paddingValues ->
Column(
modifier = Modifier
.fillMaxSize()
.nestedScroll(topBarScrollBehavior.nestedScrollConnection)
) {
CountryList(
showTitle = true,
state = state,
onEvent = onEvent,
contentPadding = paddingValues,
modifier = Modifier.weight(1f)
)
}
}
) {
CountryList(state, onEvent)
}
)
}
@OptIn(ExperimentalMaterial3Api::class)
@ -142,7 +157,11 @@ private fun TwoPaneLayout(
.fillMaxHeight()
.padding(paddingValues)
) {
CountryList(state, onEvent)
CountryList(
showTitle = false,
state = state,
onEvent = onEvent
)
}
}
)
@ -165,14 +184,35 @@ fun TopAppBar(
}
@Composable
private fun CountryList(state: CountryCodeState, onEvent: (CountryCodePickerScreenEvents) -> Unit) {
private fun CountryList(
state: CountryCodeState,
onEvent: (CountryCodePickerScreenEvents) -> Unit,
modifier: Modifier = Modifier,
contentPadding: PaddingValues = PaddingValues(),
showTitle: Boolean
) {
val listState = rememberLazyListState()
val coroutineScope = rememberCoroutineScope()
LazyColumn(
modifier = modifier,
state = listState,
contentPadding = contentPadding,
horizontalAlignment = Alignment.CenterHorizontally
) {
item {
if (showTitle) {
Text(
text = stringResource(R.string.CountryCodeSelectScreen__your_country),
style = MaterialTheme.typography.headlineMedium,
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 28.dp)
.attachDebugLogHelper()
)
}
}
stickyHeader {
SearchBar(
text = state.query,
@ -351,8 +391,6 @@ private fun SearchBar(
shape = RoundedCornerShape(32.dp),
modifier = modifier
.background(MaterialTheme.colorScheme.background)
.padding(bottom = 18.dp)
.padding(horizontal = 16.dp)
.fillMaxWidth()
.defaultMinSize(minHeight = 54.dp)
.focusRequester(focusRequester),

View File

@ -69,6 +69,7 @@ import org.signal.registration.R
import org.signal.registration.screens.OnePaneRegistrationScaffold
import org.signal.registration.screens.RegistrationScaffold
import org.signal.registration.screens.TwoPaneRegistrationScaffold
import org.signal.registration.screens.attachDebugLogHelper
import org.signal.registration.screens.quickrestore.QrState
import org.signal.registration.test.TestTags
@ -122,8 +123,8 @@ private fun OnePane(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = spacedBy(64.dp),
modifier = Modifier
.padding(paddingValues)
.verticalScroll(scrollState)
.padding(paddingValues)
) {
Title()
@ -134,6 +135,7 @@ private fun OnePane(
},
footer = {
OnePaneFooterContent(
params = params,
isElevated = scrollState.canScrollForward,
onEvent = onEvent
)
@ -168,6 +170,7 @@ private fun TwoPane(
},
footer = {
TwoPaneFooterContent(
params = params,
isElevated = false,
onEvent = onEvent
)
@ -194,7 +197,10 @@ private fun FirstPaneContent(
private fun Title() {
Text(
text = stringResource(R.string.LinkAccountScreen__scan_this_code_to_link_your_account),
style = MaterialTheme.typography.headlineLarge
style = MaterialTheme.typography.headlineMedium,
modifier = Modifier
.fillMaxWidth()
.attachDebugLogHelper()
)
}
@ -465,6 +471,7 @@ fun getQrCodeSize(isInOverlay: Boolean): Dp {
@Composable
private fun OnePaneFooterContent(
params: RegistrationScaffold.Params.OnePane,
isElevated: Boolean,
onEvent: (LinkAccountScreenEvent) -> Unit,
modifier: Modifier = Modifier
@ -475,8 +482,8 @@ private fun OnePaneFooterContent(
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = modifier
.padding(start = 36.dp, end = 36.dp, bottom = 16.dp)
.fillMaxWidth()
.padding(params.footerPadding)
) {
Row {
DontHaveSignal()
@ -488,6 +495,7 @@ private fun OnePaneFooterContent(
@Composable
private fun TwoPaneFooterContent(
params: RegistrationScaffold.Params.TwoPane,
isElevated: Boolean,
onEvent: (LinkAccountScreenEvent) -> Unit,
modifier: Modifier = Modifier
@ -497,7 +505,7 @@ private fun TwoPaneFooterContent(
) {
Row(
horizontalArrangement = spacedBy(8.dp),
modifier = modifier.padding(36.dp)
modifier = modifier.padding(params.footerPadding)
) {
Spacer(modifier = Modifier.weight(1f))

View File

@ -53,6 +53,7 @@ import org.signal.registration.R
import org.signal.registration.screens.OnePaneRegistrationScaffold
import org.signal.registration.screens.RegistrationScaffold
import org.signal.registration.screens.TwoPaneRegistrationScaffold
import org.signal.registration.screens.attachDebugLogHelper
private const val PASSPHRASE_LENGTH = 30
private const val CHUNK_SIZE = 5
@ -200,16 +201,16 @@ private fun Description() {
Text(
text = stringResource(R.string.LocalBackupRestoreScreen__enter_backup_passphrase),
style = MaterialTheme.typography.headlineMedium,
modifier = Modifier.fillMaxWidth()
modifier = Modifier
.fillMaxWidth()
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.size(8.dp))
Text(
text = stringResource(R.string.LocalBackupRestoreScreen__enter_the_30_digit_passphrase),
style = MaterialTheme.typography.bodyMedium,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.fillMaxWidth()
modifier = Modifier.padding(top = 16.dp)
)
}

View File

@ -70,7 +70,7 @@ internal fun LocalBackupRestoreLayout(
Column(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 24.dp, vertical = 16.dp),
.padding(params.footerPadding),
horizontalAlignment = Alignment.CenterHorizontally
) {
primaryButton?.invoke(Modifier.fillMaxWidth())
@ -125,7 +125,7 @@ internal fun LocalBackupRestoreLayout(
Row(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 24.dp, vertical = 16.dp),
.padding(params.footerPadding),
horizontalArrangement = Arrangement.End,
verticalAlignment = Alignment.CenterVertically
) {
@ -153,13 +153,11 @@ internal fun Description(headline: String, body: String) {
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = body,
style = MaterialTheme.typography.bodyMedium,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.fillMaxWidth()
modifier = Modifier.padding(top = 16.dp)
)
}

View File

@ -48,6 +48,7 @@ import org.signal.registration.R
import org.signal.registration.screens.OnePaneRegistrationScaffold
import org.signal.registration.screens.RegistrationScaffold
import org.signal.registration.screens.TwoPaneRegistrationScaffold
import org.signal.registration.screens.attachDebugLogHelper
import org.signal.registration.test.TestTags
/**
@ -139,15 +140,17 @@ private fun FirstPaneContent(
Column(modifier = modifier) {
Text(
text = stringResource(R.string.MessageSyncScreen__syncing_messages),
style = MaterialTheme.typography.headlineLarge,
modifier = Modifier.padding(bottom = 12.dp)
style = MaterialTheme.typography.headlineMedium,
modifier = Modifier
.fillMaxWidth()
.attachDebugLogHelper()
)
Text(
text = stringResource(R.string.MessageSyncScreen__this_may_take_a_few_minutes),
style = MaterialTheme.typography.titleMedium,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.padding(bottom = 47.dp)
modifier = Modifier.padding(top = 16.dp)
)
LinearProgressIndicator(
@ -161,7 +164,7 @@ private fun FirstPaneContent(
drawStopIndicator = {},
gapSize = 0.dp,
modifier = Modifier
.padding(bottom = 16.dp)
.padding(top = 48.dp, bottom = 16.dp)
.widthIn(max = 415.dp)
.fillMaxWidth()
)
@ -203,27 +206,31 @@ private fun FooterContent(
isElevated = isElevated
) {
when (breakpoint) {
is WindowBreakpoint.Small -> StackedFooter(params, modifier, onEvent)
is WindowBreakpoint.Medium -> StackedFooter(params, modifier, onEvent)
is WindowBreakpoint.Large -> InlineFooter(modifier, onEvent)
is WindowBreakpoint.Small, is WindowBreakpoint.Medium -> StackedFooter(params, modifier, onEvent)
is WindowBreakpoint.Large -> InlineFooter(params, modifier, onEvent)
}
}
}
@Composable
private fun StackedFooter(params: RegistrationScaffold.Params, modifier: Modifier, onEvent: (MessageSyncScreenEvent) -> Unit) {
Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) {
private fun StackedFooter(
params: RegistrationScaffold.Params,
modifier: Modifier,
onEvent: (MessageSyncScreenEvent) -> Unit
) {
Column(
modifier = modifier
.padding(params.footerPadding)
.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Notice(
onEvent = onEvent,
modifier = Modifier
.padding(horizontal = 58.dp)
.padding(bottom = 16.dp)
modifier = Modifier.padding(bottom = 16.dp)
)
Cancel(
onEvent = onEvent,
modifier = Modifier
.padding(horizontal = 56.dp)
.padding(bottom = 36.dp)
.widthIn(max = params.maxButtonWidth)
.fillMaxWidth()
)
@ -231,31 +238,47 @@ private fun StackedFooter(params: RegistrationScaffold.Params, modifier: Modifie
}
@Composable
private fun InlineFooter(modifier: Modifier, onEvent: (MessageSyncScreenEvent) -> Unit) {
Box(modifier = modifier) {
Notice(
onEvent = onEvent,
modifier = Modifier
.padding(horizontal = 58.dp, vertical = 36.dp)
)
Cancel(
onEvent = onEvent,
modifier = Modifier
.padding(horizontal = 56.dp, vertical = 36.dp)
.align(Alignment.CenterEnd)
)
private fun InlineFooter(
params: RegistrationScaffold.Params,
modifier: Modifier,
onEvent: (MessageSyncScreenEvent) -> Unit
) {
Row(
modifier = modifier
.padding(params.footerPadding)
.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Spacer(modifier = Modifier.weight(1f))
Notice(onEvent = onEvent)
Box(
modifier = Modifier.weight(1f),
contentAlignment = Alignment.CenterEnd
) {
Cancel(
onEvent = onEvent,
modifier = Modifier
.widthIn(max = params.maxButtonWidth)
.padding(start = 16.dp)
)
}
}
}
@Composable
private fun Notice(modifier: Modifier, onEvent: (MessageSyncScreenEvent) -> Unit) {
private fun Notice(
modifier: Modifier = Modifier,
onEvent: (MessageSyncScreenEvent) -> Unit
) {
Row(modifier = modifier) {
Spacer(modifier = Modifier.weight(1f))
Icon(
imageVector = SignalIcons.Lock.imageVector,
contentDescription = null,
tint = MaterialTheme.colorScheme.onSurfaceVariant
tint = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier
.padding(end = 2.dp)
.align(Alignment.CenterVertically)
)
Text(
@ -287,9 +310,8 @@ private fun Notice(modifier: Modifier, onEvent: (MessageSyncScreenEvent) -> Unit
modifier = Modifier
.testTag(TestTags.MESSAGE_SYNC_LEARN_MORE_LINK)
.widthIn(max = 405.dp)
.align(Alignment.CenterVertically)
)
Spacer(modifier = Modifier.weight(1f))
}
}

View File

@ -311,13 +311,11 @@ private fun Description() {
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.height(16.dp))
Text(
text = stringResource(R.string.RegistrationActivity_you_will_receive_a_verification_code),
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.fillMaxWidth()
modifier = Modifier.padding(top = 16.dp)
)
}

View File

@ -57,7 +57,6 @@ import org.signal.registration.screens.attachDebugLogHelper
* PIN creation screen for the registration flow.
* Allows users to create a new PIN for their account.
*/
@Suppress("AssignedValueIsNeverRead")
@Composable
fun PinCreationScreen(
state: PinCreationState,
@ -240,22 +239,17 @@ private fun PinDescription(
else -> stringResource(R.string.PinCreationScreen__create_your_pin)
},
style = MaterialTheme.typography.headlineMedium,
textAlign = TextAlign.Start,
modifier = Modifier
.fillMaxWidth()
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.height(16.dp))
if (isConfirmEnabled) {
Text(
text = stringResource(R.string.PinCreationScreen__reenter_pin_description),
style = MaterialTheme.typography.bodyLarge.copy(
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Start
),
modifier = Modifier.fillMaxWidth()
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.padding(top = 16.dp)
)
} else {
val descriptionText = buildAnnotatedString {
@ -275,11 +269,10 @@ private fun PinDescription(
ClickableText(
text = descriptionText,
style = MaterialTheme.typography.bodyLarge.copy(
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Start
),
modifier = Modifier.fillMaxWidth(),
style = MaterialTheme.typography.bodyLarge.copy(color = MaterialTheme.colorScheme.onSurfaceVariant),
modifier = Modifier
.fillMaxWidth()
.padding(top = 16.dp),
onClick = { offset ->
descriptionText.getStringAnnotations(tag = "LEARN_MORE", start = offset, end = offset)
.firstOrNull()

View File

@ -256,18 +256,17 @@ private fun PinDescription(
text = titleString,
style = MaterialTheme.typography.headlineMedium,
textAlign = TextAlign.Center,
modifier = Modifier.attachDebugLogHelper()
modifier = Modifier
.fillMaxWidth()
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.height(12.dp))
Text(
text = stringResource(R.string.PinEntryScreen__enter_the_pin_you_created),
style = MaterialTheme.typography.bodyLarge.copy(
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Start
),
color = MaterialTheme.colorScheme.onSurfaceVariant
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Start,
modifier = Modifier.padding(top = 16.dp)
)
}
}

View File

@ -201,7 +201,10 @@ private fun BackupInfoContent(
state: RemoteBackupRestoreState
) {
BackupInfoHeading()
BackupInfoDetails(state = state)
BackupInfoDetails(
state = state,
modifier = Modifier.padding(top = 16.dp)
)
}
@Composable
@ -229,36 +232,37 @@ private fun BackupInfoHeading() {
}
@Composable
private fun BackupInfoDetails(state: RemoteBackupRestoreState) {
if (state.backupTime > 0) {
Spacer(modifier = Modifier.height(12.dp))
private fun BackupInfoDetails(state: RemoteBackupRestoreState, modifier: Modifier = Modifier) {
Column(
verticalArrangement = Arrangement.spacedBy(16.dp),
modifier = modifier
) {
if (state.backupTime > 0) {
val context = LocalContext.current
val (dateStr, timeStr) = remember(context, state.backupTime) {
val date = Date(state.backupTime)
val dateFormatted = DateFormat.getMediumDateFormat(context).format(date)
val timeFormatted = DateFormat.getTimeFormat(context).format(date)
dateFormatted to timeFormatted
}
val context = LocalContext.current
val (dateStr, timeStr) = remember(context, state.backupTime) {
val date = Date(state.backupTime)
val dateFormatted = DateFormat.getMediumDateFormat(context).format(date)
val timeFormatted = DateFormat.getTimeFormat(context).format(date)
dateFormatted to timeFormatted
Text(
text = stringResource(R.string.RemoteRestoreScreen__your_last_backup_was_made_on_s_at_s, dateStr, timeStr),
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Center,
modifier = Modifier.fillMaxWidth()
)
}
Text(
text = stringResource(R.string.RemoteRestoreScreen__your_last_backup_was_made_on_s_at_s, dateStr, timeStr),
text = stringResource(R.string.RemoteRestoreScreen__your_media_will_restore_in_the_background),
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Center,
modifier = Modifier.fillMaxWidth()
)
}
Spacer(modifier = Modifier.height(16.dp))
Text(
text = stringResource(R.string.RemoteRestoreScreen__your_media_will_restore_in_the_background),
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
textAlign = TextAlign.Center,
modifier = Modifier.fillMaxWidth()
)
}
@Composable

View File

@ -179,13 +179,11 @@ private fun Description() {
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(R.string.ArchiveRestoreSelectionScreen__subheading),
style = MaterialTheme.typography.bodyMedium,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.fillMaxWidth()
modifier = Modifier.padding(top = 16.dp)
)
}

View File

@ -185,8 +185,7 @@ private fun OnePaneLayout(
modifier = Modifier
.fillMaxSize()
.verticalScroll(scrollState)
.padding(paddingValues),
horizontalAlignment = Alignment.CenterHorizontally
.padding(paddingValues)
) {
Description(state, onEvent)
@ -453,13 +452,11 @@ private fun Description(state: VerificationCodeState, onEvent: (VerificationCode
.attachDebugLogHelper()
)
Spacer(modifier = Modifier.height(16.dp))
Text(
text = stringResource(R.string.VerificationCodeScreen__enter_the_code_we_sent_to_s, state.e164),
style = MaterialTheme.typography.bodyMedium,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier.fillMaxWidth()
modifier = Modifier.padding(top = 16.dp)
)
Spacer(modifier = Modifier.height(8.dp))