Updated on 2026-08-14

This commit is contained in:
Tangem 2021-06-18 06:25:14 +00:00
commit 82d8417160
6 changed files with 34 additions and 5 deletions

View file

@ -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<GlobalState> {
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 ->

View file

@ -104,6 +104,10 @@ class WalletConnectMiddleware {
}
}
is WalletConnectAction.UnsupportedCard -> {
store.dispatchOnMain(GlobalAction.ShowDialog(WalletConnectDialog.UnsupportedCard))
}
is WalletConnectAction.OpenSession -> {
walletConnectManager.connect(
wcUri = action.wcUri,

View file

@ -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)

View file

@ -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()

View file

@ -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()
}
}
}

View file

@ -153,4 +153,5 @@ this wallet.
<string name="wallet_connect_clipboard_alert" translatable="false">Clipboard contain WalletConnect code. Use copied value or scan QR-code</string>
<string name="wallet_connect_paste_from_clipboard" translatable="false">Paste from clipboard</string>
<string name="wallet_connect_scan_new_code" translatable="false">Scan new code</string>
<string name="wallet_connect_scanner_error_no_ethereum_wallet" translatable="false">This card cant be used to establish WalletConnect session</string>
</resources>