From 1966925a947c2159d22657d3a9d2b24c4ff80bdb Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 16 Sep 2020 21:20:09 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tap/domain/TangemSdkManager.kt | 6 + .../details/ui/DetailsConfirmFragment.kt | 77 +++++++++++++ .../res/layout/fragment_details_confirm.xml | 103 ++++++++++++++++++ 3 files changed, 186 insertions(+) create mode 100644 app/src/main/java/com/tangem/tap/features/details/ui/DetailsConfirmFragment.kt create mode 100644 app/src/main/res/layout/fragment_details_confirm.xml diff --git a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt index 9fdfca3cd7..3c9b613d01 100644 --- a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt @@ -3,6 +3,8 @@ package com.tangem.tap.domain import androidx.activity.ComponentActivity import com.tangem.* import com.tangem.commands.CommandResponse +import com.tangem.commands.PurgeWalletCommand +import com.tangem.commands.PurgeWalletResponse import com.tangem.common.CompletionResult import com.tangem.common.extensions.CardType import com.tangem.tangem_sdk_new.extensions.init @@ -28,6 +30,10 @@ class TangemSdkManager(val activity: ComponentActivity) { return runTaskAsyncReturnOnMain(CreateWalletAndRescanTask()) } + suspend fun eraseWallet(): CompletionResult { + return runTaskAsyncReturnOnMain(PurgeWalletCommand()) + } + private suspend fun runTaskAsync( runnable: CardSessionRunnable, cardId: String? = null, initialMessage: Message? = null ): CompletionResult = diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/DetailsConfirmFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsConfirmFragment.kt new file mode 100644 index 0000000000..a13937adbf --- /dev/null +++ b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsConfirmFragment.kt @@ -0,0 +1,77 @@ +package com.tangem.tap.features.details.ui + +import android.os.Bundle +import android.view.View +import androidx.activity.OnBackPressedCallback +import androidx.fragment.app.Fragment +import androidx.transition.TransitionInflater +import com.tangem.tap.common.extensions.getDrawable +import com.tangem.tap.common.redux.navigation.NavigationAction +import com.tangem.tap.features.details.redux.ConfirmScreenState +import com.tangem.tap.features.details.redux.DetailsAction +import com.tangem.tap.features.details.redux.DetailsState +import com.tangem.tap.store +import com.tangem.wallet.R +import kotlinx.android.synthetic.main.fragment_details_confirm.* +import org.rekotlin.StoreSubscriber + +class DetailsConfirmFragment : Fragment(R.layout.fragment_details_confirm), + StoreSubscriber { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + activity?.onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + store.dispatch(NavigationAction.PopBackTo()) + } + }) + val inflater = TransitionInflater.from(requireContext()) + enterTransition = inflater.inflateTransition(R.transition.slide_right) + exitTransition = inflater.inflateTransition(R.transition.fade) + } + + override fun onStart() { + super.onStart() + store.subscribe(this) { state -> + state.skipRepeats { oldState, newState -> + oldState.detailsState == newState.detailsState + }.select { it.detailsState } + } + } + + override fun onStop() { + super.onStop() + store.unsubscribe(this) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + toolbar.setNavigationOnClickListener { + store.dispatch(NavigationAction.PopBackTo()) + } + } + + + override fun newState(state: DetailsState) { + if (activity == null) return + + when (state.confirmScreenState) { + ConfirmScreenState.EraseWallet -> { + toolbar.title = getString(R.string.details_erase_wallet) + btn_confirm.text = getString(R.string.details_erase_wallet) + btn_confirm.setCompoundDrawablesRelativeWithIntrinsicBounds( + null, null, getDrawable(R.drawable.ic_send), null + ) + btn_confirm.setOnClickListener { store.dispatch(DetailsAction.EraseWallet.Confirm) } + } + ConfirmScreenState.LongTap -> TODO() + ConfirmScreenState.AccessCode -> TODO() + ConfirmScreenState.PassCode -> TODO() + null -> TODO() + } + + + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_details_confirm.xml b/app/src/main/res/layout/fragment_details_confirm.xml new file mode 100644 index 0000000000..528dc0aa4c --- /dev/null +++ b/app/src/main/res/layout/fragment_details_confirm.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file