From 28e2b3c45861512c32e531127ac58f3267bd91ca Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 26 Feb 2025 18:45:31 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../common/compose/TangemTextFieldsDefault.kt | 152 ------------ .../tangem/tap/common/extensions/TextView.kt | 58 ----- .../components/SettingsButtonItem.kt | 6 +- .../components/SettingsCardItem.kt | 8 +- .../components/SettingsSwitchItem.kt | 2 +- .../ui/cardsettings/CardSettingsScreen.kt | 2 +- .../features/home/compose/content/Content.kt | 2 +- .../compose/content/FirstStoriesContent.kt | 2 +- .../ui/components/SaveWalletScreenContent.kt | 6 +- .../ui/components/WelcomeScreenContent.kt | 4 +- .../ui/components/CurrencyPlaceholderIcon.kt | 2 +- .../core/ui/components/MiddleEllipsisText.kt | 4 +- .../com/tangem/core/ui/components/Notifier.kt | 2 +- .../core/ui/components/ResizableText.kt | 16 +- .../tangem/core/ui/components/SettingsRow.kt | 4 +- .../tangem/core/ui/components/TextFields.kt | 234 ++++++++---------- .../ui/components/appbar/AppBarWithSearch.kt | 10 +- .../core/ui/components/audits/AuditLabel.kt | 2 +- .../fields/SimpleDialogTextField.kt | 2 +- .../core/ui/components/rows/ActionRow.kt | 4 +- core/ui/src/main/res/drawable/ic_trash_24.xml | 9 + .../ui/MultiWalletSeedPhraseImport.kt | 3 +- .../wallet2/ui/AboutSeedPhraseScreen.kt | 4 +- .../wallet2/ui/ImportSeedPhraseScreen.kt | 4 +- .../wallet2/ui/PassphraseInfoBottomSheet.kt | 4 +- .../wallet2/ui/YourSeedPhraseScreen.kt | 2 +- .../components/OnboardingDescriptionBlock.kt | 2 +- .../feature/swap/ui/AutosizeTextField.kt | 2 +- .../swap/ui/ChooseProviderBottomSheet.kt | 4 +- .../feature/swap/ui/SwapSelectTokenScreen.kt | 4 +- .../tangem/feature/swap/ui/TransactionCard.kt | 11 +- .../wallet/state/model/WalletDropDownItems.kt | 4 +- .../SetWalletCardDropDownItemsTransformer.kt | 7 +- .../wallet/ui/components/common/WalletCard.kt | 3 +- 34 files changed, 183 insertions(+), 402 deletions(-) delete mode 100644 app/src/main/java/com/tangem/tap/common/compose/TangemTextFieldsDefault.kt delete mode 100644 app/src/main/java/com/tangem/tap/common/extensions/TextView.kt create mode 100644 core/ui/src/main/res/drawable/ic_trash_24.xml diff --git a/app/src/main/java/com/tangem/tap/common/compose/TangemTextFieldsDefault.kt b/app/src/main/java/com/tangem/tap/common/compose/TangemTextFieldsDefault.kt deleted file mode 100644 index 945ffc182f..0000000000 --- a/app/src/main/java/com/tangem/tap/common/compose/TangemTextFieldsDefault.kt +++ /dev/null @@ -1,152 +0,0 @@ -package com.tangem.tap.common.compose - -import androidx.compose.animation.animateColorAsState -import androidx.compose.animation.core.tween -import androidx.compose.foundation.interaction.InteractionSource -import androidx.compose.foundation.interaction.collectIsFocusedAsState -import androidx.compose.material.TextFieldColors -import androidx.compose.runtime.Composable -import androidx.compose.runtime.Immutable -import androidx.compose.runtime.Stable -import androidx.compose.runtime.State -import androidx.compose.runtime.getValue -import androidx.compose.runtime.rememberUpdatedState -import androidx.compose.ui.graphics.Color -import com.tangem.core.ui.res.TangemTheme - -// Copy from com.tangem.core.ui.components -// TODO: Delete this after fields has been moved to core-ui module -internal object TangemTextFieldsDefault { - val defaultTextFieldColors: TangemTextFieldColors - @Composable @Stable get() = TangemTextFieldColors( - textColor = TangemTheme.colors.text.primary1, - disabledTextColor = TangemTheme.colors.text.disabled, - backgroundColor = Color.Transparent, - cursorColor = TangemTheme.colors.icon.primary1, - errorCursorColor = TangemTheme.colors.icon.warning, - focusedIndicatorColor = TangemTheme.colors.icon.primary1, - unfocusedIndicatorColor = TangemTheme.colors.stroke.primary, - disabledIndicatorColor = TangemTheme.colors.stroke.primary, - errorIndicatorColor = TangemTheme.colors.icon.warning, - leadingIconColor = TangemTheme.colors.icon.informative, - disabledLeadingIconColor = Color.Transparent, - errorLeadingIconColor = TangemTheme.colors.icon.warning, - trailingIconColor = TangemTheme.colors.icon.informative, - disabledTrailingIconColor = Color.Transparent, - errorTrailingIconColor = TangemTheme.colors.icon.warning, - focusedLabelColor = TangemTheme.colors.text.primary1, - unfocusedLabelColor = TangemTheme.colors.text.secondary, - disabledLabelColor = TangemTheme.colors.text.disabled, - errorLabelColor = TangemTheme.colors.icon.warning, - placeholderColor = TangemTheme.colors.text.secondary, - disabledPlaceholderColor = TangemTheme.colors.text.disabled, - captionColor = TangemTheme.colors.text.tertiary, - disabledCaptionColor = TangemTheme.colors.text.disabled, - errorCaptionColor = TangemTheme.colors.icon.warning, - ) -} - -@Immutable -internal data class TangemTextFieldColors( - private val textColor: Color, - private val disabledTextColor: Color, - private val cursorColor: Color, - private val errorCursorColor: Color, - private val focusedIndicatorColor: Color, - private val unfocusedIndicatorColor: Color, - private val errorIndicatorColor: Color, - private val disabledIndicatorColor: Color, - private val leadingIconColor: Color, - private val disabledLeadingIconColor: Color, - private val errorLeadingIconColor: Color, - private val trailingIconColor: Color, - private val disabledTrailingIconColor: Color, - private val errorTrailingIconColor: Color, - private val backgroundColor: Color, - private val focusedLabelColor: Color, - private val unfocusedLabelColor: Color, - private val disabledLabelColor: Color, - private val errorLabelColor: Color, - private val placeholderColor: Color, - private val disabledPlaceholderColor: Color, - private val captionColor: Color, - private val disabledCaptionColor: Color, - private val errorCaptionColor: Color, -) : TextFieldColors { - - @Composable - override fun leadingIconColor(enabled: Boolean, isError: Boolean): State { - return rememberUpdatedState( - when { - !enabled -> disabledLeadingIconColor - isError -> errorLeadingIconColor - else -> leadingIconColor - }, - ) - } - - @Composable - override fun trailingIconColor(enabled: Boolean, isError: Boolean): State { - return rememberUpdatedState( - when { - !enabled -> disabledTrailingIconColor - isError -> errorTrailingIconColor - else -> trailingIconColor - }, - ) - } - - @Composable - override fun indicatorColor( - enabled: Boolean, - isError: Boolean, - interactionSource: InteractionSource, - ): State { - val focused by interactionSource.collectIsFocusedAsState() - - val targetValue = when { - !enabled -> disabledIndicatorColor - isError -> errorIndicatorColor - focused -> focusedIndicatorColor - else -> unfocusedIndicatorColor - } - return if (enabled) { - animateColorAsState(targetValue, tween(durationMillis = 120)) - } else { - rememberUpdatedState(targetValue) - } - } - - @Composable - override fun backgroundColor(enabled: Boolean): State { - return rememberUpdatedState(backgroundColor) - } - - @Composable - override fun placeholderColor(enabled: Boolean): State { - return rememberUpdatedState(if (enabled) placeholderColor else disabledPlaceholderColor) - } - - @Composable - override fun labelColor(enabled: Boolean, error: Boolean, interactionSource: InteractionSource): State { - val focused by interactionSource.collectIsFocusedAsState() - - val targetValue = when { - !enabled -> disabledLabelColor - error -> errorLabelColor - focused -> focusedLabelColor - else -> unfocusedLabelColor - } - return rememberUpdatedState(targetValue) - } - - @Composable - override fun textColor(enabled: Boolean): State { - return rememberUpdatedState(if (enabled) textColor else disabledTextColor) - } - - @Composable - override fun cursorColor(isError: Boolean): State { - return rememberUpdatedState(if (isError) errorCursorColor else cursorColor) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/extensions/TextView.kt b/app/src/main/java/com/tangem/tap/common/extensions/TextView.kt deleted file mode 100644 index aef0701282..0000000000 --- a/app/src/main/java/com/tangem/tap/common/extensions/TextView.kt +++ /dev/null @@ -1,58 +0,0 @@ -package com.tangem.tap.common.extensions - -import android.view.View -import android.widget.EditText -import android.widget.TextSwitcher -import android.widget.TextView -import com.google.android.material.textfield.TextInputLayout - -/** -[REDACTED_AUTHOR] - */ -fun TextView.update(text: String?) { - if (this.text?.toString() != text) this.text = text -} - -fun EditText.update(text: String?) { - if (this.text?.toString() == text) return - - val textLength = text?.length ?: 0 - - // prevent cursor jumping while editing a text - val cursorPosition = if (selectionEnd > textLength) textLength else selectionEnd - this.setText(text) - if (!isFocused || textLength == 0) return - - if (cursorPosition == 0) setSelection(textLength) else setSelection(cursorPosition) -} - -fun EditText.setOnImeActionListener(action: Int, handler: (EditText) -> Unit) { - this.setOnEditorActionListener { view, actionId, event -> - if (actionId == action) { - handler.invoke(this) - return@setOnEditorActionListener true - } - return@setOnEditorActionListener false - } -} - -fun TextSwitcher.update(text: CharSequence?) { - val textView = this.currentView as? TextView ?: return - - if (textView.text?.toString() != text?.toString()) this.setText(text) -} - -// By default the TextInputLayout didn't activates the error state if the message is empty or null -fun TextInputLayout.enableError(enable: Boolean, errorMessage: String? = null) { - if (enable) { - if (errorMessage == null || errorMessage.isEmpty()) { - error = "Any message" - if (childCount == 2) getChildAt(1).visibility = View.GONE - } else { - error = errorMessage - } - } else { - error = null - isErrorEnabled = false - } -} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsButtonItem.kt b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsButtonItem.kt index 17dccc7a63..537029db99 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsButtonItem.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsButtonItem.kt @@ -5,9 +5,8 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Surface -import androidx.compose.material.Text +import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -20,7 +19,6 @@ import com.tangem.core.ui.res.TangemTheme import com.tangem.tap.features.details.ui.appsettings.AppSettingsItemsFactory import com.tangem.tap.features.details.ui.appsettings.AppSettingsScreenState.Item -@OptIn(ExperimentalMaterialApi::class) @Composable internal fun SettingsButtonItem(item: Item.Button, modifier: Modifier = Modifier) { Surface( diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsCardItem.kt b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsCardItem.kt index 1e43c8f328..0303b21733 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsCardItem.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsCardItem.kt @@ -2,10 +2,9 @@ package com.tangem.tap.features.details.ui.appsettings.components import android.content.res.Configuration import androidx.compose.foundation.layout.* -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Icon -import androidx.compose.material.Surface -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -22,7 +21,6 @@ import com.tangem.core.ui.res.TangemTheme import com.tangem.tap.features.details.ui.appsettings.AppSettingsItemsFactory import com.tangem.tap.features.details.ui.appsettings.AppSettingsScreenState.Item -@OptIn(ExperimentalMaterialApi::class) @Composable internal fun SettingsCardItem(item: Item.Card, modifier: Modifier = Modifier) { Surface( diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsSwitchItem.kt b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsSwitchItem.kt index a8476e3bd2..9ad210cbef 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsSwitchItem.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/components/SettingsSwitchItem.kt @@ -4,7 +4,7 @@ import android.content.res.Configuration import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.rememberUpdatedState diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt index c4454f830f..44fdad55f0 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt @@ -8,7 +8,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/content/Content.kt b/app/src/main/java/com/tangem/tap/features/home/compose/content/Content.kt index 0a1f0fdaed..1635f234ad 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/content/Content.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/content/Content.kt @@ -6,7 +6,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt b/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt index 184bf8d37d..42fdcaf8fa 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt @@ -7,7 +7,7 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember diff --git a/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt b/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt index c23f77abe1..403c914016 100644 --- a/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt +++ b/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt @@ -3,9 +3,9 @@ package com.tangem.tap.features.saveWallet.ui.components import android.content.res.Configuration import androidx.compose.foundation.background import androidx.compose.foundation.layout.* -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/app/src/main/java/com/tangem/tap/features/welcome/ui/components/WelcomeScreenContent.kt b/app/src/main/java/com/tangem/tap/features/welcome/ui/components/WelcomeScreenContent.kt index c9bbbdf31c..433f9521fa 100644 --- a/app/src/main/java/com/tangem/tap/features/welcome/ui/components/WelcomeScreenContent.kt +++ b/app/src/main/java/com/tangem/tap/features/welcome/ui/components/WelcomeScreenContent.kt @@ -3,8 +3,8 @@ package com.tangem.tap.features.welcome.ui.components import android.content.res.Configuration import androidx.compose.foundation.background import androidx.compose.foundation.layout.* -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt b/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt index 71b0550226..0cfef1c3d7 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt @@ -5,7 +5,7 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt b/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt index e67fbf3de2..892ef05493 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt @@ -1,7 +1,7 @@ package com.tangem.core.ui.components -import androidx.compose.material.LocalTextStyle -import androidx.compose.material.Text +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/Notifier.kt b/core/ui/src/main/java/com/tangem/core/ui/components/Notifier.kt index 5e3e78a06a..ad18ba92f0 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/Notifier.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/Notifier.kt @@ -5,7 +5,7 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/ResizableText.kt b/core/ui/src/main/java/com/tangem/core/ui/components/ResizableText.kt index 649e5c7788..f5d84c141b 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/ResizableText.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/ResizableText.kt @@ -2,8 +2,8 @@ package com.tangem.core.ui.components import androidx.annotation.FloatRange import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.material.LocalTextStyle -import androidx.compose.material.Text +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent @@ -27,13 +27,13 @@ fun ResizableText( maxLines: Int = Int.MAX_VALUE, style: TextStyle = LocalTextStyle.current, ) { - val fontSizeValue = remember { mutableStateOf(fontSizeRange.max.value) } + val fontSizeValue = remember { mutableFloatStateOf(fontSizeRange.max.value) } val readyToDraw = remember { mutableStateOf(false) } val textState = remember { mutableStateOf(text) } if (textState.value != text) { readyToDraw.value = false - fontSizeValue.value = fontSizeRange.max.value + fontSizeValue.floatValue = fontSizeRange.max.value textState.value = text } @@ -41,18 +41,18 @@ fun ResizableText( text = text, modifier = modifier.drawWithContent { if (readyToDraw.value) drawContent() }, color = color, - fontSize = fontSizeValue.value.sp, + fontSize = fontSizeValue.floatValue.sp, overflow = overflow, softWrap = false, maxLines = maxLines, onTextLayout = { if (it.hasVisualOverflow) { - val nextFontSizeValue = fontSizeValue.value - fontSizeRange.step.value + val nextFontSizeValue = fontSizeValue.floatValue - fontSizeRange.step.value if (nextFontSizeValue <= fontSizeRange.min.value) { - fontSizeValue.value = fontSizeRange.min.value + fontSizeValue.floatValue = fontSizeRange.min.value readyToDraw.value = true } else { - fontSizeValue.value = nextFontSizeValue * COEFFICIENT + fontSizeValue.floatValue = nextFontSizeValue * COEFFICIENT } } else { readyToDraw.value = true diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/SettingsRow.kt b/core/ui/src/main/java/com/tangem/core/ui/components/SettingsRow.kt index cb5266dce9..b1b8fa87b0 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/SettingsRow.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/SettingsRow.kt @@ -5,8 +5,8 @@ import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateColorAsState import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/TextFields.kt b/core/ui/src/main/java/com/tangem/core/ui/components/TextFields.kt index dbe2a76c91..2c8c37e80b 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/TextFields.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/TextFields.kt @@ -14,7 +14,8 @@ import androidx.compose.foundation.interaction.collectIsFocusedAsState import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.* +import androidx.compose.foundation.text.selection.LocalTextSelectionColors +import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -119,7 +120,7 @@ private fun TangemTextField( keyboardOptions: KeyboardOptions = KeyboardOptions.Default, keyboardActions: KeyboardActions = KeyboardActions(), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, - colors: TangemTextFieldColors = TangemTextFieldsDefault.defaultTextFieldColors, + colors: TextFieldColors = TangemTextFieldsDefault.defaultTextFieldColors, size: TangemTextFieldSize = TangemTextFieldSize.Default, onClear: () -> Unit = { onValueChange(TextFieldValue()) }, ) { @@ -230,7 +231,7 @@ private fun TangemTextFieldWithIcon( keyboardOptions: KeyboardOptions = KeyboardOptions.Default, keyboardActions: KeyboardActions = KeyboardActions(), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, - colors: TangemTextFieldColors = TangemTextFieldsDefault.defaultTextFieldColors, + colors: TextFieldColors = TangemTextFieldsDefault.defaultTextFieldColors, size: TangemTextFieldSize = TangemTextFieldSize.Default, onIconClick: () -> Unit = {}, ) { @@ -326,154 +327,139 @@ private fun TangemTextFieldSize.toShape(): Shape = when (this) { } object TangemTextFieldsDefault { - val defaultTextFieldColors: TangemTextFieldColors - @Composable @Stable get() = TangemTextFieldColors( - textColor = TangemTheme.colors.text.primary1, + val defaultTextFieldColors: TextFieldColors + @Composable @Stable get() = TextFieldColors( + focusedTextColor = TangemTheme.colors.text.primary1, + errorTextColor = TangemTheme.colors.text.primary1, + unfocusedTextColor = TangemTheme.colors.text.primary1, disabledTextColor = TangemTheme.colors.text.disabled, - backgroundColor = Color.Transparent, + focusedContainerColor = Color.Transparent, + unfocusedContainerColor = Color.Transparent, + disabledContainerColor = Color.Transparent, + errorContainerColor = Color.Transparent, cursorColor = TangemTheme.colors.icon.primary1, errorCursorColor = TangemTheme.colors.icon.warning, focusedIndicatorColor = TangemTheme.colors.icon.primary1, unfocusedIndicatorColor = TangemTheme.colors.stroke.secondary, disabledIndicatorColor = TangemTheme.colors.stroke.secondary, errorIndicatorColor = TangemTheme.colors.icon.warning, - leadingIconColor = TangemTheme.colors.icon.informative, + focusedLeadingIconColor = TangemTheme.colors.icon.informative, + unfocusedLeadingIconColor = TangemTheme.colors.icon.informative, disabledLeadingIconColor = Color.Transparent, errorLeadingIconColor = TangemTheme.colors.icon.warning, - trailingIconColor = TangemTheme.colors.icon.informative, + focusedTrailingIconColor = TangemTheme.colors.icon.informative, + unfocusedTrailingIconColor = TangemTheme.colors.icon.informative, disabledTrailingIconColor = Color.Transparent, errorTrailingIconColor = TangemTheme.colors.icon.warning, focusedLabelColor = TangemTheme.colors.text.primary1, unfocusedLabelColor = TangemTheme.colors.text.secondary, disabledLabelColor = TangemTheme.colors.text.disabled, errorLabelColor = TangemTheme.colors.icon.warning, - placeholderColor = TangemTheme.colors.text.secondary, + focusedPlaceholderColor = TangemTheme.colors.text.secondary, + errorPlaceholderColor = TangemTheme.colors.text.secondary, + unfocusedPlaceholderColor = TangemTheme.colors.text.secondary, disabledPlaceholderColor = TangemTheme.colors.text.disabled, - captionColor = TangemTheme.colors.text.tertiary, - disabledCaptionColor = TangemTheme.colors.text.disabled, - errorCaptionColor = TangemTheme.colors.icon.warning, + focusedSupportingTextColor = TangemTheme.colors.text.tertiary, + unfocusedSupportingTextColor = TangemTheme.colors.text.tertiary, + disabledSupportingTextColor = TangemTheme.colors.text.disabled, + errorSupportingTextColor = TangemTheme.colors.icon.warning, + textSelectionColors = LocalTextSelectionColors.current, + focusedPrefixColor = Color.Transparent, + unfocusedPrefixColor = Color.Transparent, + disabledPrefixColor = Color.Transparent, + errorPrefixColor = Color.Transparent, + focusedSuffixColor = Color.Transparent, + unfocusedSuffixColor = Color.Transparent, + disabledSuffixColor = Color.Transparent, + errorSuffixColor = Color.Transparent, ) } -@Immutable -data class TangemTextFieldColors( - private val textColor: Color, - private val disabledTextColor: Color, - private val cursorColor: Color, - private val errorCursorColor: Color, - private val focusedIndicatorColor: Color, - private val unfocusedIndicatorColor: Color, - private val errorIndicatorColor: Color, - private val disabledIndicatorColor: Color, - private val leadingIconColor: Color, - private val disabledLeadingIconColor: Color, - private val errorLeadingIconColor: Color, - private val trailingIconColor: Color, - private val disabledTrailingIconColor: Color, - private val errorTrailingIconColor: Color, - private val backgroundColor: Color, - private val focusedLabelColor: Color, - private val unfocusedLabelColor: Color, - private val disabledLabelColor: Color, - private val errorLabelColor: Color, - private val placeholderColor: Color, - private val disabledPlaceholderColor: Color, - private val captionColor: Color, - private val disabledCaptionColor: Color, - private val errorCaptionColor: Color, -) : TextFieldColors { +@Composable +fun TextFieldColors.leadingIconColor(enabled: Boolean, isError: Boolean): State { + return rememberUpdatedState( + when { + !enabled -> disabledLeadingIconColor + isError -> errorLeadingIconColor + else -> focusedLeadingIconColor + }, + ) +} - @Composable - override fun leadingIconColor(enabled: Boolean, isError: Boolean): State { - return rememberUpdatedState( - when { - !enabled -> disabledLeadingIconColor - isError -> errorLeadingIconColor - else -> leadingIconColor - }, +@Composable +fun TextFieldColors.trailingIconColor(enabled: Boolean, isError: Boolean): State { + return rememberUpdatedState( + when { + !enabled -> disabledTrailingIconColor + isError -> errorTrailingIconColor + else -> focusedTrailingIconColor + }, + ) +} + +@Composable +fun TextFieldColors.indicatorColor( + enabled: Boolean, + isError: Boolean, + interactionSource: InteractionSource, +): State { + val focused by interactionSource.collectIsFocusedAsState() + + val targetValue = when { + !enabled -> disabledIndicatorColor + isError -> errorIndicatorColor + focused -> focusedIndicatorColor + else -> unfocusedIndicatorColor + } + return if (enabled) { + animateColorAsState( + targetValue = targetValue, + animationSpec = tween(durationMillis = 120), + label = "IndicatorColor", ) + } else { + rememberUpdatedState(targetValue) } +} - @Composable - override fun trailingIconColor(enabled: Boolean, isError: Boolean): State { - return rememberUpdatedState( - when { - !enabled -> disabledTrailingIconColor - isError -> errorTrailingIconColor - else -> trailingIconColor - }, - ) +@Composable +fun TextFieldColors.placeholderColor(enabled: Boolean): State { + return rememberUpdatedState(if (enabled) focusedPlaceholderColor else disabledPlaceholderColor) +} + +@Composable +fun TextFieldColors.labelColor(enabled: Boolean, error: Boolean, interactionSource: InteractionSource): State { + val focused by interactionSource.collectIsFocusedAsState() + + val targetValue = when { + !enabled -> disabledLabelColor + error -> errorLabelColor + focused -> focusedLabelColor + else -> unfocusedLabelColor } + return rememberUpdatedState(targetValue) +} - @Composable - override fun indicatorColor( - enabled: Boolean, - isError: Boolean, - interactionSource: InteractionSource, - ): State { - val focused by interactionSource.collectIsFocusedAsState() +@Composable +fun TextFieldColors.textColor(enabled: Boolean): State { + return rememberUpdatedState(if (enabled) focusedTextColor else disabledTextColor) +} - val targetValue = when { - !enabled -> disabledIndicatorColor - isError -> errorIndicatorColor - focused -> focusedIndicatorColor - else -> unfocusedIndicatorColor - } - return if (enabled) { - animateColorAsState( - targetValue = targetValue, - animationSpec = tween(durationMillis = 120), - label = "IndicatorColor", - ) - } else { - rememberUpdatedState(targetValue) - } - } +@Composable +fun TextFieldColors.cursorColor(isError: Boolean): State { + return rememberUpdatedState(if (isError) errorCursorColor else cursorColor) +} - @Composable - override fun backgroundColor(enabled: Boolean): State { - return rememberUpdatedState(backgroundColor) - } - - @Composable - override fun placeholderColor(enabled: Boolean): State { - return rememberUpdatedState(if (enabled) placeholderColor else disabledPlaceholderColor) - } - - @Composable - override fun labelColor(enabled: Boolean, error: Boolean, interactionSource: InteractionSource): State { - val focused by interactionSource.collectIsFocusedAsState() - - val targetValue = when { - !enabled -> disabledLabelColor - error -> errorLabelColor - focused -> focusedLabelColor - else -> unfocusedLabelColor - } - return rememberUpdatedState(targetValue) - } - - @Composable - override fun textColor(enabled: Boolean): State { - return rememberUpdatedState(if (enabled) textColor else disabledTextColor) - } - - @Composable - override fun cursorColor(isError: Boolean): State { - return rememberUpdatedState(if (isError) errorCursorColor else cursorColor) - } - - @Suppress("TopLevelComposableFunctions") - @Composable - fun captionColor(enabled: Boolean, isError: Boolean): State { - return rememberUpdatedState( - newValue = when { - !enabled -> disabledCaptionColor - isError -> errorCaptionColor - else -> captionColor - }, - ) - } +@Suppress("TopLevelComposableFunctions") +@Composable +fun TextFieldColors.captionColor(enabled: Boolean, isError: Boolean): State { + return rememberUpdatedState( + newValue = when { + !enabled -> disabledSupportingTextColor + isError -> errorSupportingTextColor + else -> focusedSupportingTextColor + }, + ) } // endregion Defaults diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt index ab6996b21d..b9c76c147c 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt @@ -7,7 +7,10 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.* +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.material3.TextField import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -105,7 +108,7 @@ private fun CollapsedSearchView( .padding(TangemTheme.dimens.spacing16) .size(TangemTheme.dimens.size24) .clickable { onBackClick() }, - tint = MaterialTheme.colors.onPrimary, + tint = TangemTheme.colors.icon.primary1, ) Column( verticalArrangement = Arrangement.Center, @@ -216,7 +219,8 @@ private fun ExpandedSearchView( onDone = { focusManager.clearFocus() }, ), colors = TangemTextFieldsDefault.defaultTextFieldColors.copy( - placeholderColor = TangemTheme.colors.text.disabled, + focusedPlaceholderColor = TangemTheme.colors.text.disabled, + unfocusedPlaceholderColor = TangemTheme.colors.text.disabled, cursorColor = TangemTheme.colors.text.tertiary, focusedIndicatorColor = Color.Transparent, unfocusedIndicatorColor = Color.Transparent, diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/audits/AuditLabel.kt b/core/ui/src/main/java/com/tangem/core/ui/components/audits/AuditLabel.kt index 8cc27144be..eed177c971 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/audits/AuditLabel.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/audits/AuditLabel.kt @@ -3,7 +3,7 @@ package com.tangem.core.ui.components.audits import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.ui.Modifier diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/fields/SimpleDialogTextField.kt b/core/ui/src/main/java/com/tangem/core/ui/components/fields/SimpleDialogTextField.kt index 098f576a94..197385d9d9 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/fields/SimpleDialogTextField.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/fields/SimpleDialogTextField.kt @@ -8,7 +8,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.BasicTextField -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/rows/ActionRow.kt b/core/ui/src/main/java/com/tangem/core/ui/components/rows/ActionRow.kt index 36c44d81b3..2f66450aba 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/rows/ActionRow.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/rows/ActionRow.kt @@ -3,8 +3,8 @@ package com.tangem.core.ui.components.rows import androidx.compose.animation.AnimatedContent import androidx.compose.foundation.background import androidx.compose.foundation.layout.* -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/core/ui/src/main/res/drawable/ic_trash_24.xml b/core/ui/src/main/res/drawable/ic_trash_24.xml new file mode 100644 index 0000000000..eb3f278341 --- /dev/null +++ b/core/ui/src/main/res/drawable/ic_trash_24.xml @@ -0,0 +1,9 @@ + + + diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/ui/MultiWalletSeedPhraseImport.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/ui/MultiWalletSeedPhraseImport.kt index f64fd62c0d..0fc50e414e 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/ui/MultiWalletSeedPhraseImport.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/ui/MultiWalletSeedPhraseImport.kt @@ -7,7 +7,7 @@ import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material.OutlinedTextField +import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -137,7 +137,6 @@ private fun PhraseBlock(state: MultiWalletSeedPhraseUM.Import, modifier: Modifie Column( modifier = modifier.fillMaxWidth(), ) { - // TODO migrate to material3 OutlinedTextField( modifier = Modifier .fillMaxWidth() diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/AboutSeedPhraseScreen.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/AboutSeedPhraseScreen.kt index bdeb4fe70e..e0cab80df9 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/AboutSeedPhraseScreen.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/AboutSeedPhraseScreen.kt @@ -6,8 +6,8 @@ import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/ImportSeedPhraseScreen.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/ImportSeedPhraseScreen.kt index bc6e59c4dd..7c03fef7bc 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/ImportSeedPhraseScreen.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/ImportSeedPhraseScreen.kt @@ -7,8 +7,8 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.OutlinedTextField -import androidx.compose.material.Text +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/PassphraseInfoBottomSheet.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/PassphraseInfoBottomSheet.kt index cf5f16d4d0..cddeb6277c 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/PassphraseInfoBottomSheet.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/PassphraseInfoBottomSheet.kt @@ -5,8 +5,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/YourSeedPhraseScreen.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/YourSeedPhraseScreen.kt index e5d110febd..2f7f864d6e 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/YourSeedPhraseScreen.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/YourSeedPhraseScreen.kt @@ -5,7 +5,7 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/components/OnboardingDescriptionBlock.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/components/OnboardingDescriptionBlock.kt index e0ee2d086e..52806b14c3 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/components/OnboardingDescriptionBlock.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/ui/components/OnboardingDescriptionBlock.kt @@ -5,7 +5,7 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/AutosizeTextField.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/AutosizeTextField.kt index 0033a1971b..2a6b4ed8ea 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/AutosizeTextField.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/AutosizeTextField.kt @@ -7,7 +7,7 @@ import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.selection.LocalTextSelectionColors import androidx.compose.foundation.text.selection.TextSelectionColors -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/ChooseProviderBottomSheet.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/ChooseProviderBottomSheet.kt index 44fae2d1f8..e8078c5bee 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/ChooseProviderBottomSheet.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/ChooseProviderBottomSheet.kt @@ -5,8 +5,8 @@ import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt index c06a97f04e..6da65023c5 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt @@ -8,8 +8,8 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.itemsIndexed -import androidx.compose.material.Scaffold -import androidx.compose.material.Text +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt index 81a94f3702..81430c0cfa 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt @@ -10,10 +10,9 @@ import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text import androidx.compose.material3.ripple import androidx.compose.runtime.* import androidx.compose.ui.Alignment @@ -195,7 +194,7 @@ private fun Header(type: TransactionCardType, balance: String, modifier: Modifie text = type.header.resolveReference(), color = titleColor, maxLines = 1, - style = MaterialTheme.typography.subtitle2, + style = TangemTheme.typography.subtitle2, modifier = Modifier .align(Alignment.CenterVertically), ) @@ -205,7 +204,7 @@ private fun Header(type: TransactionCardType, balance: String, modifier: Modifie Text( text = it, color = TangemTheme.colors.text.tertiary, - style = MaterialTheme.typography.body2, + style = TangemTheme.typography.body2, modifier = Modifier .align(Alignment.CenterVertically), ) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletDropDownItems.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletDropDownItems.kt index 6e9166db40..a4270e37ee 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletDropDownItems.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletDropDownItems.kt @@ -1,10 +1,10 @@ package com.tangem.feature.wallet.presentation.wallet.state.model -import androidx.compose.ui.graphics.vector.ImageVector +import androidx.annotation.DrawableRes import com.tangem.core.ui.extensions.TextReference internal data class WalletDropDownItems( val text: TextReference, - val icon: ImageVector, + @DrawableRes val icon: Int, val onClick: () -> Unit, ) \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/SetWalletCardDropDownItemsTransformer.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/SetWalletCardDropDownItemsTransformer.kt index f9ea74d599..9357042921 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/SetWalletCardDropDownItemsTransformer.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/SetWalletCardDropDownItemsTransformer.kt @@ -1,8 +1,5 @@ package com.tangem.feature.wallet.presentation.wallet.state.transformers -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Delete -import androidx.compose.material.icons.outlined.Edit import com.tangem.core.ui.extensions.resourceReference import com.tangem.domain.wallets.models.UserWalletId import com.tangem.feature.wallet.impl.R @@ -67,12 +64,12 @@ internal class SetWalletCardDropDownItemsTransformer( persistentListOf( WalletDropDownItems( text = resourceReference(id = R.string.common_rename), - icon = Icons.Outlined.Edit, + icon = R.drawable.ic_edit_24, onClick = { clickIntents.onRenameBeforeConfirmationClick(userWalletId) }, ), WalletDropDownItems( text = resourceReference(id = R.string.common_delete), - icon = Icons.Outlined.Delete, + icon = R.drawable.ic_trash_24, onClick = { clickIntents.onDeleteBeforeConfirmationClick(userWalletId) }, ), ) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt index 3d366acb33..a11dba3be1 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -227,7 +228,7 @@ private fun ManageWalletContextMenu( dropDownItems.fastForEach { item -> MenuItem( text = item.text, - imageVector = item.icon, + imageVector = ImageVector.vectorResource(id = item.icon), onClick = { onDismissRequest() item.onClick()