Updated on 2026-08-14
This commit is contained in:
parent
b32a1b4be0
commit
3eeacd520e
18 changed files with 585 additions and 45 deletions
|
|
@ -0,0 +1,6 @@
|
|||
package com.tangem.datasource.crypto
|
||||
|
||||
internal class MockDataSignatureVerifier : DataSignatureVerifier {
|
||||
|
||||
override fun verifySignature(signature: String, data: String): Boolean = true
|
||||
}
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
package com.tangem.datasource.di
|
||||
|
||||
import com.tangem.datasource.BuildConfig
|
||||
import com.tangem.datasource.api.common.config.managers.ApiConfigsManager
|
||||
import com.tangem.datasource.crypto.DataSignatureVerifier
|
||||
import com.tangem.datasource.crypto.MockDataSignatureVerifier
|
||||
import com.tangem.datasource.crypto.Sha256SignatureVerifier
|
||||
import com.tangem.datasource.local.config.environment.EnvironmentConfig
|
||||
import dagger.Module
|
||||
|
|
@ -20,6 +22,10 @@ internal object SecurityModule {
|
|||
environmentConfig: EnvironmentConfig,
|
||||
apiConfigsManager: ApiConfigsManager,
|
||||
): DataSignatureVerifier {
|
||||
return Sha256SignatureVerifier(environmentConfig, apiConfigsManager)
|
||||
return if (BuildConfig.MOCK_DATA_SOURCE) {
|
||||
MockDataSignatureVerifier()
|
||||
} else {
|
||||
Sha256SignatureVerifier(environmentConfig, apiConfigsManager)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -47,6 +47,7 @@ import androidx.compose.ui.graphics.Shape
|
|||
import androidx.compose.ui.graphics.graphicsLayer
|
||||
import androidx.compose.ui.input.pointer.pointerInput
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
|
|
@ -58,6 +59,7 @@ import com.tangem.core.ui.haptic.TangemHapticEffect
|
|||
import com.tangem.core.ui.res.LocalHapticManager
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.core.ui.test.BaseButtonTestTags
|
||||
import kotlin.coroutines.coroutineContext
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Job
|
||||
|
|
@ -145,6 +147,7 @@ internal fun TangemHoldToConfirmButton(
|
|||
Surface(
|
||||
modifier = modifier
|
||||
.heightIn(min = buttonHeight)
|
||||
.testTag(BaseButtonTestTags.BUTTON)
|
||||
.graphicsLayer {
|
||||
scaleX = state.scaleProgress.value
|
||||
scaleY = state.scaleProgress.value
|
||||
|
|
@ -442,10 +445,12 @@ private fun HoldToConfirmButtonContent(
|
|||
)
|
||||
} else {
|
||||
Text(
|
||||
modifier = Modifier.graphicsLayer {
|
||||
translationX = state.shakeOffset.value
|
||||
alpha = state.textAlpha.value
|
||||
},
|
||||
modifier = Modifier
|
||||
.testTag(BaseButtonTestTags.TEXT)
|
||||
.graphicsLayer {
|
||||
translationX = state.shakeOffset.value
|
||||
alpha = state.textAlpha.value
|
||||
},
|
||||
text = if (state.isHintVisible) textConfig.hintText else textConfig.text,
|
||||
style = textConfig.style,
|
||||
color = color.contentColor,
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
|
|
@ -30,6 +31,7 @@ import com.tangem.core.ui.extensions.resolveReference
|
|||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.core.ui.test.TransactionSuccessScreenTestTags
|
||||
|
||||
/**
|
||||
* [Input Row Best Rate](https://www.figma.com/file/14ISV23YB1yVW1uNVwqrKv/Android?type=design&node-id=2100-889&mode=dev)
|
||||
|
|
@ -61,7 +63,8 @@ fun InputRowBestRate(
|
|||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier
|
||||
.padding(TangemTheme.dimens.spacing12),
|
||||
.padding(TangemTheme.dimens.spacing12)
|
||||
.testTag(TransactionSuccessScreenTestTags.PROVIDER_BLOCK),
|
||||
) {
|
||||
InputRowAsyncImage(imageUrl = imageUrl, modifier = Modifier.size(TangemTheme.dimens.spacing40))
|
||||
Column(
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import androidx.compose.material3.Text
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
|
@ -21,6 +22,7 @@ import com.tangem.core.ui.extensions.resourceReference
|
|||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.core.ui.test.TransactionSuccessScreenTestTags
|
||||
|
||||
/**
|
||||
* Common transaction done screen title
|
||||
|
|
@ -46,7 +48,8 @@ fun TransactionDoneTitle(title: TextReference, subtitle: TextReference, modifier
|
|||
style = TangemTheme.typography.h3,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
modifier = Modifier
|
||||
.padding(top = TangemTheme.dimens.spacing16),
|
||||
.padding(top = TangemTheme.dimens.spacing16)
|
||||
.testTag(TransactionSuccessScreenTestTags.TITLE),
|
||||
)
|
||||
Text(
|
||||
text = subtitle.resolveReference(),
|
||||
|
|
@ -54,7 +57,8 @@ fun TransactionDoneTitle(title: TextReference, subtitle: TextReference, modifier
|
|||
color = TangemTheme.colors.text.tertiary,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier
|
||||
.padding(top = TangemTheme.dimens.spacing4),
|
||||
.padding(top = TangemTheme.dimens.spacing4)
|
||||
.testTag(TransactionSuccessScreenTestTags.TRANSACTION_DATE),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,4 +15,13 @@ object TokenDetailsScreenTestTags {
|
|||
const val STAKING_TOKEN_AMOUNT = "TOKEN_DETAILS_SCREEN_STAKING_TOKEN_AMOUNT"
|
||||
const val STAKING_REWARD_VALUE = "TOKEN_DETAILS_SCREEN_STAKING_REWARD_VALUE"
|
||||
const val STAKING_CHEVRON_ICON = "TOKEN_DETAILS_SCREEN_STAKING_CHEVRON_ICON"
|
||||
|
||||
const val EXPRESS_STATUS_ITEM = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM"
|
||||
const val EXPRESS_STATUS_ITEM_TITLE = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM_TITLE"
|
||||
const val EXPRESS_STATUS_ITEM_FROM_ICON = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM_FROM_ICON"
|
||||
const val EXPRESS_STATUS_ITEM_FROM_AMOUNT = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM_FROM_AMOUNT"
|
||||
const val EXPRESS_STATUS_ITEM_SWAP_ICON = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM_SWAP_ICON"
|
||||
const val EXPRESS_STATUS_ITEM_TO_ICON = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM_TO_ICON"
|
||||
const val EXPRESS_STATUS_ITEM_TO_AMOUNT = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM_TO_AMOUNT"
|
||||
const val EXPRESS_STATUS_ITEM_CHEVRON_ICON = "TOKEN_DETAILS_SCREEN_EXPRESS_STATUS_ITEM_CHEVRON_ICON"
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.tangem.core.ui.test
|
||||
|
||||
object TransactionSuccessScreenTestTags {
|
||||
const val CONTAINER = "TRANSACTION_SUCCESS_SCREEN_CONTAINER"
|
||||
const val TITLE = "TRANSACTION_SUCCESS_SCREEN_TITLE"
|
||||
const val TRANSACTION_DATE = "TRANSACTION_SUCCESS_SCREEN_DATE"
|
||||
const val AMOUNT_BLOCK = "TRANSACTION_SUCCESS_SCREEN_AMOUNT_BLOCK"
|
||||
const val FEE_BLOCK = "TRANSACTION_SUCCESS_SCREEN_FEE_BLOCK"
|
||||
const val PROVIDER_BLOCK = "TRANSACTION_SUCCESS_SCREEN_PROVIDER_BLOCK"
|
||||
const val RECIPIENT_BLOCK = "TRANSACTION_SUCCESS_SCREEN_RECIPIENT_BLOCK"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue