Updated on 2026-08-14

This commit is contained in:
Tangem 2026-06-02 14:24:25 +02:00
commit 6f82ba15b7
25 changed files with 699 additions and 68 deletions

View file

@ -17,6 +17,7 @@ import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalDensity
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
@ -29,6 +30,7 @@ import com.tangem.core.ui.event.consumedEvent
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.AppCurrencySelectorScreenTestTags
import com.tangem.tap.features.details.ui.appcurrency.AppCurrencySelectorState.Currency
import com.tangem.wallet.R
import kotlinx.collections.immutable.ImmutableList
@ -123,7 +125,9 @@ private fun TopBar(
when (state) {
is AppCurrencySelectorState.Content -> {
IconButton(
modifier = Modifier.size(TangemTheme.dimens.size32),
modifier = Modifier
.size(TangemTheme.dimens.size32)
.testTag(AppCurrencySelectorScreenTestTags.TOP_BAR_ACTION_BUTTON),
onClick = state.onTopBarActionClick,
) {
val iconResId = when (state) {
@ -157,7 +161,8 @@ private fun SearchBar(onInputChange: (String) -> Unit, modifier: Modifier = Modi
TextField(
modifier = modifier
.focusRequester(focusRequester),
.focusRequester(focusRequester)
.testTag(AppCurrencySelectorScreenTestTags.SEARCH_FIELD),
value = input,
onValueChange = { input = it },
singleLine = true,
@ -218,7 +223,7 @@ private fun CurrenciesList(
) {
val bottomBarHeight = with(LocalDensity.current) { WindowInsets.systemBars.getBottom(this).toDp() }
LazyColumn(
modifier = modifier,
modifier = modifier.testTag(AppCurrencySelectorScreenTestTags.LAZY_LIST),
state = listState,
contentPadding = PaddingValues(bottom = bottomBarHeight),
) {
@ -246,6 +251,7 @@ private fun CurrencyItem(name: String, isSelected: Boolean, onClick: () -> Unit,
Row(
modifier = modifier
.testTag(AppCurrencySelectorScreenTestTags.CURRENCY_ITEM)
.clickable(
interactionSource = interactionSource,
indication = LocalIndication.current,

View file

@ -10,11 +10,13 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.test.AppSettingsScreenTestTags
import com.tangem.domain.apptheme.model.AppThemeMode
import com.tangem.tap.features.details.ui.appsettings.AppSettingsScreenState.Item
import com.tangem.tap.features.details.ui.appsettings.components.*
@ -55,7 +57,15 @@ private fun AppSettings(state: AppSettingsScreenState.Content) {
item = item,
)
is Item.Button -> SettingsButtonItem(
modifier = Modifier.padding(vertical = TangemTheme.dimens.spacing8),
modifier = Modifier
.padding(vertical = TangemTheme.dimens.spacing8)
.then(
if (item.id == AppSettingsItemsFactory.ID_SELECT_APP_CURRENCY_BUTTON) {
Modifier.testTag(AppSettingsScreenTestTags.CURRENCY_BUTTON)
} else {
Modifier
},
),
item = item,
)
is Item.Switch -> SettingsSwitchItem(