This commit is contained in:
Andrew 2024-06-19 12:45:13 +09:30
parent 70af6f57b7
commit 01064717b2
3 changed files with 46 additions and 65 deletions

View File

@ -1,16 +1,12 @@
package org.thoughtcrime.securesms.conversation.start.newmessage package org.thoughtcrime.securesms.conversation.start.newmessage
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.HorizontalPager
@ -27,12 +23,10 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.emptyFlow
import network.loki.messenger.R import network.loki.messenger.R
import org.thoughtcrime.securesms.onboarding.ui.ContinueButton
import org.thoughtcrime.securesms.ui.LoadingArcOr import org.thoughtcrime.securesms.ui.LoadingArcOr
import org.thoughtcrime.securesms.ui.LocalDimensions import org.thoughtcrime.securesms.ui.LocalDimensions
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.base
import org.thoughtcrime.securesms.ui.color.Colors import org.thoughtcrime.securesms.ui.color.Colors
import org.thoughtcrime.securesms.ui.color.LocalColors import org.thoughtcrime.securesms.ui.color.LocalColors
import org.thoughtcrime.securesms.ui.components.AppBar import org.thoughtcrime.securesms.ui.components.AppBar
@ -104,14 +98,14 @@ private fun EnterAccountId(
BorderlessButtonWithIcon( BorderlessButtonWithIcon(
text = stringResource(R.string.messageNewDescription), text = stringResource(R.string.messageNewDescription),
modifier = Modifier modifier = Modifier
.animateContentSize()
.contentDescription(R.string.AccessibilityId_help_desk_link) .contentDescription(R.string.AccessibilityId_help_desk_link)
.padding(horizontal = LocalDimensions.current.margin) .padding(horizontal = LocalDimensions.current.margin)
.fillMaxWidth(), .fillMaxWidth(),
style = small, style = small,
color = LocalColors.current.textSecondary, color = LocalColors.current.textSecondary,
iconRes = R.drawable.ic_circle_question_mark iconRes = R.drawable.ic_circle_question_mark,
) { onHelp() } onClick = onHelp
)
} }
Spacer(Modifier.weight(2f)) Spacer(Modifier.weight(2f))
@ -124,7 +118,7 @@ private fun EnterAccountId(
.contentDescription(R.string.next), .contentDescription(R.string.next),
color = LocalColors.current.primary, color = LocalColors.current.primary,
enabled = state.isNextButtonEnabled, enabled = state.isNextButtonEnabled,
onClick = { callbacks.onContinue() } onClick = callbacks::onContinue
) { ) {
LoadingArcOr(state.loading) { LoadingArcOr(state.loading) {
Text(stringResource(R.string.next)) Text(stringResource(R.string.next))

View File

@ -4,11 +4,9 @@ import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.HorizontalPager
@ -72,56 +70,51 @@ private fun PreviewRecoveryPassword() {
@Composable @Composable
private fun RecoveryPassword(state: State, onChange: (String) -> Unit = {}, onContinue: () -> Unit = {}) { private fun RecoveryPassword(state: State, onChange: (String) -> Unit = {}, onContinue: () -> Unit = {}) {
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.verticalScroll(rememberScrollState()) .verticalScroll(rememberScrollState())
) { ) {
Spacer( Spacer(Modifier.weight(1f))
Modifier Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing))
.heightIn(min = LocalDimensions.current.smallItemSpacing)
.weight(1f))
// this is to make sure the spacer above doesn't get compressed to 0
Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing))
Column( Column(
modifier = Modifier.padding(horizontal = LocalDimensions.current.largeMargin) modifier = Modifier.padding(horizontal = LocalDimensions.current.largeMargin)
) { ) {
Row { Row {
Text(
modifier = Modifier.weight(1f),
text = stringResource(R.string.sessionRecoveryPassword),
style = h4
)
Spacer(Modifier.width(LocalDimensions.current.xxsItemSpacing))
Icon(
modifier = Modifier.align(Alignment.CenterVertically),
painter = painterResource(id = R.drawable.ic_shield_outline),
contentDescription = null,
)
}
Spacer(Modifier.height(LocalDimensions.current.smallItemSpacing))
Text( 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), modifier = Modifier.weight(1f),
style = base text = stringResource(R.string.sessionRecoveryPassword),
style = h4
) )
Spacer(Modifier.height(LocalDimensions.current.itemSpacing)) Spacer(Modifier.width(LocalDimensions.current.xxsItemSpacing))
SessionOutlinedTextField( Icon(
text = state.recoveryPhrase, modifier = Modifier.align(Alignment.CenterVertically),
modifier = Modifier painter = painterResource(id = R.drawable.ic_shield_outline),
.fillMaxWidth() contentDescription = null,
.contentDescription(R.string.AccessibilityId_recovery_phrase_input),
placeholder = stringResource(R.string.recoveryPasswordEnter),
onChange = onChange,
onContinue = onContinue,
error = state.error
) )
} }
Spacer(Modifier.height(LocalDimensions.current.smallItemSpacing))
// this is to make sure the spacer below doesn't get compressed to 0 Text(
Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing)) 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),
Spacer(Modifier.weight(2f)) style = base
)
ContinueButton(modifier = Modifier.align(Alignment.CenterHorizontally), onContinue) Spacer(Modifier.height(LocalDimensions.current.itemSpacing))
SessionOutlinedTextField(
text = state.recoveryPhrase,
modifier = Modifier
.fillMaxWidth()
.contentDescription(R.string.AccessibilityId_recovery_phrase_input),
placeholder = stringResource(R.string.recoveryPasswordEnter),
onChange = onChange,
onContinue = onContinue,
error = state.error
)
} }
Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing))
Spacer(Modifier.weight(2f))
ContinueButton(modifier = Modifier.align(Alignment.CenterHorizontally), onContinue)
}
} }

View File

@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
@ -39,11 +38,7 @@ internal fun DisplayName(state: State, onChange: (String) -> Unit = {}, onContin
.fillMaxSize() .fillMaxSize()
.verticalScroll(rememberScrollState()) .verticalScroll(rememberScrollState())
) { ) {
Spacer( Spacer(Modifier.weight(1f))
Modifier
.heightIn(min = LocalDimensions.current.smallItemSpacing)
.weight(1f))
// this is to make sure the spacer above doesn't get compressed to 0
Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing)) Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing))
Column( Column(
@ -68,7 +63,6 @@ internal fun DisplayName(state: State, onChange: (String) -> Unit = {}, onContin
) )
} }
// this is to make sure the spacer below doesn't get compressed to 0
Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing)) Spacer(modifier = Modifier.height(LocalDimensions.current.smallItemSpacing))
Spacer(Modifier.weight(2f)) Spacer(Modifier.weight(2f))