From 15995b8fc3cfc6d609823d62c34732232e5c08d7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 20 Oct 2022 12:15:38 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tap/features/BaseFragment.kt | 14 ++++++++++ .../onboarding/OnboardingMenuProvider.kt | 27 +++++++++++++++++++ .../products/BaseOnboardingFragment.kt | 11 ++++++++ .../wallet/ui/OnboardingWalletFragment.kt | 14 +++++----- .../res/layout/fragment_onboarding_main.xml | 2 +- .../res/layout/fragment_onboarding_wallet.xml | 2 +- app/src/main/res/menu/menu_onboarding.xml | 8 ++++++ app/src/main/res/values-de/strings_final.xml | 1 + app/src/main/res/values-fr/strings_final.xml | 1 + app/src/main/res/values-it/strings_final.xml | 1 + app/src/main/res/values-ru/strings_final.xml | 1 + app/src/main/res/values/strings_final.xml | 1 + 12 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/tangem/tap/features/onboarding/OnboardingMenuProvider.kt create mode 100644 app/src/main/res/menu/menu_onboarding.xml diff --git a/app/src/main/java/com/tangem/tap/features/BaseFragment.kt b/app/src/main/java/com/tangem/tap/features/BaseFragment.kt index 8b4d0d3f70..f0e6016021 100644 --- a/app/src/main/java/com/tangem/tap/features/BaseFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/BaseFragment.kt @@ -7,7 +7,10 @@ import android.view.View import android.view.ViewGroup import androidx.activity.OnBackPressedCallback import androidx.appcompat.widget.Toolbar +import androidx.core.view.MenuHost +import androidx.core.view.MenuProvider import androidx.fragment.app.Fragment +import androidx.lifecycle.Lifecycle import androidx.transition.TransitionInflater import com.google.android.material.snackbar.Snackbar import com.tangem.common.extensions.VoidCallback @@ -42,6 +45,17 @@ abstract class BaseFragment(layoutId: Int) : Fragment(layoutId), FragmentOnBackP store.dispatch(NavigationAction.PopBackTo()) } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + loadToolbarMenu()?.let { + val menuHost = requireActivity() as? MenuHost ?: return + menuHost.addMenuProvider(it, viewLifecycleOwner, Lifecycle.State.RESUMED) + } + } + + protected open fun loadToolbarMenu():MenuProvider? = null + fun showRetrySnackbar(message: String, action: VoidCallback) { val snackbar = Snackbar.make(mainView, message, Snackbar.LENGTH_INDEFINITE) snackbar.setAction(getString(R.string.common_retry)) { diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingMenuProvider.kt b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingMenuProvider.kt new file mode 100644 index 0000000000..2fff1d0fab --- /dev/null +++ b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingMenuProvider.kt @@ -0,0 +1,27 @@ +package com.tangem.tap.features.onboarding + +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import androidx.core.view.MenuProvider +import com.tangem.tap.common.feedback.SupportInfo +import com.tangem.tap.common.redux.global.GlobalAction +import com.tangem.tap.store +import com.tangem.wallet.R + +/** +[REDACTED_AUTHOR] + */ +class OnboardingMenuProvider : MenuProvider { + override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { + menuInflater.inflate(R.menu.menu_onboarding, menu) + } + + override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) { + R.id.menu_item_chat_support -> { + store.dispatch(GlobalAction.OpenChat(SupportInfo())) + true + } + else -> false + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/BaseOnboardingFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/BaseOnboardingFragment.kt index f29444abc5..032cce60d3 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/BaseOnboardingFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/BaseOnboardingFragment.kt @@ -1,9 +1,14 @@ package com.tangem.tap.features.onboarding.products +import android.os.Bundle +import android.view.View +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.MenuProvider import by.kirich1409.viewbindingdelegate.viewBinding import com.tangem.tap.common.extensions.show import com.tangem.tap.common.transitions.HomeToOnboardingTransition import com.tangem.tap.features.BaseStoreFragment +import com.tangem.tap.features.onboarding.OnboardingMenuProvider import com.tangem.wallet.R import com.tangem.wallet.databinding.FragmentOnboardingMainBinding import com.tangem.wallet.databinding.ViewOnboardingProgressBinding @@ -22,6 +27,12 @@ abstract class BaseOnboardingFragment : BaseStoreFragment(R.layout.fragment_o exitTransition = HomeToOnboardingTransition() } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + (activity as? AppCompatActivity)?.setSupportActionBar(binding.toolbar) + } + + override fun loadToolbarMenu(): MenuProvider? = OnboardingMenuProvider() protected fun showConfetti(show: Boolean) = with(binding.vConfetti) { lavConfetti.show(show) 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 2b22f898d7..6f5c3fff03 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 @@ -9,8 +9,8 @@ import android.widget.FrameLayout import android.widget.ImageView import android.widget.ProgressBar import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.MenuProvider import androidx.core.view.children -import androidx.fragment.app.Fragment import androidx.transition.TransitionInflater import androidx.transition.TransitionManager import by.kirich1409.viewbindingdelegate.viewBinding @@ -39,8 +39,10 @@ import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.common.toggleWidget.IndeterminateProgressButtonWidget +import com.tangem.tap.features.BaseFragment import com.tangem.tap.features.FragmentOnBackPressedHandler import com.tangem.tap.features.addBackPressHandler +import com.tangem.tap.features.onboarding.OnboardingMenuProvider import com.tangem.tap.features.onboarding.products.wallet.redux.BackupAction import com.tangem.tap.features.onboarding.products.wallet.redux.BackupState import com.tangem.tap.features.onboarding.products.wallet.redux.BackupStep @@ -61,7 +63,7 @@ import com.tangem.wallet.databinding.LayoutOnboardingSaltpayBinding import com.tangem.wallet.databinding.ViewOnboardingProgressBinding import org.rekotlin.StoreSubscriber -class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), +class OnboardingWalletFragment : BaseFragment(R.layout.fragment_onboarding_wallet), StoreSubscriber, FragmentOnBackPressedHandler { private val pbBinding: ViewOnboardingProgressBinding by viewBinding(ViewOnboardingProgressBinding::bind) @@ -75,10 +77,7 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), private lateinit var animator: BackupAnimator - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setHasOptionsMenu(true) - + override fun configureTransitions() { val inflater = TransitionInflater.from(requireContext()) enterTransition = inflater.inflateTransition(R.transition.fade) exitTransition = inflater.inflateTransition(R.transition.fade) @@ -108,6 +107,8 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), store.dispatch(OnboardingWalletAction.LoadArtwork) } + override fun loadToolbarMenu(): MenuProvider? = OnboardingMenuProvider() + private fun reInitCardsWidget(backupCardsCounts: Int) = with(binding) { val viewBackupCount = flCardsContainer.childCount - 1 if (viewBackupCount <= 0) return@with @@ -139,6 +140,7 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), } } + override fun onStart() { super.onStart() store.subscribe(this) { state -> diff --git a/app/src/main/res/layout/fragment_onboarding_main.xml b/app/src/main/res/layout/fragment_onboarding_main.xml index faa2c0c829..97d770d2a3 100644 --- a/app/src/main/res/layout/fragment_onboarding_main.xml +++ b/app/src/main/res/layout/fragment_onboarding_main.xml @@ -12,7 +12,7 @@ diff --git a/app/src/main/res/menu/menu_onboarding.xml b/app/src/main/res/menu/menu_onboarding.xml new file mode 100644 index 0000000000..bc09d08fae --- /dev/null +++ b/app/src/main/res/menu/menu_onboarding.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings_final.xml b/app/src/main/res/values-de/strings_final.xml index 6c801e756c..0b1aa41913 100644 --- a/app/src/main/res/values-de/strings_final.xml +++ b/app/src/main/res/values-de/strings_final.xml @@ -141,4 +141,5 @@ Prepare the SaltPay card Tap the SaltPay card Tap the Tangem card + Support \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings_final.xml b/app/src/main/res/values-fr/strings_final.xml index 6c801e756c..0b1aa41913 100644 --- a/app/src/main/res/values-fr/strings_final.xml +++ b/app/src/main/res/values-fr/strings_final.xml @@ -141,4 +141,5 @@ Prepare the SaltPay card Tap the SaltPay card Tap the Tangem card + Support \ No newline at end of file diff --git a/app/src/main/res/values-it/strings_final.xml b/app/src/main/res/values-it/strings_final.xml index 6c801e756c..0b1aa41913 100644 --- a/app/src/main/res/values-it/strings_final.xml +++ b/app/src/main/res/values-it/strings_final.xml @@ -141,4 +141,5 @@ Prepare the SaltPay card Tap the SaltPay card Tap the Tangem card + Support \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings_final.xml b/app/src/main/res/values-ru/strings_final.xml index add278e752..8688a7b14c 100644 --- a/app/src/main/res/values-ru/strings_final.xml +++ b/app/src/main/res/values-ru/strings_final.xml @@ -139,4 +139,5 @@ Приготовьте SaltPay карту Приложите SaltPay карту Приложите Tangem карту + Чат diff --git a/app/src/main/res/values/strings_final.xml b/app/src/main/res/values/strings_final.xml index 5a47c7ed20..8da137a723 100644 --- a/app/src/main/res/values/strings_final.xml +++ b/app/src/main/res/values/strings_final.xml @@ -141,4 +141,5 @@ Prepare the SaltPay card Tap the SaltPay card Tap the Tangem card + Support