Updated on 2026-08-14
This commit is contained in:
parent
16a60b16ae
commit
a314353f7f
7 changed files with 84 additions and 16 deletions
|
|
@ -5,6 +5,8 @@ import com.tangem.tangemtest.ucase.resources.MainResourceHolder
|
|||
import com.tangem.tangemtest.ucase.resources.Resources
|
||||
import com.tangem.tangemtest.ucase.variants.responses.CardDataId
|
||||
import com.tangem.tangemtest.ucase.variants.responses.CardId
|
||||
import com.tangem.tangemtest.ucase.variants.responses.DepersonalizeId
|
||||
import com.tangem.tangemtest.ucase.variants.responses.SignId
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
|
|
@ -13,6 +15,8 @@ class ResponseResources {
|
|||
fun init(holder: MainResourceHolder) {
|
||||
initCard(holder)
|
||||
initCardData(holder)
|
||||
initSignResponse(holder)
|
||||
initDepersonalizeResponse(holder)
|
||||
}
|
||||
|
||||
private fun initCard(holder: MainResourceHolder) {
|
||||
|
|
@ -50,4 +54,15 @@ class ResponseResources {
|
|||
holder.register(CardDataId.tokenContractAddress, Resources(R.string.response_card_card_data_token_contract_address, R.string.info_response_card_card_data_token_contract_address))
|
||||
holder.register(CardDataId.tokenDecimal, Resources(R.string.response_card_card_data_token_decimal, R.string.info_response_card_card_data_token_decimal))
|
||||
}
|
||||
|
||||
private fun initSignResponse(holder: MainResourceHolder) {
|
||||
holder.register(SignId.cid, Resources(R.string.response_sign_cid, R.string.info_response_sign_cid))
|
||||
holder.register(SignId.walletSignedHashes, Resources(R.string.response_sign_wallet_signed_hashes, R.string.info_response_sign_wallet_signed_hashes))
|
||||
holder.register(SignId.walletRemainingSignatures, Resources(R.string.response_sign_wallet_remaining_signatures, R.string.info_response_sign_wallet_remaining_signatures))
|
||||
holder.register(SignId.signature, Resources(R.string.response_sign_signature, R.string.info_response_sign_signature))
|
||||
}
|
||||
|
||||
private fun initDepersonalizeResponse(holder: MainResourceHolder) {
|
||||
holder.register(DepersonalizeId.isSuccess, Resources(R.string.response_depersonalize_is_success, R.string.info_response_depersonalize_is_success))
|
||||
}
|
||||
}
|
||||
|
|
@ -29,6 +29,7 @@ enum class CardId : ResponseId {
|
|||
paymentFlowVersion,
|
||||
userCounter,
|
||||
userProtectedCounter,
|
||||
empty
|
||||
}
|
||||
|
||||
enum class CardDataId : ResponseId {
|
||||
|
|
@ -41,4 +42,15 @@ enum class CardDataId : ResponseId {
|
|||
tokenSymbol,
|
||||
tokenContractAddress,
|
||||
tokenDecimal,
|
||||
}
|
||||
|
||||
enum class SignId : ResponseId {
|
||||
cid,
|
||||
walletSignedHashes,
|
||||
walletRemainingSignatures,
|
||||
signature,
|
||||
}
|
||||
|
||||
enum class DepersonalizeId: ResponseId {
|
||||
isSuccess
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.tangem.tangemtest.ucase.variants.responses.converter
|
||||
|
||||
import com.tangem.tangemtest._arch.structure.Id
|
||||
import com.tangem.tangemtest._arch.structure.abstraction.*
|
||||
import com.tangem.tangemtest.ucase.domain.responses.ResponseFieldConverter
|
||||
import com.tangem.tangemtest.ucase.variants.responses.item.TextHeaderItem
|
||||
import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
abstract class BaseResponseConverter<M> : ModelToItems<M> {
|
||||
protected val fieldConverter = ResponseFieldConverter()
|
||||
|
||||
protected open fun createGroup(id: Id, colorId: Int? = null, addHeaderItem: Boolean = true): ItemGroup {
|
||||
val group = if (colorId == null) SimpleItemGroup(id)
|
||||
else SimpleItemGroup(id, BaseItemViewModel(viewState = ViewState(bgColor = colorId)))
|
||||
|
||||
if (addHeaderItem) group.addItem(TextHeaderItem(id, ""))
|
||||
return group
|
||||
}
|
||||
|
||||
protected open fun valueToString(value: Any?): String? {
|
||||
if (value == null) return null
|
||||
return stringOf(value)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +1,30 @@
|
|||
package com.tangem.tangemtest.ucase.variants.responses.converter
|
||||
|
||||
import com.tangem.commands.Card
|
||||
import com.tangem.commands.SignResponse
|
||||
import com.tangem.commands.personalization.DepersonalizeResponse
|
||||
import com.tangem.common.CompletionResult
|
||||
import com.tangem.tangemtest._arch.structure.StringId
|
||||
import com.tangem.tangemtest._arch.structure.abstraction.Item
|
||||
import com.tangem.tangemtest._arch.structure.abstraction.ModelToItems
|
||||
import com.tangem.tangemtest._arch.structure.impl.TextItem
|
||||
import com.tangem.tangemtest.ucase.variants.responses.DepersonalizeId
|
||||
import com.tangem.tangemtest.ucase.variants.responses.SignId
|
||||
import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
class ReadEventConverter : ModelToItems<CompletionResult.Success<Card>> {
|
||||
override fun convert(from: CompletionResult.Success<Card>): List<Item> = CardConverter().convert(from.data)
|
||||
}
|
||||
|
||||
class SignResponseConverter : ModelToItems<SignResponse> {
|
||||
class SignResponseConverter : BaseResponseConverter<SignResponse>() {
|
||||
|
||||
override fun convert(from: SignResponse): List<Item> {
|
||||
return listOf(
|
||||
TextItem(StringId("CID"), from.cardId),
|
||||
TextItem(StringId("Wallet signed hashes"), stringOf(from.walletSignedHashes)),
|
||||
TextItem(StringId("Wallet remaining signatures"), stringOf(from.walletRemainingSignatures)),
|
||||
TextItem(StringId("Signature"), stringOf(from.signature))
|
||||
TextItem(SignId.cid, from.cardId),
|
||||
TextItem(SignId.walletSignedHashes, valueToString(from.walletSignedHashes)),
|
||||
TextItem(SignId.walletRemainingSignatures, valueToString(from.walletRemainingSignatures)),
|
||||
TextItem(SignId.signature, fieldConverter.byteArray(from.signature))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
class DepersonalizeResponseConverter : ModelToItems<DepersonalizeResponse> {
|
||||
class DepersonalizeResponseConverter : BaseResponseConverter<DepersonalizeResponse>() {
|
||||
override fun convert(from: DepersonalizeResponse): List<Item> {
|
||||
return listOf(TextItem(StringId("Is success"), stringOf(from.success)))
|
||||
return listOf(TextItem(DepersonalizeId.isSuccess, stringOf(from.success)))
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/delimiter"
|
||||
android:background="@color/field_header_background"
|
||||
android:minHeight="@dimen/iw_layout_frame_header_min_height"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp">
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
<color name="action_name">#2B2B2B</color>
|
||||
|
||||
<color name="field_header_background">#C3C3C3</color>
|
||||
<color name="field_info">#888888</color>
|
||||
<color name="field_content">#303030</color>
|
||||
<color name="field_description">@color/field_info</color>
|
||||
|
|
|
|||
|
|
@ -136,4 +136,23 @@
|
|||
<string name="info_response_card_card_data_token_symbol"></string>
|
||||
<string name="info_response_card_card_data_token_contract_address"></string>
|
||||
<string name="info_response_card_card_data_token_decimal"></string>
|
||||
|
||||
|
||||
<!-- Field names - Response: Sign -->
|
||||
<string name="response_sign_cid">CID</string>
|
||||
<string name="response_sign_wallet_signed_hashes">Wallet signed hashes</string>
|
||||
<string name="response_sign_wallet_remaining_signatures">Wallet remaining signatures</string>
|
||||
<string name="response_sign_signature">Signature</string>
|
||||
|
||||
<string name="info_response_sign_cid">@string/info_response_card_cid</string>
|
||||
<string name="info_response_sign_wallet_signed_hashes">Total number of signed single hashes returned by the card in SIGN command responses since card personalization. Sums up array elements within all SIGN commands.</string>
|
||||
<string name="info_response_sign_wallet_remaining_signatures">Remaining number of SIGN operations before the wallet will stop signing transactions.</string>
|
||||
<string name="info_response_sign_signature">Array of resulting signatures that App should embed into a raw transaction according to a transaction format of an appropriate blockchain.</string>
|
||||
|
||||
|
||||
<!-- Field names - Response: Depersonalize -->
|
||||
<string name="response_depersonalize_is_success">Is success</string>
|
||||
|
||||
<string name="info_response_depersonalize_is_success">Is success</string>
|
||||
|
||||
</resources>
|
||||
Loading…
Add table
Add a link
Reference in a new issue