From 4436e749231ccdaa05a47a961bf7193d28de7237 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 17 Jun 2021 11:48:03 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tap/common/DialogManager.kt | 8 +++---- .../walletconnect/WalletConnectMiddleware.kt | 4 ++++ .../walletconnect/WalletConnectReducer.kt | 1 + .../redux/walletconnect/WalletConnectState.kt | 1 + .../dialogs/UnsupportedCardDialog.kt | 24 +++++++++++++++++++ .../main/res/values/strings_untranslated.xml | 1 + 6 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/UnsupportedCardDialog.kt diff --git a/app/src/main/java/com/tangem/tap/common/DialogManager.kt b/app/src/main/java/com/tangem/tap/common/DialogManager.kt index dd997b7997..1de2e9cb6d 100644 --- a/app/src/main/java/com/tangem/tap/common/DialogManager.kt +++ b/app/src/main/java/com/tangem/tap/common/DialogManager.kt @@ -4,10 +4,7 @@ import android.app.Dialog import android.content.Context import com.tangem.tap.common.redux.global.GlobalState import com.tangem.tap.features.details.redux.walletconnect.WalletConnectDialog -import com.tangem.tap.features.details.ui.walletconnect.dialogs.ApproveWcSessionDialog -import com.tangem.tap.features.details.ui.walletconnect.dialogs.ClipboardOrScanQrDialog -import com.tangem.tap.features.details.ui.walletconnect.dialogs.PersonalSignDialog -import com.tangem.tap.features.details.ui.walletconnect.dialogs.TransactionDialog +import com.tangem.tap.features.details.ui.walletconnect.dialogs.* import com.tangem.tap.store import org.rekotlin.StoreSubscriber @@ -40,9 +37,10 @@ class DialogManager : StoreSubscriber { if (dialog != null) return when (state.dialog) { + is WalletConnectDialog.UnsupportedCard -> + dialog = UnsupportedCardDialog.create(context) is WalletConnectDialog.ApproveWcSession -> dialog = ApproveWcSessionDialog.create(state.dialog.session, context) - is WalletConnectDialog.ClipboardOrScanQr -> dialog = ClipboardOrScanQrDialog.create(state.dialog.clipboardUri, context) is WalletConnectDialog.RequestTransaction -> diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt index 896e3c06d2..2aa35ae196 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt @@ -104,6 +104,10 @@ class WalletConnectMiddleware { } } + is WalletConnectAction.UnsupportedCard -> { + store.dispatchOnMain(GlobalAction.ShowDialog(WalletConnectDialog.UnsupportedCard)) + } + is WalletConnectAction.OpenSession -> { walletConnectManager.connect( wcUri = action.wcUri, diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt index 84ef36046b..17669f9451 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt @@ -25,6 +25,7 @@ class WalletConnectReducer { state.copy(sessions = sessions) } is WalletConnectAction.ScanCard -> state.copy(loading = true) + is WalletConnectAction.UnsupportedCard -> state.copy(loading = false) is WalletConnectAction.FailureEstablishingSession -> state.copy(loading = false) diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt index 75dad54452..369ae46dc0 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt @@ -40,6 +40,7 @@ data class WalletForSession( sealed class WalletConnectDialog : StateDialog { data class ClipboardOrScanQr(val clipboardUri: String) : WalletConnectDialog() + object UnsupportedCard : WalletConnectDialog() data class ApproveWcSession(val session: WalletConnectSession) : WalletConnectDialog() data class RequestTransaction(val dialogData: TransactionRequestDialogData) : WalletConnectDialog() diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/UnsupportedCardDialog.kt b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/UnsupportedCardDialog.kt new file mode 100644 index 0000000000..cd408d7cd2 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/UnsupportedCardDialog.kt @@ -0,0 +1,24 @@ +package com.tangem.tap.features.details.ui.walletconnect.dialogs + +import android.content.Context +import androidx.appcompat.app.AlertDialog +import com.tangem.tap.common.redux.global.GlobalAction +import com.tangem.tap.store +import com.tangem.wallet.R + +class UnsupportedCardDialog { + companion object { + fun create(context: Context): AlertDialog { + + return AlertDialog.Builder(context).apply { + setTitle(context.getString(R.string.wallet_connect)) + setMessage(context.getText(R.string.wallet_connect_scanner_error_no_ethereum_wallet)) + setPositiveButton(context.getText(R.string.common_ok)) { _, _ -> } +// setNegativeButton(context.getText(R.string.common_reject)) { _, _ -> } + setOnDismissListener { + store.dispatch(GlobalAction.HideDialog) + } + }.create() + } + } +} \ No newline at end of file diff --git a/app/src/main/res/values/strings_untranslated.xml b/app/src/main/res/values/strings_untranslated.xml index d84ec691c4..ef04081bbb 100644 --- a/app/src/main/res/values/strings_untranslated.xml +++ b/app/src/main/res/values/strings_untranslated.xml @@ -153,4 +153,5 @@ this wallet. Clipboard contain WalletConnect code. Use copied value or scan QR-code Paste from clipboard Scan new code + This card can’t be used to establish WalletConnect session