Skip to content

Commit 87664a2

Browse files
committed
Added check address switcher on enter address fragment
1 parent 058d1e2 commit 87664a2

3 files changed

Lines changed: 34 additions & 8 deletions

File tree

app/src/main/java/cash/p/terminal/core/managers/LocalStorageManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,7 @@ class LocalStorageManager(
647647

648648
override var recipientAddressCheckEnabled by preferences.delegate(
649649
key = "recipientAddressCheckEnabled",
650-
default = true
650+
default = false
651651
)
652652

653653
override var showChangelogAfterUpdate by preferences.delegate(

app/src/main/java/cash/p/terminal/modules/send/address/EnterAddressFragment.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ import cash.p.terminal.modules.send.SendFragment
4646
import cash.p.terminal.modules.sendtokenselect.PrefilledData
4747
import cash.p.terminal.navigation.slideFromRight
4848
import cash.p.terminal.ui.compose.components.FormsInputAddress
49+
import cash.p.terminal.ui.compose.components.HsSwitch
4950
import cash.p.terminal.ui_compose.BaseComposeFragment
5051
import cash.p.terminal.ui_compose.components.AppBar
5152
import cash.p.terminal.ui_compose.components.ButtonPrimaryYellow
53+
import cash.p.terminal.ui_compose.components.HFillSpacer
5254
import cash.p.terminal.ui_compose.components.HSpacer
5355
import cash.p.terminal.ui_compose.components.HsBackButton
5456
import cash.p.terminal.ui_compose.components.HsDivider
@@ -63,6 +65,8 @@ import cash.p.terminal.ui_compose.requireInput
6365
import cash.p.terminal.ui_compose.theme.ComposeAppTheme
6466
import cash.p.terminal.wallet.Wallet
6567
import com.tonapps.tonkeeper.api.shortAddress
68+
import io.horizontalsystems.chartview.cell.CellUniversal
69+
import io.horizontalsystems.chartview.cell.SectionUniversalLawrence
6670
import kotlinx.coroutines.launch
6771
import kotlinx.parcelize.Parcelize
6872
import java.math.BigDecimal
@@ -127,6 +131,16 @@ fun EnterAddressScreen(navController: NavController, input: EnterAddressFragment
127131
.weight(1f)
128132
.verticalScroll(rememberScrollState()),
129133
) {
134+
SectionUniversalLawrence {
135+
CellUniversal {
136+
body_leah(text = stringResource(R.string.SettingsAddressChecker_RecipientCheck))
137+
HFillSpacer(minWidth = 8.dp)
138+
HsSwitch(
139+
checked = uiState.addressCheckEnabled,
140+
onCheckedChange = viewModel::onCheckAddressClick
141+
)
142+
}
143+
}
130144
FormsInputAddress(
131145
modifier = Modifier.padding(horizontal = 16.dp, vertical = 12.dp),
132146
value = uiState.value,

app/src/main/java/cash/p/terminal/modules/send/address/EnterAddressViewModel.kt

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ class EnterAddressViewModel(
3333
addressUriParser: AddressUriParser,
3434
initialAddress: String?,
3535
contactsRepository: ContactsRepository,
36-
localStorage: ILocalStorage,
37-
addressCheckerSkippable: Boolean,
36+
private val localStorage: ILocalStorage,
37+
private val addressCheckerSkippable: Boolean,
3838
private val domainParser: AddressParserChain,
3939
private val addressValidator: EnterAddressValidator,
4040
private val addressCheckManager: AddressCheckManager,
@@ -56,11 +56,12 @@ class EnterAddressViewModel(
5656
private var parseAddressJob: Job? = null
5757

5858
private val addressExtractor = AddressExtractor(token.blockchainType, addressUriParser)
59-
private val addressCheckEnabled = if (addressCheckerSkippable) {
60-
localStorage.recipientAddressCheckEnabled
61-
} else {
62-
true
63-
}
59+
private val addressCheckEnabled: Boolean
60+
get() = if (addressCheckerSkippable) {
61+
localStorage.recipientAddressCheckEnabled
62+
} else {
63+
true
64+
}
6465

6566
init {
6667
initialAddress?.let {
@@ -85,6 +86,17 @@ class EnterAddressViewModel(
8586
addressCheckEnabled = addressCheckEnabled,
8687
)
8788

89+
fun onCheckAddressClick(enabled: Boolean) {
90+
localStorage.recipientAddressCheckEnabled = enabled
91+
emitState()
92+
93+
if(enabled && checkResults.isEmpty()) {
94+
if (value.isNotBlank()) {
95+
processAddress(value)
96+
}
97+
}
98+
}
99+
88100
fun onEnterAddress(value: String) {
89101
parseAddressJob?.cancel()
90102

0 commit comments

Comments
 (0)