From 51f1dafb3e2f9871f94a72df492a28da54a7eb85 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 12 May 2023 22:29:42 +0800 Subject: [PATCH] Updated on 2026-08-14 --- .../legacy/AddCustomTokenFragment.kt | 2 +- .../legacy/compose/AddCustomTokenScreen.kt | 2 -- .../legacy}/compose/BlockchainSpinner.kt | 2 +- .../legacy}/compose/ComposeDialogManager.kt | 28 ++++++++----------- .../legacy/compose/FormFieldViews.kt | 2 -- .../legacy}/compose/OutlinedSpinner.kt | 19 ++++++------- .../compose/SelectTokenNetworkDialog.kt | 1 - .../com/tangem/core/ui/res/TangemDimens.kt | 1 + 8 files changed, 23 insertions(+), 34 deletions(-) rename app/src/main/java/com/tangem/tap/{common => features/customtoken/legacy}/compose/BlockchainSpinner.kt (94%) rename app/src/main/java/com/tangem/tap/{common => features/customtoken/legacy}/compose/ComposeDialogManager.kt (86%) rename app/src/main/java/com/tangem/tap/{common => features/customtoken/legacy}/compose/OutlinedSpinner.kt (83%) diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/AddCustomTokenFragment.kt b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/AddCustomTokenFragment.kt index 280a46e758..204f95ec25 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/AddCustomTokenFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/AddCustomTokenFragment.kt @@ -15,11 +15,11 @@ import com.tangem.core.ui.res.TangemTheme import com.tangem.domain.features.addCustomToken.redux.AddCustomTokenState import com.tangem.domain.redux.domainStore import com.tangem.tap.common.analytics.events.ManageTokens -import com.tangem.tap.common.compose.ClosePopupTrigger import com.tangem.tap.features.BaseStoreFragment import com.tangem.tap.features.FragmentOnBackPressedHandler import com.tangem.tap.features.addBackPressHandler import com.tangem.tap.features.customtoken.legacy.compose.AddCustomTokenScreen +import com.tangem.tap.features.customtoken.legacy.compose.ClosePopupTrigger import com.tangem.wallet.R import org.rekotlin.StoreSubscriber diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/AddCustomTokenScreen.kt b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/AddCustomTokenScreen.kt index 3ac2828354..0a4ad3b4a6 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/AddCustomTokenScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/AddCustomTokenScreen.kt @@ -49,8 +49,6 @@ import com.tangem.domain.features.addCustomToken.redux.ScreenState import com.tangem.domain.features.addCustomToken.redux.ViewStates import com.tangem.domain.redux.domainStore import com.tangem.tap.common.compose.AddCustomTokenWarning -import com.tangem.tap.common.compose.ClosePopupTrigger -import com.tangem.tap.common.compose.ComposeDialogManager import com.tangem.tap.domain.moduleMessage.ModuleMessageConverter import com.tangem.tap.features.customtoken.legacy.compose.test.TestCase import com.tangem.tap.features.customtoken.legacy.compose.test.TestCasesList diff --git a/app/src/main/java/com/tangem/tap/common/compose/BlockchainSpinner.kt b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/BlockchainSpinner.kt similarity index 94% rename from app/src/main/java/com/tangem/tap/common/compose/BlockchainSpinner.kt rename to app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/BlockchainSpinner.kt index 215fb7b312..d6c60c2b26 100644 --- a/app/src/main/java/com/tangem/tap/common/compose/BlockchainSpinner.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/BlockchainSpinner.kt @@ -1,4 +1,4 @@ -package com.tangem.tap.common.compose +package com.tangem.tap.features.customtoken.legacy.compose import androidx.annotation.StringRes import androidx.compose.foundation.layout.fillMaxWidth diff --git a/app/src/main/java/com/tangem/tap/common/compose/ComposeDialogManager.kt b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/ComposeDialogManager.kt similarity index 86% rename from app/src/main/java/com/tangem/tap/common/compose/ComposeDialogManager.kt rename to app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/ComposeDialogManager.kt index 617f2f2c46..453ace8c9e 100644 --- a/app/src/main/java/com/tangem/tap/common/compose/ComposeDialogManager.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/ComposeDialogManager.kt @@ -1,4 +1,4 @@ -package com.tangem.tap.common.compose +package com.tangem.tap.features.customtoken.legacy.compose import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column @@ -31,17 +31,18 @@ import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.tangem.core.ui.components.SpacerH16 +import com.tangem.core.ui.res.TangemTheme +import com.tangem.datasource.api.tangemTech.models.CoinsResponse import com.tangem.domain.DomainDialog import com.tangem.domain.redux.domainStore import com.tangem.domain.redux.global.DomainGlobalAction import com.tangem.domain.redux.global.DomainGlobalState import com.tangem.tap.domain.moduleMessage.ModuleMessageConverter -import com.tangem.tap.features.customtoken.legacy.compose.SelectTokenNetworkDialog import com.tangem.wallet.R import org.rekotlin.StoreSubscriber @Composable -fun ComposeDialogManager() { +internal fun ComposeDialogManager() { val dialogSate = remember { mutableStateOf(null) } val subscriber = remember { object : StoreSubscriber { @@ -94,27 +95,22 @@ private fun ShowTheDialog(dialogState: MutableState) { * Dialog with single item selection */ @Composable -fun SimpleDialog( +fun SimpleDialog( title: String, - items: List, - onSelect: (T) -> Unit, + items: List, + onSelect: (CoinsResponse.Coin.Network) -> Unit, onDismissRequest: () -> Unit, - itemContent: @Composable (T) -> Unit, + itemContent: @Composable (CoinsResponse.Coin.Network) -> Unit, ) { Dialog( - properties = DialogProperties(false, false), + properties = DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false), onDismissRequest = { }, ) { - Surface( - modifier = Modifier.fillMaxWidth(), - shape = MaterialTheme.shapes.medium, - ) { - Column( - modifier = Modifier.padding(22.dp), - ) { + Surface(modifier = Modifier.fillMaxWidth(), shape = MaterialTheme.shapes.medium) { + Column(modifier = Modifier.padding(TangemTheme.dimens.spacing22)) { DialogTitle(title = title) LazyColumn { - items(items) { item -> + items(items = items, key = CoinsResponse.Coin.Network::networkId) { item -> Row( modifier = Modifier .fillMaxWidth() diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/FormFieldViews.kt b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/FormFieldViews.kt index 9b5c87e6b7..a640e91575 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/FormFieldViews.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/FormFieldViews.kt @@ -17,8 +17,6 @@ import com.tangem.domain.features.addCustomToken.redux.AddCustomTokenAction.OnTo import com.tangem.domain.features.addCustomToken.redux.AddCustomTokenAction.OnTokenSymbolChanged import com.tangem.domain.features.addCustomToken.redux.AddCustomTokenState import com.tangem.domain.redux.domainStore -import com.tangem.tap.common.compose.BlockchainSpinner -import com.tangem.tap.common.compose.ClosePopupTrigger import com.tangem.tap.common.compose.OutlinedTextFieldWidget import com.tangem.tap.common.compose.TitleSubtitle import com.tangem.wallet.R diff --git a/app/src/main/java/com/tangem/tap/common/compose/OutlinedSpinner.kt b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/OutlinedSpinner.kt similarity index 83% rename from app/src/main/java/com/tangem/tap/common/compose/OutlinedSpinner.kt rename to app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/OutlinedSpinner.kt index 981e5e00e6..a3ddaedf7e 100644 --- a/app/src/main/java/com/tangem/tap/common/compose/OutlinedSpinner.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/OutlinedSpinner.kt @@ -1,9 +1,10 @@ -package com.tangem.tap.common.compose +package com.tangem.tap.features.customtoken.legacy.compose import android.os.Handler import android.os.Looper import androidx.compose.material.* import androidx.compose.runtime.Composable +import androidx.compose.runtime.key import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier @@ -12,6 +13,7 @@ import androidx.core.os.postDelayed import com.tangem.blockchain.common.Blockchain import com.tangem.common.extensions.VoidCallback import com.tangem.domain.common.form.Field +import com.tangem.tap.common.compose.TangemTextFieldsDefault import com.tangem.tap.common.extensions.ValueCallback /** @@ -20,7 +22,7 @@ import com.tangem.tap.common.extensions.ValueCallback @Suppress("MagicNumber") @OptIn(ExperimentalMaterialApi::class) @Composable -fun OutlinedSpinner( +internal fun OutlinedSpinner( label: String, itemList: List, selectedItem: Field.Data, @@ -71,15 +73,11 @@ fun OutlinedSpinner( ) if (isEnabled) { - ExposedDropdownMenu( - expanded = rIsExpanded.value, - onDismissRequest = onDismissRequest, - ) { + ExposedDropdownMenu(expanded = rIsExpanded.value, onDismissRequest = onDismissRequest) { itemList.forEach { item -> - DropdownMenuItem(onClick = { onDropDownItemSelectedInternal(item) }) { - when (dropdownItemView) { - null -> Text(textFieldConverter(item)) - else -> dropdownItemView(item) + key(item) { + DropdownMenuItem(onClick = { onDropDownItemSelectedInternal(item) }) { + if (dropdownItemView == null) Text(textFieldConverter(item)) else dropdownItemView(item) } } } @@ -91,7 +89,6 @@ fun OutlinedSpinner( class ClosePopupTrigger { var close: () -> Unit = {} var onCloseComplete: () -> Unit = {} - var isTriggered = false } @Preview diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/SelectTokenNetworkDialog.kt b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/SelectTokenNetworkDialog.kt index fd824e960f..441969ad5e 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/SelectTokenNetworkDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/legacy/compose/SelectTokenNetworkDialog.kt @@ -3,7 +3,6 @@ package com.tangem.tap.features.customtoken.legacy.compose import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.tangem.domain.DomainDialog -import com.tangem.tap.common.compose.SimpleDialog import com.tangem.tap.common.compose.TitleSubtitle import com.tangem.wallet.R diff --git a/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt b/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt index a3b0fc8c7e..c2fbac9891 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt @@ -85,6 +85,7 @@ data class TangemDimens internal constructor( val spacing16: Dp = 16.dp, val spacing18: Dp = 18.dp, val spacing20: Dp = 20.dp, + val spacing22: Dp = 22.dp, val spacing24: Dp = 24.dp, val spacing26: Dp = 26.dp, val spacing28: Dp = 28.dp,