Updated on 2026-08-14
This commit is contained in:
parent
5e7e57b942
commit
1ec1196e12
29 changed files with 466 additions and 50 deletions
|
|
@ -755,7 +755,12 @@ internal class WalletModel @Inject constructor(
|
|||
}
|
||||
|
||||
private suspend fun handleQrResult(qrCode: String, resultSource: QrResultSource) {
|
||||
when (val target = resolveQrSendTargetsUseCase(qrCode)) {
|
||||
val target = resolveQrSendTargetsUseCase(qrCode)
|
||||
handleQrTarget(target, resultSource)
|
||||
}
|
||||
|
||||
private fun handleQrTarget(target: QrSendTarget, resultSource: QrResultSource) {
|
||||
when (target) {
|
||||
is QrSendTarget.WalletConnect -> {
|
||||
val source = when (resultSource) {
|
||||
QrResultSource.CLIPBOARD -> WcPairRequest.Source.CLIPBOARD
|
||||
|
|
@ -788,6 +793,14 @@ internal class WalletModel @Inject constructor(
|
|||
is QrSendTarget.AddressSameAsWallet -> {
|
||||
uiMessageSender.send(WalletAlertUM.qrCodeAddressSameAsWallet())
|
||||
}
|
||||
is QrSendTarget.Warning -> {
|
||||
uiMessageSender.send(
|
||||
WalletAlertUM.qrCodeUnsupportedParams(
|
||||
unsupportedParams = target.unsupportedParams,
|
||||
onContinue = { handleQrTarget(target.target, resultSource) },
|
||||
),
|
||||
)
|
||||
}
|
||||
is QrSendTarget.Error -> handleQrError(target.error)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,6 +94,24 @@ internal object WalletAlertUM {
|
|||
)
|
||||
}
|
||||
|
||||
fun qrCodeUnsupportedParams(unsupportedParams: Map<String, String>, onContinue: () -> Unit): DialogMessage {
|
||||
val paramsList = unsupportedParams.entries.joinToString { "${it.key} = ${it.value}" }
|
||||
return DialogMessage(
|
||||
title = resourceReference(R.string.qr_scanner_warning_unknown_parameters_title),
|
||||
message = resourceReference(
|
||||
id = R.string.qr_scanner_warning_unknown_parameters_message,
|
||||
formatArgs = WrappedList(listOf(paramsList)),
|
||||
),
|
||||
firstActionBuilder = {
|
||||
EventMessageAction(
|
||||
title = resourceReference(R.string.common_continue),
|
||||
onClick = onContinue,
|
||||
)
|
||||
},
|
||||
secondActionBuilder = { cancelAction() },
|
||||
)
|
||||
}
|
||||
|
||||
fun qrCodeAddressSameAsWallet(): DialogMessage {
|
||||
return DialogMessage(
|
||||
message = resourceReference(R.string.send_error_address_same_as_wallet),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue