RegV5 text style and padding fixes.
This commit is contained in:
parent
ceee5f714d
commit
ba3e15ea6d
@ -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
|
||||
|
||||
@ -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()
|
||||
}
|
||||
|
||||
@ -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
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -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))
|
||||
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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))
|
||||
|
||||
|
||||
@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -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))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user