diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 41bba10c2e..e371e05751 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -94,6 +94,7 @@ dependencies { implementation(deps.lifecycle.common.java8) implementation(deps.lifecycle.viewModel.ktx) implementation(deps.lifecycle.compose) + implementation(deps.androidx.palette) /** Compose libraries */ implementation(deps.compose.constraintLayout) diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt index a203e348dd..3546f93cbc 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/AddCustomTokenFragment.kt @@ -1,21 +1,20 @@ package com.tangem.tap.features.customtoken.impl.presentation -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalLifecycleOwner -import androidx.fragment.app.Fragment import androidx.hilt.navigation.compose.hiltViewModel import androidx.transition.TransitionInflater +import com.tangem.core.ui.components.SystemBarsEffect import com.tangem.core.ui.res.TangemTheme +import com.tangem.core.ui.screen.ComposeFragment +import com.tangem.core.ui.theme.AppThemeModeHolder import com.tangem.tap.features.customtoken.impl.presentation.ui.AddCustomTokenScreen import com.tangem.tap.features.customtoken.impl.presentation.viewmodels.AddCustomTokenViewModel import com.tangem.wallet.R import dagger.hilt.android.AndroidEntryPoint +import javax.inject.Inject /** * Add custom token screen @@ -23,29 +22,29 @@ import dagger.hilt.android.AndroidEntryPoint [REDACTED_AUTHOR] */ @AndroidEntryPoint -internal class AddCustomTokenFragment : Fragment() { +internal class AddCustomTokenFragment : ComposeFragment() { - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - with(TransitionInflater.from(requireContext())) { - enterTransition = inflateTransition(R.transition.fade) - exitTransition = inflateTransition(R.transition.fade) + @Inject + override lateinit var appThemeModeHolder: AppThemeModeHolder + + override fun TransitionInflater.inflateTransitions(): Boolean { + enterTransition = inflateTransition(R.transition.fade) + exitTransition = inflateTransition(R.transition.fade) + return true + } + + @Composable + override fun ScreenContent(modifier: Modifier) { + val viewModel = hiltViewModel().apply { + LocalLifecycleOwner.current.lifecycle.addObserver(this) } - - return ComposeView(inflater.context).apply { - setContent { - isTransitionGroup = true - - val viewModel = hiltViewModel().apply { - LocalLifecycleOwner.current.lifecycle.addObserver(this) - } - - TangemTheme { - AddCustomTokenScreen( - modifier = Modifier.systemBarsPadding(), - stateHolder = viewModel.uiState, - ) - } - } + val statusBarColor = TangemTheme.colors.background.secondary + SystemBarsEffect { + setSystemBarsColor(color = statusBarColor) } + AddCustomTokenScreen( + modifier = Modifier.systemBarsPadding(), + stateHolder = viewModel.uiState, + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt index eb099e7ee8..3824462da3 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenScreen.kt @@ -25,10 +25,20 @@ internal fun AddCustomTokenScreen(stateHolder: AddCustomTokenStateHolder, modifi @Preview(showSystemUi = true) @Composable -private fun Preview_AddCustomTokenScreen( +private fun Preview_AddCustomTokenScreen_Light( @PreviewParameter(AddCustomTokenScreenProvider::class) stateHolder: AddCustomTokenStateHolder, ) { - TangemTheme { + TangemTheme(isDark = false) { + AddCustomTokenScreen(stateHolder) + } +} + +@Preview(showSystemUi = true) +@Composable +private fun Preview_AddCustomTokenScreen_Dark( + @PreviewParameter(AddCustomTokenScreenProvider::class) stateHolder: AddCustomTokenStateHolder, +) { + TangemTheme(isDark = true) { AddCustomTokenScreen(stateHolder) } } diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenToolbar.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenToolbar.kt index 8587b990bf..92d07c66e8 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenToolbar.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenToolbar.kt @@ -25,7 +25,10 @@ import com.tangem.tap.features.details.ui.cardsettings.resolveReference */ @Composable internal fun AddCustomTokenToolbar(title: TextReference, onBackButtonClick: () -> Unit) { - TopAppBar(backgroundColor = TangemTheme.colors.background.secondary) { + TopAppBar( + backgroundColor = TangemTheme.colors.background.secondary, + elevation = TangemTheme.dimens.elevation0, + ) { IconButton(onClick = onBackButtonClick) { Icon( painter = painterResource(id = R.drawable.ic_back_24), diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenWarnings.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenWarnings.kt index 7627e3c6af..a00fc2d4fb 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenWarnings.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenWarnings.kt @@ -72,8 +72,16 @@ private fun AddCustomTokenWarning(warning: AddCustomTokenWarning) { @Preview @Composable -private fun Preview_AddCustomTokenWarnings() { +private fun Preview_AddCustomTokenWarnings_Light() { TangemTheme { AddCustomTokenWarnings(warnings = AddCustomTokenPreviewData.createWarnings()) } +} + +@Preview +@Composable +private fun Preview_AddCustomTokenWarnings_Dark() { + TangemTheme(isDark = true) { + AddCustomTokenWarnings(warnings = AddCustomTokenPreviewData.createWarnings()) + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt index 417a308de0..64f595861b 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/TokensListFragment.kt @@ -1,22 +1,20 @@ package com.tangem.tap.features.tokens.impl.presentation -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalLifecycleOwner -import androidx.fragment.app.Fragment import androidx.hilt.navigation.compose.hiltViewModel import androidx.transition.TransitionInflater import com.tangem.core.ui.components.SystemBarsEffect import com.tangem.core.ui.res.TangemTheme +import com.tangem.core.ui.screen.ComposeFragment +import com.tangem.core.ui.theme.AppThemeModeHolder import com.tangem.tap.features.tokens.impl.presentation.ui.TokensListScreen import com.tangem.tap.features.tokens.impl.presentation.viewmodels.TokensListViewModel import com.tangem.wallet.R import dagger.hilt.android.AndroidEntryPoint +import javax.inject.Inject /** * Fragment with list of tokens @@ -24,33 +22,29 @@ import dagger.hilt.android.AndroidEntryPoint [REDACTED_AUTHOR] */ @AndroidEntryPoint -internal class TokensListFragment : Fragment() { +internal class TokensListFragment : ComposeFragment() { - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - with(TransitionInflater.from(requireContext())) { - enterTransition = inflateTransition(R.transition.fade) - exitTransition = inflateTransition(R.transition.fade) + @Inject + override lateinit var appThemeModeHolder: AppThemeModeHolder + + override fun TransitionInflater.inflateTransitions(): Boolean { + enterTransition = inflateTransition(R.transition.fade) + exitTransition = inflateTransition(R.transition.fade) + return true + } + + @Composable + override fun ScreenContent(modifier: Modifier) { + val viewModel = hiltViewModel().apply { + LocalLifecycleOwner.current.lifecycle.addObserver(this) } - - return ComposeView(inflater.context).apply { - setContent { - isTransitionGroup = true - - val viewModel = hiltViewModel().apply { - LocalLifecycleOwner.current.lifecycle.addObserver(this) - } - - TangemTheme { - val statusBarColor = TangemTheme.colors.background.secondary - SystemBarsEffect { - setSystemBarsColor(color = statusBarColor) - } - TokensListScreen( - modifier = Modifier.systemBarsPadding(), - stateHolder = viewModel.uiState, - ) - } - } + val statusBarColor = TangemTheme.colors.background.secondary + SystemBarsEffect { + setSystemBarsColor(color = statusBarColor) } + TokensListScreen( + modifier = Modifier.systemBarsPadding(), + stateHolder = viewModel.uiState, + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/BriefNetworksList.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/BriefNetworksList.kt index 104ebf9d8c..fde1f24f57 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/BriefNetworksList.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/BriefNetworksList.kt @@ -17,7 +17,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource -import com.tangem.core.ui.res.TangemColorPalette import com.tangem.core.ui.res.TangemTheme import com.tangem.tap.features.tokens.impl.presentation.states.NetworkItemState import kotlinx.collections.immutable.ImmutableCollection @@ -83,14 +82,14 @@ internal fun BriefNetworkItem(model: NetworkItemState, modifier: Modifier = Modi .align(Alignment.TopEnd) .size(TangemTheme.dimens.size7) .clip(CircleShape) - .background(TangemColorPalette.White), + .background(TangemTheme.colors.background.secondary), contentAlignment = Alignment.Center, ) { Box( modifier = Modifier .size(TangemTheme.dimens.size5) .clip(CircleShape) - .background(TangemColorPalette.Meadow), + .background(TangemTheme.colors.icon.accent), ) } } diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/DetailedNetworksList.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/DetailedNetworksList.kt index bfe5cb5d3b..806c161a01 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/DetailedNetworksList.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/DetailedNetworksList.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.withStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.sp -import com.tangem.core.ui.res.TangemColorPalette import com.tangem.core.ui.res.TangemTheme import com.tangem.tap.features.tokens.impl.presentation.states.NetworkItemState import com.tangem.tap.features.tokens.impl.presentation.states.TokenItemState @@ -95,7 +94,10 @@ private fun DetailedNetworkItem(token: TokenItemState, network: NetworkItemState }, modifier = Modifier.padding(start = TangemTheme.dimens.spacing16, end = TangemTheme.dimens.spacing8), colors = SwitchDefaults.colors( - checkedThumbColor = TangemColorPalette.Meadow, + checkedThumbColor = TangemTheme.colors.control.key, + checkedTrackColor = TangemTheme.colors.icon.accent, + uncheckedThumbColor = TangemTheme.colors.control.key, + uncheckedTrackColor = TangemTheme.colors.icon.informative, ), ) } @@ -112,7 +114,11 @@ private fun RowScope.NetworkTitle(model: NetworkItemState) { withStyle( style = SpanStyle( fontWeight = FontWeight.Normal, - color = if (model.isMainNetwork) TangemColorPalette.Meadow else TangemColorPalette.Dark2, + color = if (model.isMainNetwork) { + TangemTheme.colors.icon.accent + } else { + TangemTheme.colors.icon.secondary + }, ), ) { append(text = model.protocolName) @@ -121,16 +127,16 @@ private fun RowScope.NetworkTitle(model: NetworkItemState) { fontWeight = FontWeight.SemiBold, fontSize = 13.sp, color = if (model is NetworkItemState.ManageContent && model.isAdded.value) { - TangemColorPalette.Black + TangemTheme.colors.text.primary1 } else { - TangemColorPalette.Dark2 + TangemTheme.colors.text.secondary }, ) } @Preview @Composable -private fun Preview_DetailedNetworksList_ManageAccess() { +private fun Preview_DetailedNetworksList_ManageAccess_Light() { TangemTheme { DetailedNetworksList( isExpanded = true, @@ -142,7 +148,31 @@ private fun Preview_DetailedNetworksList_ManageAccess() { @Preview @Composable -private fun Preview_DetailedNetworksList_ReadAccess() { +private fun Preview_DetailedNetworksList_ManageAccess_Dark() { + TangemTheme { + DetailedNetworksList( + isExpanded = true, + token = TokenListPreviewData.createManageToken(), + networks = TokenListPreviewData.createManageNetworksList(), + ) + } +} + +@Preview +@Composable +private fun Preview_DetailedNetworksList_ReadAccess_Light() { + TangemTheme { + DetailedNetworksList( + isExpanded = true, + token = TokenListPreviewData.createReadToken(), + networks = TokenListPreviewData.createReadNetworksList(), + ) + } +} + +@Preview +@Composable +private fun Preview_DetailedNetworksList_ReadAccess_Dark() { TangemTheme { DetailedNetworksList( isExpanded = true, diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/NetworkItemArrow.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/NetworkItemArrow.kt index 6e9be1c229..671961ab61 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/NetworkItemArrow.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/NetworkItemArrow.kt @@ -1,12 +1,7 @@ package com.tangem.tap.features.tokens.impl.presentation.ui import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.* import androidx.compose.material.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -45,8 +40,24 @@ internal fun NetworkItemArrow(itemHeight: Dp, isLastItem: Boolean) { @Preview @Composable -private fun Preview_NetworkItemArrow_Column() { - TangemTheme { +private fun Preview_NetworkItemArrow_Column_Light() { + TangemTheme(isDark = false) { + Column( + modifier = Modifier + .fillMaxWidth() + .background(color = TangemTheme.colors.background.primary) + .padding(start = TangemTheme.dimens.size36), + ) { + NetworkItemArrow(itemHeight = TangemTheme.dimens.size62, isLastItem = false) + NetworkItemArrow(itemHeight = TangemTheme.dimens.size62, isLastItem = true) + } + } +} + +@Preview +@Composable +private fun Preview_NetworkItemArrow_Column_Dark() { + TangemTheme(isDark = true) { Column( modifier = Modifier .fillMaxWidth() diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokenItem.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokenItem.kt index 46fc3f7554..ee16cd48f8 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokenItem.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokenItem.kt @@ -1,27 +1,18 @@ package com.tangem.tap.features.tokens.impl.presentation.ui -import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.ExperimentalAnimationApi -import androidx.compose.animation.expandVertically -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.animation.scaleIn -import androidx.compose.animation.scaleOut -import androidx.compose.animation.shrinkVertically -import androidx.compose.animation.with -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size +import android.graphics.drawable.Drawable +import androidx.compose.animation.* +import androidx.compose.foundation.background +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.* import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.* import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -29,6 +20,9 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension +import androidx.core.graphics.ColorUtils +import androidx.core.graphics.drawable.toBitmap +import androidx.palette.graphics.Palette import coil.compose.SubcomposeAsyncImage import coil.request.ImageRequest import com.tangem.core.ui.components.CurrencyPlaceholderIcon @@ -40,13 +34,16 @@ import com.tangem.wallet.R /** [REDACTED_AUTHOR] */ +@Suppress("LongMethod") @Composable internal fun TokenItem(model: TokenItemState) { var isExpanded by rememberSaveable { mutableStateOf(value = false) } + var iconBackgroundColor by remember { mutableStateOf(Color.Transparent) } ConstraintLayout( modifier = Modifier .fillMaxWidth() + .background(color = TangemTheme.colors.background.secondary) .padding(top = TangemTheme.dimens.spacing16), ) { val (icon, title, availableNetworksText) = createRefs() @@ -55,14 +52,24 @@ internal fun TokenItem(model: TokenItemState) { val spacing16 = TangemTheme.dimens.spacing16 val spacing6 = TangemTheme.dimens.spacing6 - Icon( - name = model.fullName, - iconUrl = model.iconUrl, - modifier = Modifier.constrainAs(icon) { - top.linkTo(parent.top) - start.linkTo(anchor = parent.start, margin = spacing16) - }, - ) + Box( + modifier = Modifier + .background( + color = iconBackgroundColor, + shape = TangemTheme.shapes.roundedCorners8, + ) + .size(TangemTheme.dimens.size46) + .constrainAs(icon) { + top.linkTo(parent.top) + start.linkTo(anchor = parent.start, margin = spacing16) + }, + ) { + Icon( + name = model.fullName, + iconUrl = model.iconUrl, + onContrastCalculate = { iconBackgroundColor = it }, + ) + } Title( title = model.fullName, @@ -119,8 +126,10 @@ internal fun TokenItem(model: TokenItemState) { } @Composable -private fun Icon(name: String, iconUrl: String, modifier: Modifier = Modifier) { +private fun Icon(name: String, iconUrl: String, onContrastCalculate: (Color) -> Unit, modifier: Modifier = Modifier) { val iconModifier = modifier.size(size = TangemTheme.dimens.size46) + val screenBackgroundColor = TangemTheme.colors.background.secondary.toArgb() + val isDarkTheme = isSystemInDarkTheme() SubcomposeAsyncImage( modifier = iconModifier, @@ -128,6 +137,18 @@ private fun Icon(name: String, iconUrl: String, modifier: Modifier = Modifier) { .size(size = TangemTheme.dimens.size46.toPx().toInt()) .data(data = iconUrl) .crossfade(enable = true) + .allowHardware(false) + .listener( + onSuccess = { _, result -> + if (isDarkTheme) { + setContrastBackgroundIfNeeded( + drawable = result.drawable, + screenBackgroundColor = screenBackgroundColor, + onContrastCalculate = onContrastCalculate, + ) + } + }, + ) .build(), contentDescription = null, loading = { CurrencyPlaceholderIcon(id = name, modifier = iconModifier) }, @@ -135,6 +156,26 @@ private fun Icon(name: String, iconUrl: String, modifier: Modifier = Modifier) { ) } +private fun setContrastBackgroundIfNeeded( + drawable: Drawable, + screenBackgroundColor: Int, + onContrastCalculate: (Color) -> Unit, +) { + Palette.Builder(drawable.toBitmap()).generate { palette -> + val color = palette?.getDominantColor(screenBackgroundColor) ?: screenBackgroundColor + val contrast = ColorUtils.calculateContrast(color, screenBackgroundColor) + val colorToSet = if (contrast > LOW_CONTRAST_RATIO) { + Color.Transparent + } else { + Color.White + } + onContrastCalculate(colorToSet) + } +} + +// https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef +private const val LOW_CONTRAST_RATIO = 1.5f + @Composable private fun Title(title: String, modifier: Modifier = Modifier) { Text( @@ -183,18 +224,34 @@ private fun ChangeNetworksViewButton(isExpanded: Boolean, onClick: () -> Unit, m } } -@Preview +@Preview(showBackground = true) @Composable -private fun Preview_TokenItem_ManageAccess() { - TangemTheme { +private fun Preview_TokenItem_ManageAccess_Light() { + TangemTheme(isDark = false) { TokenItem(model = TokenListPreviewData.createManageToken()) } } -@Preview +@Preview() @Composable -private fun Preview_TokenItem_ReadAccess() { - TangemTheme { +private fun Preview_TokenItem_ManageAccess_Dark() { + TangemTheme(isDark = true) { + TokenItem(model = TokenListPreviewData.createManageToken()) + } +} + +@Preview(showBackground = true) +@Composable +private fun Preview_TokenItem_ReadAccess_Light() { + TangemTheme(isDark = false) { + TokenItem(model = TokenListPreviewData.createReadToken()) + } +} + +@Preview() +@Composable +private fun Preview_TokenItem_ReadAccess_Dark() { + TangemTheme(isDark = true) { TokenItem(model = TokenListPreviewData.createReadToken()) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt index ea6ab16083..90dc6274b8 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt @@ -24,6 +24,8 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.TextUnitType @@ -70,6 +72,7 @@ internal fun TokensListScreen(stateHolder: TokensListStateHolder, modifier: Modi } }, floatingActionButtonPosition = FabPosition.Center, + backgroundColor = TangemTheme.colors.background.secondary, ) { scaffoldPadding -> val tokens = stateHolder.tokens.collectAsLazyPagingItems() @@ -97,10 +100,10 @@ private fun LoadingContent() { Box( modifier = Modifier .fillMaxSize() - .background(color = TangemColorPalette.White), + .background(color = TangemTheme.colors.background.secondary), contentAlignment = Alignment.Center, ) { - CircularProgressIndicator(color = TangemColorPalette.Meadow) + CircularProgressIndicator(color = TangemTheme.colors.icon.accent) } } @@ -178,73 +181,71 @@ private fun SaveChangesButton(onClick: () -> Unit, modifier: Modifier = Modifier ) } -@Preview +@Preview(showSystemUi = true) @Composable -private fun Preview_TokensListScreen_Loading() { - TangemTheme { - TokensListScreen( - stateHolder = TokensListStateHolder.ReadContent( - toolbarState = TokensListToolbarState.Title.Manage( - titleResId = R.string.main_manage_tokens, - onBackButtonClick = {}, - onSearchButtonClick = {}, - onAddCustomTokenClick = {}, - ), - isLoading = true, - isDifferentAddressesBlockVisible = false, - tokens = emptyFlow(), - onTokensLoadStateChanged = {}, - ), - ) +private fun Preview_TokensListScreen_Light( + @PreviewParameter(TokensListScreenProvider::class) stateHolder: TokensListStateHolder, +) { + TangemTheme(isDark = false) { + TokensListScreen(stateHolder) } } -@Preview +@Preview(showSystemUi = true) @Composable -private fun Preview_TokensListScreen_Manage() { - TangemTheme { - TokensListScreen( - stateHolder = TokensListStateHolder.ManageContent( - toolbarState = TokensListToolbarState.Title.Manage( - titleResId = R.string.main_manage_tokens, - onBackButtonClick = {}, - onSearchButtonClick = {}, - onAddCustomTokenClick = {}, - ), - isLoading = false, - isDifferentAddressesBlockVisible = true, - tokens = flowOf( - PagingData.from( - listOf(TokenListPreviewData.createManageToken()), - ), - ), - onSaveButtonClick = {}, - onTokensLoadStateChanged = {}, - ), - ) +private fun Preview_TokensListScreen_Dark( + @PreviewParameter(TokensListScreenProvider::class) stateHolder: TokensListStateHolder, +) { + TangemTheme(isDark = true) { + TokensListScreen(stateHolder) } } -@Preview -@Composable -private fun Preview_TokensListScreen_Read() { - TangemTheme { - TokensListScreen( - stateHolder = TokensListStateHolder.ReadContent( - toolbarState = TokensListToolbarState.Title.Read( - titleResId = R.string.common_search_tokens, - onBackButtonClick = {}, - onSearchButtonClick = {}, - ), - isLoading = false, - isDifferentAddressesBlockVisible = false, - tokens = flowOf( - PagingData.from( - listOf(TokenListPreviewData.createManageToken()), - ), - ), - onTokensLoadStateChanged = {}, +private class TokensListScreenProvider : CollectionPreviewParameterProvider( + collection = listOf( + TokensListStateHolder.ReadContent( + toolbarState = TokensListToolbarState.Title.Manage( + titleResId = R.string.main_manage_tokens, + onBackButtonClick = {}, + onSearchButtonClick = {}, + onAddCustomTokenClick = {}, ), - ) - } -} \ No newline at end of file + isLoading = true, + isDifferentAddressesBlockVisible = false, + tokens = emptyFlow(), + onTokensLoadStateChanged = {}, + ), + TokensListStateHolder.ManageContent( + toolbarState = TokensListToolbarState.Title.Manage( + titleResId = R.string.main_manage_tokens, + onBackButtonClick = {}, + onSearchButtonClick = {}, + onAddCustomTokenClick = {}, + ), + isLoading = false, + isDifferentAddressesBlockVisible = true, + tokens = flowOf( + PagingData.from( + listOf(TokenListPreviewData.createManageToken()), + ), + ), + onSaveButtonClick = {}, + onTokensLoadStateChanged = {}, + ), + TokensListStateHolder.ReadContent( + toolbarState = TokensListToolbarState.Title.Read( + titleResId = R.string.common_search_tokens, + onBackButtonClick = {}, + onSearchButtonClick = {}, + ), + isLoading = false, + isDifferentAddressesBlockVisible = false, + tokens = flowOf( + PagingData.from( + listOf(TokenListPreviewData.createManageToken()), + ), + ), + onTokensLoadStateChanged = {}, + ), + ), +) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt index f5db5aa1a1..e8f857bade 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt @@ -26,7 +26,6 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.sp -import com.tangem.core.ui.res.TangemColorPalette import com.tangem.core.ui.res.TangemTheme import com.tangem.tap.features.tokens.impl.presentation.states.TokensListToolbarState import com.tangem.tap.features.tokens.impl.presentation.states.TokensListToolbarState.InputField @@ -39,12 +38,15 @@ import kotlinx.coroutines.delay */ @Composable internal fun TokensListToolbar(state: TokensListToolbarState) { - TopAppBar(backgroundColor = TangemTheme.colors.background.secondary) { + TopAppBar( + backgroundColor = TangemTheme.colors.background.secondary, + elevation = TangemTheme.dimens.elevation0, + ) { IconButton(onClick = state.onBackButtonClick) { Icon( painter = painterResource(id = R.drawable.ic_back_24), contentDescription = "Go back", - tint = TangemTheme.colors.icon.secondary, + tint = TangemTheme.colors.icon.primary1, ) } @@ -69,7 +71,7 @@ private fun TitleContent(state: Title, modifier: Modifier = Modifier) { Icon( painter = painterResource(id = R.drawable.ic_search_24), contentDescription = "Search", - tint = TangemTheme.colors.icon.secondary, + tint = TangemTheme.colors.icon.primary1, ) } @@ -78,7 +80,7 @@ private fun TitleContent(state: Title, modifier: Modifier = Modifier) { Icon( painter = painterResource(id = R.drawable.ic_plus_24), contentDescription = "Add custom token", - tint = TangemTheme.colors.icon.secondary, + tint = TangemTheme.colors.icon.primary1, ) } } @@ -94,7 +96,10 @@ private fun InputContent(state: InputField, modifier: Modifier = Modifier) { value = state.value, onValueChange = state.onValueChange, modifier = modifier.focusRequester(focusRequester), - textStyle = TangemTheme.typography.subtitle1.copy(fontWeight = FontWeight.Normal), + textStyle = TangemTheme.typography.subtitle1.copy( + fontWeight = FontWeight.Normal, + color = TangemTheme.colors.text.primary1, + ), keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text, imeAction = ImeAction.Search), keyboardActions = KeyboardActions(onSearch = { keyboardController?.hide() }), singleLine = true, @@ -146,7 +151,7 @@ private fun Hint(value: String) { Icon( painter = painterResource(id = R.drawable.ic_search_24), contentDescription = null, - tint = TangemColorPalette.Dark1, + tint = TangemTheme.colors.icon.secondary, ) Text( text = stringResource(id = R.string.common_search), diff --git a/app/src/main/res/drawable-night/ic_arbitrum_no_color.xml b/app/src/main/res/drawable-night/ic_arbitrum_no_color.xml new file mode 100644 index 0000000000..d27c75195b --- /dev/null +++ b/app/src/main/res/drawable-night/ic_arbitrum_no_color.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_avalanche_no_color.xml b/app/src/main/res/drawable-night/ic_avalanche_no_color.xml new file mode 100644 index 0000000000..84bb62ad1e --- /dev/null +++ b/app/src/main/res/drawable-night/ic_avalanche_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_bitcoin_cash_no_color.xml b/app/src/main/res/drawable-night/ic_bitcoin_cash_no_color.xml new file mode 100644 index 0000000000..501c006728 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_bitcoin_cash_no_color.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawable-night/ic_bitcoin_no_color.xml b/app/src/main/res/drawable-night/ic_bitcoin_no_color.xml new file mode 100644 index 0000000000..84b7fa673d --- /dev/null +++ b/app/src/main/res/drawable-night/ic_bitcoin_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_bsc_no_color.xml b/app/src/main/res/drawable-night/ic_bsc_no_color.xml new file mode 100644 index 0000000000..7a6e69d0d0 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_bsc_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_cardano_no_color.xml b/app/src/main/res/drawable-night/ic_cardano_no_color.xml new file mode 100644 index 0000000000..688149e946 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_cardano_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_chia_no_color.xml b/app/src/main/res/drawable-night/ic_chia_no_color.xml new file mode 100644 index 0000000000..a8beb8b71e --- /dev/null +++ b/app/src/main/res/drawable-night/ic_chia_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_cosmos_no_color.xml b/app/src/main/res/drawable-night/ic_cosmos_no_color.xml new file mode 100644 index 0000000000..42e2426955 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_cosmos_no_color.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_cronos_no_color.xml b/app/src/main/res/drawable-night/ic_cronos_no_color.xml new file mode 100644 index 0000000000..95c7b20aa0 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_cronos_no_color.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_dash_no_color.xml b/app/src/main/res/drawable-night/ic_dash_no_color.xml new file mode 100644 index 0000000000..cbe04a6a95 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_dash_no_color.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_dogecoin_no_color.xml b/app/src/main/res/drawable-night/ic_dogecoin_no_color.xml new file mode 100644 index 0000000000..0c20ff8559 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_dogecoin_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_eth_no_color.xml b/app/src/main/res/drawable-night/ic_eth_no_color.xml new file mode 100644 index 0000000000..ff2ec1be37 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_eth_no_color.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_ethereumfair_no_color.xml b/app/src/main/res/drawable-night/ic_ethereumfair_no_color.xml new file mode 100644 index 0000000000..97dbf4686f --- /dev/null +++ b/app/src/main/res/drawable-night/ic_ethereumfair_no_color.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_ethereumpow_no_color.xml b/app/src/main/res/drawable-night/ic_ethereumpow_no_color.xml new file mode 100644 index 0000000000..15e4b3efd0 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_ethereumpow_no_color.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_fantom_no_color.xml b/app/src/main/res/drawable-night/ic_fantom_no_color.xml new file mode 100644 index 0000000000..bbb7044103 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_fantom_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_gnosis_no_color.xml b/app/src/main/res/drawable-night/ic_gnosis_no_color.xml new file mode 100644 index 0000000000..fb21b7ec5b --- /dev/null +++ b/app/src/main/res/drawable-night/ic_gnosis_no_color.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_kaspa_no_color.xml b/app/src/main/res/drawable-night/ic_kaspa_no_color.xml new file mode 100644 index 0000000000..d245591015 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_kaspa_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_kava_no_color.xml b/app/src/main/res/drawable-night/ic_kava_no_color.xml new file mode 100644 index 0000000000..52132dd8db --- /dev/null +++ b/app/src/main/res/drawable-night/ic_kava_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_kusama_no_color.xml b/app/src/main/res/drawable-night/ic_kusama_no_color.xml new file mode 100644 index 0000000000..d2601e7684 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_kusama_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_litecoin_no_color.xml b/app/src/main/res/drawable-night/ic_litecoin_no_color.xml new file mode 100644 index 0000000000..da1b438b7e --- /dev/null +++ b/app/src/main/res/drawable-night/ic_litecoin_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_octaspace_no_color.xml b/app/src/main/res/drawable-night/ic_octaspace_no_color.xml new file mode 100644 index 0000000000..3483ed7be3 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_octaspace_no_color.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_optimism_no_color.xml b/app/src/main/res/drawable-night/ic_optimism_no_color.xml new file mode 100644 index 0000000000..9a28dabb2f --- /dev/null +++ b/app/src/main/res/drawable-night/ic_optimism_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_polkadot_no_color.xml b/app/src/main/res/drawable-night/ic_polkadot_no_color.xml new file mode 100644 index 0000000000..cc9d9d2179 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_polkadot_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_polygon_no_color.xml b/app/src/main/res/drawable-night/ic_polygon_no_color.xml new file mode 100644 index 0000000000..bfd632c93a --- /dev/null +++ b/app/src/main/res/drawable-night/ic_polygon_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_ravencoin_no_color.xml b/app/src/main/res/drawable-night/ic_ravencoin_no_color.xml new file mode 100644 index 0000000000..428b851f0e --- /dev/null +++ b/app/src/main/res/drawable-night/ic_ravencoin_no_color.xml @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_rsk_no_color.xml b/app/src/main/res/drawable-night/ic_rsk_no_color.xml new file mode 100644 index 0000000000..8a1fc2a678 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_rsk_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_solana_no_color.xml b/app/src/main/res/drawable-night/ic_solana_no_color.xml new file mode 100644 index 0000000000..ac1bb7c565 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_solana_no_color.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawable-night/ic_stellar_no_color.xml b/app/src/main/res/drawable-night/ic_stellar_no_color.xml new file mode 100644 index 0000000000..e87b7c5061 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_stellar_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_telos_no_color.xml b/app/src/main/res/drawable-night/ic_telos_no_color.xml new file mode 100644 index 0000000000..b853488d28 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_telos_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_terra2_no_color.xml b/app/src/main/res/drawable-night/ic_terra2_no_color.xml new file mode 100644 index 0000000000..2ac3b44b03 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_terra2_no_color.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_terra_no_color.xml b/app/src/main/res/drawable-night/ic_terra_no_color.xml new file mode 100644 index 0000000000..26d8fe8e4b --- /dev/null +++ b/app/src/main/res/drawable-night/ic_terra_no_color.xml @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_tezos_no_color.xml b/app/src/main/res/drawable-night/ic_tezos_no_color.xml new file mode 100644 index 0000000000..8976ad0a0e --- /dev/null +++ b/app/src/main/res/drawable-night/ic_tezos_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_ton_no_color.xml b/app/src/main/res/drawable-night/ic_ton_no_color.xml new file mode 100644 index 0000000000..098b3a6883 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_ton_no_color.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_tron_no_color.xml b/app/src/main/res/drawable-night/ic_tron_no_color.xml new file mode 100644 index 0000000000..581cf60d6a --- /dev/null +++ b/app/src/main/res/drawable-night/ic_tron_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable-night/ic_xrp_no_color.xml b/app/src/main/res/drawable-night/ic_xrp_no_color.xml new file mode 100644 index 0000000000..9c4d2e9b43 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_xrp_no_color.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 5e6d3cdd75..1acebccb4b 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -7,7 +7,7 @@ #1E1E1E #000000 - #1E1E1E + #303030 #F5F5F5 diff --git a/core/ui/src/main/java/com/tangem/core/ui/res/IconColorType.kt b/core/ui/src/main/java/com/tangem/core/ui/res/IconColorType.kt index bcfec7a2b5..42b0e53057 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/res/IconColorType.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/res/IconColorType.kt @@ -12,6 +12,7 @@ import com.tangem.core.ui.res.TangemColorPalette.Dark4 import com.tangem.core.ui.res.TangemColorPalette.Dark6 import com.tangem.core.ui.res.TangemColorPalette.Light4 import com.tangem.core.ui.res.TangemColorPalette.Light5 +import com.tangem.core.ui.res.TangemColorPalette.Mustard import com.tangem.core.ui.res.TangemColorPalette.Tangerine import com.tangem.core.ui.res.TangemColorPalette.White @@ -24,7 +25,7 @@ enum class IconColorType(val lightColor: Color, val darkColor: Color) { INACTIVE(lightColor = Light4, darkColor = Dark4), ACCENT(lightColor = Azure, darkColor = Azure), WARNING(lightColor = Amaranth, darkColor = Amaranth), - ATTENTION(lightColor = Tangerine, darkColor = Tangerine), + ATTENTION(lightColor = Tangerine, darkColor = Mustard), } @Composable diff --git a/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt b/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt index 96cc2f168a..293956cef6 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/res/TangemTheme.kt @@ -165,7 +165,7 @@ private fun darkThemeColors(): TangemColors { button = TangemColors.Button( primary = TangemColorPalette.Light1, secondary = TangemColorPalette.Dark5, - disabled = TangemColorPalette.Dark6, + disabled = TangemColorPalette.Dark5, positiveDisabled = TangemColorPalette.DarkGreen, ), background = TangemColors.Background( diff --git a/core/ui/src/main/java/com/tangem/core/ui/res/TextColorType.kt b/core/ui/src/main/java/com/tangem/core/ui/res/TextColorType.kt index 39f85b8fa1..b093f4f7af 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/res/TextColorType.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/res/TextColorType.kt @@ -11,6 +11,7 @@ import com.tangem.core.ui.res.TangemColorPalette.Dark6 import com.tangem.core.ui.res.TangemColorPalette.Light4 import com.tangem.core.ui.res.TangemColorPalette.Light5 import com.tangem.core.ui.res.TangemColorPalette.Meadow +import com.tangem.core.ui.res.TangemColorPalette.Mustard import com.tangem.core.ui.res.TangemColorPalette.Tangerine import com.tangem.core.ui.res.TangemColorPalette.White @@ -23,7 +24,7 @@ enum class TextColorType(val lightColor: Color, val darkColor: Color) { DISABLED(lightColor = Light4, darkColor = Dark3), ACCENT(lightColor = Meadow, darkColor = Meadow), WARNING(lightColor = Amaranth, darkColor = Amaranth), - ATTENTION(lightColor = Tangerine, darkColor = Tangerine), + ATTENTION(lightColor = Tangerine, darkColor = Mustard), CONSTANT_WHITE(lightColor = White, darkColor = White), } diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 2ba79f375f..e9679b30b3 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -19,6 +19,7 @@ androidxSplashScreen = "1.0.1" androidxFragment = "1.5.3" androidxLifecycle = "2.5.1" androidx-paging = "3.1.1" +androidx-palette = "1.0.0" # endregion AndroidX # region Compose @@ -134,6 +135,7 @@ lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } lifecycle-viewModel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" } lifecycle-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "compoese-lifecycle-runtime" } +androidx-palette = { module = "androidx.palette:palette", version.ref = "androidx-palette" } # region AndroidX # region Compose