diff --git a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsWidget.kt b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsWidget.kt index becb529e80..3a163149e5 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsWidget.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsWidget.kt @@ -16,6 +16,7 @@ import com.tangem.tangem_sdk_new.ui.widget.leapfrogWidget.LeapfrogWidget */ class TwinsCardWidget( val leapfrogWidget: LeapfrogWidget, + private val deviceScaleFactor: Float = 1f, val getTopOfAnchorViewForActivateState: () -> Float ) { @@ -87,20 +88,20 @@ class TwinsCardWidget( return when (cardNumber) { TwinCardNumber.First -> { TwinsCardProperties( - xTranslation = -120f, - yTranslation = -220f, + xTranslation = -120f * deviceScaleFactor, + yTranslation = -220f * deviceScaleFactor, rotation = -3f, elevation = 1f, - scale = 1f, + scale = deviceScaleFactor, ) } TwinCardNumber.Second -> { TwinsCardProperties( - xTranslation = 170f, - yTranslation = 170f, + xTranslation = 170f * deviceScaleFactor, + yTranslation = 170f * deviceScaleFactor, rotation = -3f, elevation = 0f, - scale = 1f, + scale = deviceScaleFactor, ) } } @@ -123,7 +124,7 @@ class TwinsCardWidget( xTranslation = twinProperties.xTranslation, yTranslation = twinProperties.yTranslation - topOfAnchorView, rotation = 0f, - scale = twinProperties.scale - 0.5f, + scale = (twinProperties.scale - 0.5f) * deviceScaleFactor, ) } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt index 12e87f2a70..c8482b0624 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt @@ -1,6 +1,7 @@ package com.tangem.tap.features.onboarding.products.twins.ui import android.os.Bundle +import android.util.TypedValue import android.view.View import android.view.animation.OvershootInterpolator import androidx.annotation.LayoutRes @@ -38,6 +39,7 @@ import kotlinx.android.synthetic.main.view_bg_twins_welcome.* import kotlinx.android.synthetic.main.view_onboarding_progress.* import kotlinx.android.synthetic.main.view_onboarding_tv_balance.* + class TwinsCardsFragment : BaseOnboardingFragment() { private var previousStep = TwinCardsStep.None @@ -75,7 +77,14 @@ class TwinsCardsFragment : BaseOnboardingFragment() { addBackPressHandler(this) reconfigureLayoutForTwins() - twinsWidget = TwinsCardWidget(LeapfrogWidget(cards_container)) { 285f } + + val typedValue = TypedValue() + resources.getValue(R.dimen.device_scale_factor_for_twins_welcome, typedValue, true) + val deviceScaleFactorForWelcomeState = typedValue.float + + twinsWidget = TwinsCardWidget(LeapfrogWidget(cards_container), deviceScaleFactorForWelcomeState) { + 285f * deviceScaleFactorForWelcomeState + } btnRefreshBalanceWidget = RefreshBalanceWidget(onboarding_main_container) toolbar.title = getText(R.string.twins_recreate_toolbar) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index d63d66047c..65d8a935a8 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -1,6 +1,7 @@ package com.tangem.tap.features.onboarding.products.wallet.ui import android.os.Bundle +import android.util.TypedValue import android.view.* import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity @@ -13,6 +14,7 @@ import com.squareup.picasso.Picasso import com.tangem.common.CardIdFormatter import com.tangem.common.core.CardIdDisplayFormat import com.tangem.tangem_sdk_new.ui.widget.leapfrogWidget.LeapfrogWidget +import com.tangem.tangem_sdk_new.ui.widget.leapfrogWidget.PropertyCalculator import com.tangem.tap.common.extensions.hide import com.tangem.tap.common.extensions.show import com.tangem.tap.features.FragmentOnBackPressedHandler @@ -47,8 +49,15 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - val leapfrog = LeapfrogWidget(fl_cards_container) - cardsWidget = WalletCardsWidget(leapfrog) { 200f } + val typedValue = TypedValue() + resources.getValue(R.dimen.device_scale_factor_for_twins_welcome, typedValue, true) + val deviceScaleFactor = typedValue.float + + val leapfrogCalculator = PropertyCalculator( + yTranslationFactor = 25f * deviceScaleFactor, + ) + val leapfrog = LeapfrogWidget(fl_cards_container, leapfrogCalculator) + cardsWidget = WalletCardsWidget(leapfrog, deviceScaleFactor) { 200f * deviceScaleFactor } startPostponedEnterTransition() view_pager_backup_info.adapter = BackupInfoAdapter() @@ -121,8 +130,7 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), tv_header.setText(R.string.onboarding_create_wallet_header) tv_body.setText(R.string.onboarding_create_wallet_body) - cardsWidget.toFolded() - startPostponedEnterTransition() + cardsWidget.toFolded(false) { startPostponedEnterTransition() } } @@ -379,7 +387,7 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), val shopMenuShouldBeVisible = (backupStep == BackupStep.ScanOriginCard || backupStep == BackupStep.AddBackupCards) && - backupState.buyAdditionalCardsUrl != null + backupState.buyAdditionalCardsUrl != null menu.getItem(0).isVisible = shopMenuShouldBeVisible } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/WalletCardsWidget.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/WalletCardsWidget.kt index 0efdbf3d0b..eb5ae173af 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/WalletCardsWidget.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/WalletCardsWidget.kt @@ -12,6 +12,7 @@ import com.tangem.tangem_sdk_new.ui.widget.leapfrogWidget.LeapfrogWidget class WalletCardsWidget( val leapfrogWidget: LeapfrogWidget, + private val deviceScaleFactor: Float = 1f, val getTopOfAnchorViewForActivateState: () -> Float, ) { @@ -42,7 +43,7 @@ class WalletCardsWidget( createAnimator(BackupCardType.FIRST_BACKUP, createLeapfrogProperties(BackupCardType.FIRST_BACKUP)), createAnimator(BackupCardType.SECOND_BACKUP, createLeapfrogProperties(BackupCardType.SECOND_BACKUP)) ) - leapfrogWidget.fold { animator.start() } + leapfrogWidget.fold(animate) { animator.start() } } fun toFan(animate: Boolean = true, onEnd: () -> Unit = {}) { @@ -70,7 +71,7 @@ class WalletCardsWidget( ) leapfrogWidget.fold { animator.doOnEnd { - leapfrogWidget.initViews() +// leapfrogWidget.initViews() leapfrogWidget.unfold() } animator.start() @@ -98,26 +99,26 @@ class WalletCardsWidget( private fun createWelcomeProperties(cardType: BackupCardType): CardProperties { return when (cardType) { BackupCardType.ORIGIN -> CardProperties( - xTranslation = 440f, - yTranslation = 0f, - rotation = 75f, - elevation = 2f, - scale = .9f, - ) + xTranslation = 440f * deviceScaleFactor, + yTranslation = 70f, + rotation = 75f, + elevation = 2f, + scale = .85f * deviceScaleFactor, + ) BackupCardType.FIRST_BACKUP -> CardProperties( - xTranslation = 10f, - yTranslation = -100f, - rotation = 100f, - elevation = 1f, - scale = .9f, -) + xTranslation = 10f * deviceScaleFactor, + yTranslation = -30f, + rotation = 100f, + elevation = 1f, + scale = .85f * deviceScaleFactor, + ) BackupCardType.SECOND_BACKUP -> CardProperties( - xTranslation = -440f, - yTranslation = -100f, - rotation = 70f, - elevation = 0f, - scale = .9f, - ) + xTranslation = -440f * deviceScaleFactor, + yTranslation = -30f, + rotation = 70f, + elevation = 0f, + scale = .85f * deviceScaleFactor, + ) } } @@ -125,24 +126,24 @@ class WalletCardsWidget( return when (cardType) { BackupCardType.ORIGIN -> CardProperties( xTranslation = 0f, - yTranslation = 0f, + yTranslation = 30f, rotation = 5f, elevation = 2f, - scale = 1f, + scale = 1f * deviceScaleFactor, ) BackupCardType.FIRST_BACKUP -> CardProperties( xTranslation = 0f, - yTranslation = -80f, + yTranslation = -50f, rotation = -5f, elevation = 1f, - scale = 0.9f, + scale = 0.9f * deviceScaleFactor, ) BackupCardType.SECOND_BACKUP -> CardProperties( xTranslation = 10f, - yTranslation = -170f, + yTranslation = -120f, rotation = -20f, elevation = 0f, - scale = 0.8f, + scale = 0.8f * deviceScaleFactor, ) } } @@ -154,21 +155,21 @@ class WalletCardsWidget( yTranslation = 0f, rotation = 0f, elevation = 2f, - scale = 1f, + scale = 1f * deviceScaleFactor, ) BackupCardType.FIRST_BACKUP -> CardProperties( xTranslation = 0f, yTranslation = 0f, rotation = 0f, elevation = 1f, - scale = 0.9f, + scale = 0.9f * deviceScaleFactor, ) BackupCardType.SECOND_BACKUP -> CardProperties( xTranslation = 0f, yTranslation = 0f, rotation = 0f, elevation = 0f, - scale = 0.8f, + scale = 0.8f * deviceScaleFactor, ) } } diff --git a/app/src/main/res/layout/fragment_onboarding_main.xml b/app/src/main/res/layout/fragment_onboarding_main.xml index 6d567ce91b..fa3d618abc 100644 --- a/app/src/main/res/layout/fragment_onboarding_main.xml +++ b/app/src/main/res/layout/fragment_onboarding_main.xml @@ -37,7 +37,7 @@ android:id="@+id/onboarding_top_container" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="1.2" + android:layout_weight="@dimen/home_top_weight" android:clipChildren="false" /> + android:layout_weight="@dimen/home_bottom_weight" /> diff --git a/app/src/main/res/layout/fragment_onboarding_wallet.xml b/app/src/main/res/layout/fragment_onboarding_wallet.xml index 50db217206..2c1c940cb5 100644 --- a/app/src/main/res/layout/fragment_onboarding_wallet.xml +++ b/app/src/main/res/layout/fragment_onboarding_wallet.xml @@ -23,9 +23,9 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" + app:menu="@menu/shop" app:navigationIcon="@drawable/ic_baseline_arrow_back_24" - app:title="@string/onboarding_getting_started" - app:menu="@menu/shop"/> + app:title="@string/onboarding_getting_started" /> @@ -33,6 +33,7 @@ android:id="@+id/onboarding_main_container" android:layout_width="match_parent" android:layout_height="match_parent" + android:clipChildren="false" app:layout_behavior="@string/appbar_scrolling_view_behavior"> @@ -51,28 +51,25 @@ android:id="@+id/imv_card_background" android:layout_width="236dp" android:layout_height="236dp" - android:layout_gravity="center" android:adjustViewBounds="true" android:background="@drawable/shape_circle" android:backgroundTint="@color/lightGray0" android:elevation="0dp" android:scaleType="fitCenter" - app:layout_constraintStart_toStartOf="@id/fl_cards_container" - app:layout_constraintEnd_toEndOf="@id/fl_cards_container" - app:layout_constraintTop_toTopOf="@id/fl_cards_container" app:layout_constraintBottom_toBottomOf="@id/fl_cards_container" - android:layout_marginBottom="16dp" - /> + app:layout_constraintEnd_toEndOf="@id/fl_cards_container" + app:layout_constraintStart_toStartOf="@id/fl_cards_container" + app:layout_constraintTop_toTopOf="@id/fl_cards_container" /> @@ -81,36 +78,33 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" - android:src="@drawable/card_placeholder_black" - android:visibility="gone" android:layout_marginStart="32dp" android:layout_marginEnd="32dp" android:scaleType="fitCenter" - - /> + android:src="@drawable/card_placeholder_black" + android:visibility="gone" /> + android:src="@drawable/card_placeholder_black" + android:visibility="gone" /> + android:src="@drawable/card_placeholder_black" + android:transitionName="imv_front_card" /> @@ -119,12 +113,12 @@ android:layout_width="142dp" android:layout_height="142dp" android:src="@drawable/ic_activation_success" + android:visibility="gone" app:layout_constraintBottom_toTopOf="@id/guideline2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.495" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/pb_state" - android:visibility="gone"/> + app:layout_constraintTop_toBottomOf="@id/pb_state" /> + app:layout_constraintTop_toTopOf="@+id/guideline2" + tools:text="Добавлена одна резервная карта" /> + app:layout_constraintTop_toBottomOf="@+id/tv_header" + tools:text="Body" /> + app:layout_constraintTop_toTopOf="@+id/guideline2" /> + app:tabPaddingStart="8dp" /> + app:layout_constraintBottom_toBottomOf="parent" /> diff --git a/app/src/main/res/layout/layout_backup_access_code.xml b/app/src/main/res/layout/layout_backup_access_code.xml index de45562ba3..d8c721b7f6 100644 --- a/app/src/main/res/layout/layout_backup_access_code.xml +++ b/app/src/main/res/layout/layout_backup_access_code.xml @@ -8,36 +8,36 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + - + - + diff --git a/app/src/main/res/layout/layout_backup_access_code_info.xml b/app/src/main/res/layout/layout_backup_access_code_info.xml index ac5a98171f..3ef7ba57fb 100644 --- a/app/src/main/res/layout/layout_backup_access_code_info.xml +++ b/app/src/main/res/layout/layout_backup_access_code_info.xml @@ -8,18 +8,18 @@ android:id="@+id/iv_access_code_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="25dp" + android:layout_marginTop="@dimen/access_code_info_protect_margin_top" android:src="@drawable/ic_access_code" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/layout_onboarding_buttons_common.xml b/app/src/main/res/layout/layout_onboarding_buttons_common.xml index ff0472d121..e99f7dfe4a 100644 --- a/app/src/main/res/layout/layout_onboarding_buttons_common.xml +++ b/app/src/main/res/layout/layout_onboarding_buttons_common.xml @@ -1,33 +1,33 @@ + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + app:layout_constraintStart_toStartOf="parent" + tools:text="Main Action" /> + app:layout_constraintStart_toStartOf="parent" + tools:text="Alternative action" /> \ No newline at end of file diff --git a/app/src/main/res/layout/layout_onboarding_container_bottom.xml b/app/src/main/res/layout/layout_onboarding_container_bottom.xml index d5e9dbcc4a..08c351d6fb 100644 --- a/app/src/main/res/layout/layout_onboarding_container_bottom.xml +++ b/app/src/main/res/layout/layout_onboarding_container_bottom.xml @@ -10,14 +10,14 @@ android:id="@+id/linearLayoutCompat" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="8dp" + android:layout_marginBottom="@dimen/home_bottom_llCompat_margin_bottom" android:gravity="center" android:orientation="vertical" app:layout_constraintBottom_toTopOf="@+id/fl_scan_card_container" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.1"> + app:layout_constraintVertical_bias="@dimen/home_bottom_llCompat_constraint_vertical_bias"> - + @@ -29,8 +35,10 @@ android:elevation="1dp" android:rotation="-3" android:scaleType="fitXY" + android:scaleX="@dimen/home_top_front_card_scaleX" + android:scaleY="@dimen/home_top_front_card_scaleY" android:src="@drawable/card_placeholder_black" - android:translationY="@dimen/home_front_card_translationY" + android:translationY="@dimen/home_top_front_card_translationY" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/lp_onboarding_topup_wallet.xml b/app/src/main/res/layout/lp_onboarding_topup_wallet.xml index 6b924ea771..dc6efbcc96 100644 --- a/app/src/main/res/layout/lp_onboarding_topup_wallet.xml +++ b/app/src/main/res/layout/lp_onboarding_topup_wallet.xml @@ -25,7 +25,7 @@ - -10dp - 0dp + 1.0 + + + 1.1 + -10dp + 1 + 1 + 0dp + 1 + 1 + + + 1 + 16dp + 0.4> + 14dp + 64dp + 64dp + 90dp + 14dp + + 16dp 106dp + 230dp 67dp + 0.56 + + + 80dp + 24dp + 20dp + 32dp + 80dp diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 496ccebf23..ce2c35b5fb 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -35,10 +35,41 @@ 32sp 16dp - -30dp - -20dp - 8dp - 70dp + 0.85 + + + 0.9 + -60dp + 0.9 + 0.9 + -40dp + 0.9 + 0.9 + + + 1 + 8dp + 0.1 + 10dp + 34dp + 34dp + 72dp + 12dp + + + 0dp + 50dp + 180dp 37dp + 0.48> + + + 40dp + 12dp + 8dp + 16dp + 38dp + 78dp + 78dp