Updated on 2026-08-14
This commit is contained in:
parent
2b12514ee1
commit
e5d588030b
5 changed files with 271 additions and 47 deletions
|
|
@ -292,25 +292,25 @@
|
|||
<string name="express_exchange_notification_verification_text">確認するには、プロバイダーのウェブサイトにアクセスしてください。</string>
|
||||
<string name="express_exchange_notification_verification_title">プロバイダーによる本人確認手続きが必要です。</string>
|
||||
<string name="express_exchange_status_bought">買付完了</string>
|
||||
<string name="express_exchange_status_buying">買付中</string>
|
||||
<string name="express_exchange_status_buying">買付待ち</string>
|
||||
<string name="express_exchange_status_buying_active">買付中...</string>
|
||||
<string name="express_exchange_status_canceled">キャンセルされました</string>
|
||||
<string name="express_exchange_status_confirmed">確認済み</string>
|
||||
<string name="express_exchange_status_confirming">確認中</string>
|
||||
<string name="express_exchange_status_confirming_active">確認中...</string>
|
||||
<string name="express_exchange_status_exchanged">交換済み</string>
|
||||
<string name="express_exchange_status_exchanging">交換中</string>
|
||||
<string name="express_exchange_status_exchanging_active">交換中...</string>
|
||||
<string name="express_exchange_status_failed">失敗しました</string>
|
||||
<string name="express_exchange_status_paused">停止中</string>
|
||||
<string name="express_exchange_status_canceled">取引はキャンセルされました</string>
|
||||
<string name="express_exchange_status_confirmed">入金確認済み</string>
|
||||
<string name="express_exchange_status_confirming">確認待ち</string>
|
||||
<string name="express_exchange_status_confirming_active">確認待ち...</string>
|
||||
<string name="express_exchange_status_exchanged">交換完了</string>
|
||||
<string name="express_exchange_status_exchanging">交換待ち</string>
|
||||
<string name="express_exchange_status_exchanging_active">スワップ待ち...</string>
|
||||
<string name="express_exchange_status_failed">交換に失敗しました</string>
|
||||
<string name="express_exchange_status_paused">交換は一時停止されました</string>
|
||||
<string name="express_exchange_status_received">入金済み</string>
|
||||
<string name="express_exchange_status_receiving">入金待ち</string>
|
||||
<string name="express_exchange_status_receiving_active">入金待ち...</string>
|
||||
<string name="express_exchange_status_refunded">返金済み</string>
|
||||
<string name="express_exchange_status_refunding">処理中</string>
|
||||
<string name="express_exchange_status_refunded">払い戻し完了</string>
|
||||
<string name="express_exchange_status_refunding">払い戻し待ち</string>
|
||||
<string name="express_exchange_status_sending">あなたへ送金しています</string>
|
||||
<string name="express_exchange_status_sending_active">送金中...</string>
|
||||
<string name="express_exchange_status_sent">送金済み</string>
|
||||
<string name="express_exchange_status_sending_active">資金の送金中...</string>
|
||||
<string name="express_exchange_status_sent">送金済み資金</string>
|
||||
<string name="express_exchange_status_subtitle">プロバイダー提供のデータ。推定額は市場動向により変更される場合があります。</string>
|
||||
<string name="express_exchange_status_title">交換ステータス</string>
|
||||
<string name="express_exchange_status_verifying">確認が必要です</string>
|
||||
|
|
@ -334,6 +334,7 @@
|
|||
<string name="express_status_hide_button_text">この取引を非表示にする</string>
|
||||
<string name="express_status_hide_dialog_text">一度非表示にすると、取引状況を再度表示することはできません。代わりに、スワイプして閉じることができます。</string>
|
||||
<string name="express_status_hide_dialog_title">取引状況を非表示にしますか?</string>
|
||||
<string name="express_swap_with">スワップする</string>
|
||||
<string name="express_token_list_empty_search">トークンが見つかりません。別のリクエストをお試しください。</string>
|
||||
<string name="express_transaction_id">ID: %s</string>
|
||||
<string name="express_transaction_id_copied">取引IDをコピーしました</string>
|
||||
|
|
@ -1244,6 +1245,7 @@
|
|||
<string name="wc_alert_verified_domain_title">検証済みドメイン</string>
|
||||
<string name="wc_alert_wrong_card_description">アプリで間違ったカードまたはリングが選択されました</string>
|
||||
<string name="wc_alert_wrong_card_title">問題が起きています</string>
|
||||
<string name="wc_allow_to_spend">使用を許可する</string>
|
||||
<string name="wc_common_address">アドレス</string>
|
||||
<string name="wc_common_connect">接続する</string>
|
||||
<string name="wc_common_network">ネットワーク</string>
|
||||
|
|
@ -1259,6 +1261,7 @@
|
|||
<string name="wc_connections">接続</string>
|
||||
<string name="wc_contents">内容</string>
|
||||
<string name="wc_copy_data_button_text">データをコピー</string>
|
||||
<string name="wc_custom_allowance_title">使用可能量の設定</string>
|
||||
<string name="wc_disconnect_all">すべての接続を解除する</string>
|
||||
<string name="wc_disconnect_all_alert_desc">すべてのdAppsの接続解除に関するテキスト</string>
|
||||
<string name="wc_disconnect_all_alert_title">すべてのdAppを接続解除する</string>
|
||||
|
|
@ -1274,6 +1277,7 @@
|
|||
<string name="wc_transaction_info_to_title">宛先</string>
|
||||
<string name="wc_transaction_request">取引リクエスト</string>
|
||||
<string name="wc_transaction_request_title">取引リクエスト</string>
|
||||
<string name="wc_unlimited_amount">無制限</string>
|
||||
<string name="wc_wallet_connect">ウォレットコネクト</string>
|
||||
<string name="welcome_interrupted_backup_alert_discard">破棄</string>
|
||||
<string name="welcome_interrupted_backup_alert_message">バックアップが中断されました。再開しますか?</string>
|
||||
|
|
|
|||
|
|
@ -297,26 +297,26 @@
|
|||
<string name="express_exchange_notification_refund_title">Сумма была возвращена в %1$s (%2$s сети)</string>
|
||||
<string name="express_exchange_notification_verification_text">Посетите сайт провайдера для проверки</string>
|
||||
<string name="express_exchange_notification_verification_title">Провайдер запрашивает прохождение верификации</string>
|
||||
<string name="express_exchange_status_bought">Куплено</string>
|
||||
<string name="express_exchange_status_buying">Покупка</string>
|
||||
<string name="express_exchange_status_buying_active">Покупка...</string>
|
||||
<string name="express_exchange_status_canceled">Отменен</string>
|
||||
<string name="express_exchange_status_confirmed">Подтверждено</string>
|
||||
<string name="express_exchange_status_confirming">Подтверждение</string>
|
||||
<string name="express_exchange_status_confirming_active">Подтверждение...</string>
|
||||
<string name="express_exchange_status_exchanged">Обменяно</string>
|
||||
<string name="express_exchange_status_exchanging">Обмен</string>
|
||||
<string name="express_exchange_status_exchanging_active">Обмен...</string>
|
||||
<string name="express_exchange_status_failed">Неудачно</string>
|
||||
<string name="express_exchange_status_paused">Приостановлен</string>
|
||||
<string name="express_exchange_status_bought">Покупка завершена</string>
|
||||
<string name="express_exchange_status_buying">Ожидание покупки</string>
|
||||
<string name="express_exchange_status_buying_active">Ожидание покупки...</string>
|
||||
<string name="express_exchange_status_canceled">Транзакция отменена</string>
|
||||
<string name="express_exchange_status_confirmed">Депозит подтверждён</string>
|
||||
<string name="express_exchange_status_confirming">Ожидает подтверждения</string>
|
||||
<string name="express_exchange_status_confirming_active">Ожидает подтверждения...</string>
|
||||
<string name="express_exchange_status_exchanged">Обмен завершён</string>
|
||||
<string name="express_exchange_status_exchanging">Ожидает обмена</string>
|
||||
<string name="express_exchange_status_exchanging_active">Ожидает обмена...</string>
|
||||
<string name="express_exchange_status_failed">Ошибка обмена</string>
|
||||
<string name="express_exchange_status_paused">Обмен остановлен</string>
|
||||
<string name="express_exchange_status_received">Депозит получен</string>
|
||||
<string name="express_exchange_status_receiving">Ожидание депозита</string>
|
||||
<string name="express_exchange_status_receiving_active">Ожидаем пополнения...</string>
|
||||
<string name="express_exchange_status_refunded">Возвращено</string>
|
||||
<string name="express_exchange_status_refunded">Средства возвращены</string>
|
||||
<string name="express_exchange_status_refunding">Возврат средств</string>
|
||||
<string name="express_exchange_status_sending">Отправляем </string>
|
||||
<string name="express_exchange_status_sending">Отправка средств</string>
|
||||
<string name="express_exchange_status_sending_active">Отправка средств...</string>
|
||||
<string name="express_exchange_status_sent">Отправлено</string>
|
||||
<string name="express_exchange_status_sent">Средства отправлены</string>
|
||||
<string name="express_exchange_status_subtitle">Данные провайдера. Сумма к получению может измениться в зависимости от рыночных условий.</string>
|
||||
<string name="express_exchange_status_title">Статус обмена</string>
|
||||
<string name="express_exchange_status_verifying">Требуется верификация</string>
|
||||
|
|
|
|||
|
|
@ -295,26 +295,26 @@
|
|||
<string name="express_exchange_notification_refund_title">The amount was refunded in %1$s (%2$s network)</string>
|
||||
<string name="express_exchange_notification_verification_text">Visit provider’s website for verification</string>
|
||||
<string name="express_exchange_notification_verification_title">KYC verification required by provider</string>
|
||||
<string name="express_exchange_status_bought">Bought</string>
|
||||
<string name="express_exchange_status_buying">Buying</string>
|
||||
<string name="express_exchange_status_buying_active">Buying...</string>
|
||||
<string name="express_exchange_status_canceled">Canceled</string>
|
||||
<string name="express_exchange_status_confirmed">Confirmed</string>
|
||||
<string name="express_exchange_status_confirming">Confirming</string>
|
||||
<string name="express_exchange_status_confirming_active">Confirming...</string>
|
||||
<string name="express_exchange_status_exchanged">Exchanged</string>
|
||||
<string name="express_exchange_status_exchanging">Exchanging</string>
|
||||
<string name="express_exchange_status_exchanging_active">Exchanging...</string>
|
||||
<string name="express_exchange_status_failed">Failed</string>
|
||||
<string name="express_exchange_status_paused">Paused</string>
|
||||
<string name="express_exchange_status_bought">Purchase completed</string>
|
||||
<string name="express_exchange_status_buying">Awaiting Purchase</string>
|
||||
<string name="express_exchange_status_buying_active">Awaiting Purchase...</string>
|
||||
<string name="express_exchange_status_canceled">Transaction canceled</string>
|
||||
<string name="express_exchange_status_confirmed">Deposit confirmed</string>
|
||||
<string name="express_exchange_status_confirming">Waiting for confirmation</string>
|
||||
<string name="express_exchange_status_confirming_active">Waiting for confirmation...</string>
|
||||
<string name="express_exchange_status_exchanged">Exchange completed</string>
|
||||
<string name="express_exchange_status_exchanging">Waiting for exchange</string>
|
||||
<string name="express_exchange_status_exchanging_active">Waiting for exchange...</string>
|
||||
<string name="express_exchange_status_failed">Exchange failed</string>
|
||||
<string name="express_exchange_status_paused">Exchange paused</string>
|
||||
<string name="express_exchange_status_received">Deposit received</string>
|
||||
<string name="express_exchange_status_receiving">Awaiting deposit</string>
|
||||
<string name="express_exchange_status_receiving">Waiting for deposit</string>
|
||||
<string name="express_exchange_status_receiving_active">Awaiting deposit...</string>
|
||||
<string name="express_exchange_status_refunded">Refunded</string>
|
||||
<string name="express_exchange_status_refunding">Refunding</string>
|
||||
<string name="express_exchange_status_refunded">Refund completed</string>
|
||||
<string name="express_exchange_status_refunding">Waiting for refund</string>
|
||||
<string name="express_exchange_status_sending">Sending to you</string>
|
||||
<string name="express_exchange_status_sending_active">Sending to you...</string>
|
||||
<string name="express_exchange_status_sent">Sent</string>
|
||||
<string name="express_exchange_status_sending_active">Sending funds...</string>
|
||||
<string name="express_exchange_status_sent">Funds sent</string>
|
||||
<string name="express_exchange_status_subtitle">Provider-sourced data. Estimated amount subject to change due to market conditions.</string>
|
||||
<string name="express_exchange_status_title">Exchange status</string>
|
||||
<string name="express_exchange_status_verifying">Verification required</string>
|
||||
|
|
@ -338,6 +338,7 @@
|
|||
<string name="express_status_hide_button_text">Hide this transaction</string>
|
||||
<string name="express_status_hide_dialog_text">Once hidden, the transaction status cannot be viewed again. You can simply swipe to dismiss instead.</string>
|
||||
<string name="express_status_hide_dialog_title">Hide Transaction Status?</string>
|
||||
<string name="express_swap_with">Swap with</string>
|
||||
<string name="express_token_list_empty_search">No tokens found. Please try another request</string>
|
||||
<string name="express_transaction_id">ID: %s</string>
|
||||
<string name="express_transaction_id_copied">Transaction ID copied</string>
|
||||
|
|
@ -1337,6 +1338,7 @@
|
|||
<string name="wc_transaction_info_to_title">To</string>
|
||||
<string name="wc_transaction_request">Transaction request</string>
|
||||
<string name="wc_transaction_request_title">Transaction request</string>
|
||||
<string name="wc_unlimited_amount">Unlimited Amount</string>
|
||||
<string name="wc_wallet_connect">Wallet connect</string>
|
||||
<string name="welcome_interrupted_backup_alert_discard">Discard</string>
|
||||
<string name="welcome_interrupted_backup_alert_message">You have an interrupted backup. Do you want to resume?</string>
|
||||
|
|
|
|||
|
|
@ -28,4 +28,4 @@ internal data class WcCustomAllowanceUM(
|
|||
val tokenIconUrl: String,
|
||||
val amountText: String,
|
||||
val isUnlimited: Boolean,
|
||||
)
|
||||
) : TangemBottomSheetConfigContent
|
||||
|
|
@ -0,0 +1,218 @@
|
|||
package com.tangem.features.walletconnect.transaction.ui.approve
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextField
|
||||
import androidx.compose.material3.TextFieldDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.tooling.preview.Devices
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider
|
||||
import coil.compose.AsyncImage
|
||||
import com.tangem.core.ui.components.PrimaryButton
|
||||
import com.tangem.core.ui.components.TangemSwitch
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
|
||||
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheet
|
||||
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.features.walletconnect.impl.R
|
||||
import com.tangem.features.walletconnect.transaction.entity.approve.WcCustomAllowanceUM
|
||||
|
||||
@Composable
|
||||
internal fun WcCustomAllowanceContent(
|
||||
allowance: WcCustomAllowanceUM,
|
||||
onAmountChange: (String) -> Unit,
|
||||
onToggleChange: (Boolean) -> Unit,
|
||||
onClickDone: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Column(
|
||||
modifier = modifier
|
||||
.background(TangemTheme.colors.background.tertiary)
|
||||
.fillMaxWidth()
|
||||
.padding(TangemTheme.dimens.size16),
|
||||
) {
|
||||
AmountTextField(
|
||||
allowance = allowance,
|
||||
onAmountChange = onAmountChange,
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(TangemTheme.dimens.spacing16))
|
||||
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier
|
||||
.clip(RoundedCornerShape(TangemTheme.dimens.radius14))
|
||||
.background(color = TangemTheme.colors.background.action)
|
||||
.padding(TangemTheme.dimens.spacing16)
|
||||
.fillMaxWidth(),
|
||||
) {
|
||||
Text(
|
||||
text = stringResourceSafe(R.string.wc_unlimited_amount),
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
modifier = Modifier.weight(1f),
|
||||
)
|
||||
TangemSwitch(
|
||||
checked = allowance.isUnlimited,
|
||||
onCheckedChange = onToggleChange,
|
||||
)
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(TangemTheme.dimens.spacing60))
|
||||
|
||||
PrimaryButton(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = stringResourceSafe(R.string.common_done),
|
||||
onClick = onClickDone,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun AmountTextField(
|
||||
allowance: WcCustomAllowanceUM,
|
||||
onAmountChange: (String) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = modifier
|
||||
.clip(RoundedCornerShape(TangemTheme.dimens.radius14))
|
||||
.background(color = TangemTheme.colors.background.action)
|
||||
.padding(
|
||||
end = TangemTheme.dimens.size8,
|
||||
top = TangemTheme.dimens.size4,
|
||||
bottom = TangemTheme.dimens.size4,
|
||||
)
|
||||
.fillMaxWidth(),
|
||||
) {
|
||||
TextField(
|
||||
value = allowance.amountText,
|
||||
onValueChange = onAmountChange,
|
||||
label = {
|
||||
Text(
|
||||
text = stringResourceSafe(R.string.send_amount_label),
|
||||
style = TangemTheme.typography.subtitle2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
)
|
||||
},
|
||||
textStyle = TangemTheme.typography.body1,
|
||||
modifier = Modifier.weight(1f),
|
||||
keyboardOptions = KeyboardOptions.Default.copy(
|
||||
keyboardType = KeyboardType.Number,
|
||||
),
|
||||
colors = TextFieldDefaults.colors(
|
||||
unfocusedContainerColor = Color.Transparent,
|
||||
focusedContainerColor = Color.Transparent,
|
||||
focusedTextColor = TangemTheme.colors.text.primary1,
|
||||
unfocusedTextColor = TangemTheme.colors.text.primary1,
|
||||
focusedPlaceholderColor = TangemTheme.colors.text.disabled,
|
||||
unfocusedPlaceholderColor = TangemTheme.colors.text.disabled,
|
||||
focusedIndicatorColor = Color.Transparent,
|
||||
unfocusedIndicatorColor = Color.Transparent,
|
||||
cursorColor = TangemTheme.colors.icon.primary1,
|
||||
),
|
||||
)
|
||||
|
||||
TokenWithNetworkIcon(
|
||||
tokenIconUrl = allowance.tokenIconUrl,
|
||||
networkIconRes = allowance.networkIconRes,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun TokenWithNetworkIcon(
|
||||
tokenIconUrl: String,
|
||||
@DrawableRes networkIconRes: Int,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Box(
|
||||
modifier = modifier
|
||||
.size(TangemTheme.dimens.size48),
|
||||
) {
|
||||
AsyncImage(
|
||||
modifier = Modifier
|
||||
.aspectRatio(1f)
|
||||
.clip(CircleShape)
|
||||
.align(Alignment.Center)
|
||||
.padding(TangemTheme.dimens.spacing8),
|
||||
model = tokenIconUrl,
|
||||
contentDescription = null,
|
||||
)
|
||||
Image(
|
||||
modifier = Modifier
|
||||
.align(Alignment.TopEnd)
|
||||
.size(TangemTheme.dimens.size18)
|
||||
.border(TangemTheme.dimens.size2, TangemTheme.colors.background.action, CircleShape)
|
||||
.padding(TangemTheme.dimens.spacing2),
|
||||
painter = painterResource(id = networkIconRes),
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true, device = Devices.PIXEL_7_PRO)
|
||||
@Preview(showBackground = true, device = Devices.PIXEL_7_PRO, uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
internal fun PreviewWcCustomAllowanceContent(
|
||||
@PreviewParameter(WcCustomAllowanceStateProvider::class) state: WcCustomAllowanceUM,
|
||||
) {
|
||||
TangemThemePreview {
|
||||
TangemModalBottomSheet<WcCustomAllowanceUM>(
|
||||
config = TangemBottomSheetConfig(
|
||||
isShown = true,
|
||||
onDismissRequest = {},
|
||||
content = state,
|
||||
),
|
||||
containerColor = TangemTheme.colors.background.tertiary,
|
||||
title = {
|
||||
TangemModalBottomSheetTitle(
|
||||
title = resourceReference(R.string.wc_custom_allowance_title),
|
||||
endIconRes = null,
|
||||
onEndClick = {},
|
||||
startIconRes = R.drawable.ic_back_24,
|
||||
onStartClick = {},
|
||||
)
|
||||
},
|
||||
content = {
|
||||
WcCustomAllowanceContent(
|
||||
allowance = state,
|
||||
onAmountChange = {},
|
||||
onToggleChange = {},
|
||||
onClickDone = {},
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class WcCustomAllowanceStateProvider : CollectionPreviewParameterProvider<WcCustomAllowanceUM>(
|
||||
listOf(
|
||||
WcCustomAllowanceUM(
|
||||
networkIconRes = R.drawable.img_eth_22,
|
||||
tokenIconUrl = "https://tangem.com",
|
||||
amountText = "100",
|
||||
isUnlimited = false,
|
||||
),
|
||||
),
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue