From 9613c37d296cee16bbe2e4368e5184a0e4e2e65e Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 10 Dec 2024 17:30:15 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../NavigationButtonsState.kt | 8 +- .../src/main/res/drawable/img_card_visa.webp | Bin 0 -> 71700 bytes .../impl/DefaultOnboardingVisaComponent.kt | 2 +- .../OnboardingVisaAccessCodeComponent.kt | 2 +- .../model/OnboardingVisaAccessCodeModel.kt | 2 +- .../accesscode/ui/OnboardingVisaAccessCode.kt | 167 ++++++++++++++++++ .../ui/state/OnboardingVisaAccessCodeUM.kt | 20 +++ .../welcome/OnboardingVisaWelcomeComponent.kt | 10 +- .../child/welcome/ui/OnboardingVisaWelcome.kt | 124 +++++++++++++ .../ui/state/OnboardingVisaWelcomeUM.kt | 11 ++ 10 files changed, 338 insertions(+), 8 deletions(-) create mode 100644 core/ui/src/main/res/drawable/img_card_visa.webp create mode 100644 features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/OnboardingVisaAccessCode.kt create mode 100644 features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/state/OnboardingVisaAccessCodeUM.kt create mode 100644 features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/OnboardingVisaWelcome.kt create mode 100644 features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/state/OnboardingVisaWelcomeUM.kt diff --git a/common/ui/src/main/java/com/tangem/common/ui/navigationButtons/NavigationButtonsState.kt b/common/ui/src/main/java/com/tangem/common/ui/navigationButtons/NavigationButtonsState.kt index cb7a3743ec..c534f12308 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/navigationButtons/NavigationButtonsState.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/navigationButtons/NavigationButtonsState.kt @@ -19,9 +19,9 @@ sealed class NavigationButtonsState { data class NavigationButton( val textReference: TextReference, @DrawableRes val iconRes: Int? = null, - val isSecondary: Boolean, - val isIconVisible: Boolean, - val showProgress: Boolean, - val isEnabled: Boolean, + val isSecondary: Boolean = false, + val isIconVisible: Boolean = false, + val showProgress: Boolean = false, + val isEnabled: Boolean = true, val onClick: () -> Unit, ) \ No newline at end of file diff --git a/core/ui/src/main/res/drawable/img_card_visa.webp b/core/ui/src/main/res/drawable/img_card_visa.webp new file mode 100644 index 0000000000000000000000000000000000000000..bd2804ca997a5208ed5e55fbc7c7a6592545e42d GIT binary patch literal 71700 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

gRG6?`hxbRxerBO4(OlxmNQyI& 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 J6J>|x7sXVhq$d*(|`7)%X?q#x#Sk85QDq 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 literal 0 HcmV?d00001 diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/DefaultOnboardingVisaComponent.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/DefaultOnboardingVisaComponent.kt index fe903926b8..67982e4535 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/DefaultOnboardingVisaComponent.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/DefaultOnboardingVisaComponent.kt @@ -16,7 +16,7 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @Suppress("UnusedPrivateMember") -class DefaultOnboardingVisaComponent @AssistedInject constructor( +internal class DefaultOnboardingVisaComponent @AssistedInject constructor( @Assisted appComponentContext: AppComponentContext, @Assisted private val params: OnboardingVisaComponent.Params, ) : OnboardingVisaComponent, AppComponentContext by appComponentContext { diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/OnboardingVisaAccessCodeComponent.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/OnboardingVisaAccessCodeComponent.kt index 2c3e0eb8dd..0a5bb21947 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/OnboardingVisaAccessCodeComponent.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/OnboardingVisaAccessCodeComponent.kt @@ -9,7 +9,7 @@ import com.tangem.core.ui.decompose.ComposableContentComponent import com.tangem.features.onboarding.v2.visa.impl.child.accesscode.model.OnboardingVisaAccessCodeModel import kotlinx.coroutines.flow.SharedFlow -class OnboardingVisaAccessCodeComponent( +internal class OnboardingVisaAccessCodeComponent( appComponentContext: AppComponentContext, private val params: Params, ) : ComposableContentComponent, AppComponentContext by appComponentContext { diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt index 678c620c27..d75af43b85 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt @@ -10,7 +10,7 @@ import javax.inject.Inject @Stable @ComponentScoped -class OnboardingVisaAccessCodeModel @Inject constructor( +internal class OnboardingVisaAccessCodeModel @Inject constructor( override val dispatchers: CoroutineDispatcherProvider, private val paramsContainer: ParamsContainer, ) : Model() { diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/OnboardingVisaAccessCode.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/OnboardingVisaAccessCode.kt new file mode 100644 index 0000000000..cf16e457eb --- /dev/null +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/OnboardingVisaAccessCode.kt @@ -0,0 +1,167 @@ +package com.tangem.features.onboarding.v2.visa.impl.child.accesscode.ui + +import androidx.compose.animation.AnimatedContent +import androidx.compose.foundation.layout.* +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.tangem.common.ui.navigationButtons.NavigationButton +import com.tangem.common.ui.navigationButtons.NavigationPrimaryButton +import com.tangem.core.ui.components.OutlineTextFieldWithIcon +import com.tangem.core.ui.components.SpacerH +import com.tangem.core.ui.components.SpacerH16 +import com.tangem.core.ui.components.SpacerH32 +import com.tangem.core.ui.extensions.resourceReference +import com.tangem.core.ui.res.TangemAnimations +import com.tangem.core.ui.res.TangemTheme +import com.tangem.core.ui.res.TangemThemePreview +import com.tangem.features.onboarding.v2.impl.R +import com.tangem.features.onboarding.v2.visa.impl.child.accesscode.ui.state.OnboardingVisaAccessCodeUM +import kotlinx.coroutines.delay + +@Composable +internal fun OnboardingVisaAccessCode(state: OnboardingVisaAccessCodeUM, modifier: Modifier = Modifier) { + Column( + modifier + .fillMaxSize() + .navigationBarsPadding(), + ) { + AnimatedContent( + modifier = Modifier + .padding(top = 48.dp) + .weight(1f), + targetState = state.step, + transitionSpec = TangemAnimations.AnimatedContent + .slide { initial, target -> initial.ordinal < target.ordinal }, + ) { step -> + Content( + state = state, + reEnterAccessCodeState = step == OnboardingVisaAccessCodeUM.Step.ReEnter, + ) + } + + SpacerH(20.dp) + + NavigationPrimaryButton( + modifier = Modifier + .padding(start = 16.dp, end = 16.dp, bottom = 16.dp) + .imePadding(), + primaryButton = NavigationButton( + textReference = when (state.step) { + OnboardingVisaAccessCodeUM.Step.Enter -> resourceReference(R.string.common_continue) + OnboardingVisaAccessCodeUM.Step.ReEnter -> + resourceReference(R.string.onboarding_create_wallet_button_create_wallet) + }, + onClick = state.onContinue, + iconRes = R.drawable.ic_tangem_24, + isIconVisible = state.step == OnboardingVisaAccessCodeUM.Step.ReEnter, + ), + ) + } +} + +@Suppress("LongMethod") +@Composable +private fun Content( + state: OnboardingVisaAccessCodeUM, + reEnterAccessCodeState: Boolean, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Text( + modifier = Modifier + .padding(horizontal = 32.dp), + text = if (reEnterAccessCodeState) { + "Re-enter your access code" // TODO + } else { + "Create access code" // TODO + }, + style = TangemTheme.typography.h2, + color = TangemTheme.colors.text.primary1, + textAlign = TextAlign.Center, + ) + + SpacerH16() + + // TODO + Text( + modifier = Modifier + .padding(horizontal = 32.dp), + text = "The access code will be used manage your payment account and protect it from unauthorized access", + style = TangemTheme.typography.body1, + color = TangemTheme.colors.text.secondary, + textAlign = TextAlign.Center, + ) + + SpacerH32() + + val focusRequester = remember { FocusRequester() } + + OutlineTextFieldWithIcon( + modifier = modifier + .padding(horizontal = 16.dp) + .focusRequester(focusRequester) + .fillMaxWidth(), + iconResId = if (state.accessCodeHidden) { + R.drawable.ic_eye_outline_24 + } else { + R.drawable.ic_eye_off_outline_24 + }, + iconColor = TangemTheme.colors.icon.primary1, + onIconClick = state.onAccessCodeHideClick, + value = if (reEnterAccessCodeState) { + state.accessCodeSecond + } else { + state.accessCodeFirst + }, + onValueChange = if (reEnterAccessCodeState) { + state.onAccessCodeSecondChange + } else { + state.onAccessCodeFirstChange + }, + label = stringResource(id = R.string.onboarding_wallet_info_title_third), + isError = state.codesNotMatchError || state.atLeast4CharError, + visualTransformation = if (state.accessCodeHidden) { + PasswordVisualTransformation() + } else { + VisualTransformation.None + }, + caption = when { + state.codesNotMatchError && reEnterAccessCodeState -> + stringResource(R.string.onboarding_access_codes_doesnt_match) + state.atLeast4CharError && !reEnterAccessCodeState -> + stringResource(R.string.onboarding_access_code_too_short) + else -> null + }, + ) + + LaunchedEffect(Unit) { + delay(timeMillis = 200) + focusRequester.requestFocus() + } + } +} + +@Preview(showBackground = true) +@Composable +private fun Preview() { + TangemThemePreview { + OnboardingVisaAccessCode( + state = OnboardingVisaAccessCodeUM(), + ) + } +} \ No newline at end of file diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/state/OnboardingVisaAccessCodeUM.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/state/OnboardingVisaAccessCodeUM.kt new file mode 100644 index 0000000000..68719daa53 --- /dev/null +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/ui/state/OnboardingVisaAccessCodeUM.kt @@ -0,0 +1,20 @@ +package com.tangem.features.onboarding.v2.visa.impl.child.accesscode.ui.state + +import androidx.compose.ui.text.input.TextFieldValue + +data class OnboardingVisaAccessCodeUM( + val step: Step = Step.Enter, + val accessCodeFirst: TextFieldValue = TextFieldValue(""), + val accessCodeSecond: TextFieldValue = TextFieldValue(""), + val codesNotMatchError: Boolean = false, + val atLeast4CharError: Boolean = false, + val accessCodeHidden: Boolean = true, + val onAccessCodeFirstChange: (TextFieldValue) -> Unit = {}, + val onAccessCodeSecondChange: (TextFieldValue) -> Unit = {}, + val onContinue: () -> Unit = {}, + val onAccessCodeHideClick: () -> Unit = {}, +) { + enum class Step { + Enter, ReEnter + } +} \ No newline at end of file diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/OnboardingVisaWelcomeComponent.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/OnboardingVisaWelcomeComponent.kt index 8dab8ddac4..0194489e69 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/OnboardingVisaWelcomeComponent.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/OnboardingVisaWelcomeComponent.kt @@ -6,8 +6,10 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.ui.decompose.ComposableContentComponent +import com.tangem.features.onboarding.v2.visa.impl.child.welcome.ui.OnboardingVisaWelcome +import com.tangem.features.onboarding.v2.visa.impl.child.welcome.ui.state.OnboardingVisaWelcomeUM -class OnboardingVisaWelcomeComponent( +internal class OnboardingVisaWelcomeComponent( appComponentContext: AppComponentContext, private val params: Params, ) : ComposableContentComponent, AppComponentContext by appComponentContext { @@ -15,9 +17,15 @@ class OnboardingVisaWelcomeComponent( @Composable override fun Content(modifier: Modifier) { BackHandler(onBack = remember(this) { { params.onBack() } }) + + OnboardingVisaWelcome( + modifier = modifier, + state = OnboardingVisaWelcomeUM(), + ) } data class Params( val onBack: () -> Unit, + val startActivation: () -> Unit, ) } \ No newline at end of file diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/OnboardingVisaWelcome.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/OnboardingVisaWelcome.kt new file mode 100644 index 0000000000..61c2b6e0d8 --- /dev/null +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/OnboardingVisaWelcome.kt @@ -0,0 +1,124 @@ +package com.tangem.features.onboarding.v2.visa.impl.child.welcome.ui + +import androidx.compose.foundation.Canvas +import androidx.compose.foundation.layout.* +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import com.tangem.core.ui.components.PrimaryButton +import com.tangem.core.ui.components.PrimaryButtonIconEnd +import com.tangem.core.ui.components.SpacerH +import com.tangem.core.ui.components.SpacerH12 +import com.tangem.core.ui.res.TangemTheme +import com.tangem.core.ui.res.TangemThemePreview +import com.tangem.features.onboarding.v2.impl.R +import com.tangem.features.onboarding.v2.visa.impl.child.welcome.ui.state.OnboardingVisaWelcomeUM + +@Composable +internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Modifier = Modifier) { + Column( + modifier = modifier + .fillMaxSize() + .navigationBarsPadding(), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Column( + Modifier + .padding( + top = 20.dp, + bottom = 32.dp, + start = 32.dp, + end = 32.dp, + ) + .fillMaxSize() + .weight(1f), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Artwork() + + SpacerH(50.dp) + + Text( + text = when (state.mode) { + OnboardingVisaWelcomeUM.Mode.Hello -> "Hello, ${state.userName}!" + OnboardingVisaWelcomeUM.Mode.WelcomeBack -> "Welcome back, ${state.userName}!" + }, + style = TangemTheme.typography.h2, + color = TangemTheme.colors.text.primary1, + ) + + SpacerH12() + + Text( + text = when (state.mode) { + OnboardingVisaWelcomeUM.Mode.Hello -> "bla bla bla //TODO" + OnboardingVisaWelcomeUM.Mode.WelcomeBack -> "bla bla bla? //TODO" + }, + style = TangemTheme.typography.body1, + color = TangemTheme.colors.text.secondary, + ) + } + + when (state.mode) { + OnboardingVisaWelcomeUM.Mode.Hello -> { + PrimaryButton( + modifier = Modifier + .padding(start = 16.dp, end = 16.dp, bottom = 16.dp) + .fillMaxWidth(), + text = "Start Activation", + onClick = state.onContinueClick, + ) + } + OnboardingVisaWelcomeUM.Mode.WelcomeBack -> { + PrimaryButtonIconEnd( + modifier = Modifier + .padding(start = 16.dp, end = 16.dp, bottom = 16.dp) + .fillMaxWidth(), + text = "Start Activation", + iconResId = R.drawable.ic_tangem_24, + onClick = state.onContinueClick, + ) + } + } + } +} + +@Composable +fun Artwork(modifier: Modifier = Modifier) { + Box(modifier) { + val circleColor = TangemTheme.colors.background.secondary + + Canvas( + modifier = Modifier + .align(Alignment.Center) + .size(254.dp) + .fillMaxSize(), + ) { + drawCircle( + color = circleColor, + radius = size.width / 2, + center = center, + ) + } + + AsyncImage( + model = R.drawable.img_card_visa, + contentDescription = null, + modifier = Modifier + .align(Alignment.Center) + .size(128.dp), // Adjust the size as needed + ) + } +} + +@Preview(showBackground = true) +@Composable +private fun Preview() { + TangemThemePreview { + OnboardingVisaWelcome(state = OnboardingVisaWelcomeUM()) + } +} \ No newline at end of file diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/state/OnboardingVisaWelcomeUM.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/state/OnboardingVisaWelcomeUM.kt new file mode 100644 index 0000000000..9e1f6ba81b --- /dev/null +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/welcome/ui/state/OnboardingVisaWelcomeUM.kt @@ -0,0 +1,11 @@ +package com.tangem.features.onboarding.v2.visa.impl.child.welcome.ui.state + +internal data class OnboardingVisaWelcomeUM( + val mode: Mode = Mode.Hello, + val userName: String = "", + val onContinueClick: () -> Unit = {}, +) { + enum class Mode { + Hello, WelcomeBack + } +} \ No newline at end of file