diff --git a/src/main/java/com/sparrowwallet/sparrow/AppController.java b/src/main/java/com/sparrowwallet/sparrow/AppController.java index 7cbe4777..150260f6 100644 --- a/src/main/java/com/sparrowwallet/sparrow/AppController.java +++ b/src/main/java/com/sparrowwallet/sparrow/AppController.java @@ -149,6 +149,9 @@ public class AppController implements Initializable { private CheckMenuItem hideEmptyUsedAddresses; private static final BooleanProperty hideEmptyUsedAddressesProperty = new SimpleBooleanProperty(); + @FXML + private CheckMenuItem hideAmounts; + @FXML private CheckMenuItem useHdCameraResolution; private static final BooleanProperty useHdCameraResolutionProperty = new SimpleBooleanProperty(); @@ -384,6 +387,7 @@ public class AppController implements Initializable { openWalletsInNewWindows.selectedProperty().bindBidirectional(openWalletsInNewWindowsProperty); hideEmptyUsedAddressesProperty.set(Config.get().isHideEmptyUsedAddresses()); hideEmptyUsedAddresses.selectedProperty().bindBidirectional(hideEmptyUsedAddressesProperty); + hideAmounts.setSelected(Config.get().isHideAmounts()); useHdCameraResolutionProperty.set(Config.get().getWebcamResolution() == null || Config.get().getWebcamResolution().isWidescreenAspect()); useHdCameraResolution.selectedProperty().bindBidirectional(useHdCameraResolutionProperty); mirrorCameraImageProperty.set(Config.get().isMirrorCapture()); @@ -947,6 +951,13 @@ public class AppController implements Initializable { EventManager.get().post(new HideEmptyUsedAddressesStatusEvent(item.isSelected())); } + public void hideAmounts(ActionEvent event) { + CheckMenuItem item = (CheckMenuItem)event.getSource(); + Config.get().setHideAmounts(item.isSelected()); + EventManager.get().post(new HideAmountsStatusEvent(item.isSelected())); + } + + public void useHdCameraResolution(ActionEvent event) { CheckMenuItem item = (CheckMenuItem)event.getSource(); if(Config.get().getWebcamResolution().isStandardAspect() && item.isSelected()) { @@ -3124,6 +3135,11 @@ public class AppController implements Initializable { hideEmptyUsedAddresses.setSelected(event.isHideEmptyUsedAddresses()); } + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + hideAmounts.setSelected(event.isHideAmounts()); + } + @Subscribe public void requestOpenWallets(RequestOpenWalletsEvent event) { EventManager.get().post(new OpenWalletsEvent(tabs.getScene().getWindow(), getOpenWalletTabData())); diff --git a/src/main/java/com/sparrowwallet/sparrow/control/BalanceChart.java b/src/main/java/com/sparrowwallet/sparrow/control/BalanceChart.java index c76c23fa..08abf029 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/BalanceChart.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/BalanceChart.java @@ -128,4 +128,15 @@ public class BalanceChart extends LineChart { NumberAxis yaxis = (NumberAxis)getYAxis(); yaxis.setTickLabelFormatter(new CoinAxisFormatter(yaxis, format, unit)); } + + public void refreshAxisLabels() { + NumberAxis yaxis = (NumberAxis)getYAxis(); + // Force the axis to redraw by invalidating the upper and lower bounds + yaxis.setAutoRanging(false); + double lower = yaxis.getLowerBound(); + double upper = yaxis.getUpperBound(); + yaxis.setLowerBound(lower); + yaxis.setUpperBound(upper); + yaxis.setAutoRanging(true); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/control/CoinAxisFormatter.java b/src/main/java/com/sparrowwallet/sparrow/control/CoinAxisFormatter.java index 1f3f8f25..48a5f254 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/CoinAxisFormatter.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/CoinAxisFormatter.java @@ -2,6 +2,7 @@ package com.sparrowwallet.sparrow.control; import com.sparrowwallet.drongo.BitcoinUnit; import com.sparrowwallet.sparrow.UnitFormat; +import com.sparrowwallet.sparrow.io.Config; import javafx.scene.chart.NumberAxis; import javafx.util.StringConverter; @@ -18,6 +19,10 @@ final class CoinAxisFormatter extends StringConverter { @Override public String toString(Number object) { + if(Config.get().isHideAmounts()) { + return ""; + } + Double value = bitcoinUnit.getValue(object.longValue()); return new CoinTextFormatter(unitFormat).getCoinFormat().format(value); } diff --git a/src/main/java/com/sparrowwallet/sparrow/control/CoinCell.java b/src/main/java/com/sparrowwallet/sparrow/control/CoinCell.java index 12375a57..2c78def5 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/CoinCell.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/CoinCell.java @@ -58,16 +58,22 @@ class CoinCell extends TreeTableCell implements ConfirmationsList DecimalFormat decimalFormat = (amount.longValue() == 0L ? format.getBtcFormat() : format.getTableBtcFormat()); final String btcValue = decimalFormat.format(amount.doubleValue() / Transaction.SATOSHIS_PER_BITCOIN); - if(unit.equals(BitcoinUnit.BTC)) { - tooltip.setValue(satsValue + " " + BitcoinUnit.SATOSHIS.getLabel()); - setText(btcValue); + if(Config.get().isHideAmounts()) { + setText(CoinLabel.HIDDEN_AMOUNT_TEXT); + setTooltip(null); + setContextMenu(null); } else { - tooltip.setValue(btcValue + " " + BitcoinUnit.BTC.getLabel()); - setText(satsValue); + if(unit.equals(BitcoinUnit.BTC)) { + tooltip.setValue(satsValue + " " + BitcoinUnit.SATOSHIS.getLabel()); + setText(btcValue); + } else { + tooltip.setValue(btcValue + " " + BitcoinUnit.BTC.getLabel()); + setText(satsValue); + } + setTooltip(tooltip); + contextMenu.updateAmount(amount); + setContextMenu(contextMenu); } - setTooltip(tooltip); - contextMenu.updateAmount(amount); - setContextMenu(contextMenu); if(entry instanceof TransactionEntry transactionEntry) { tooltip.showConfirmations(transactionEntry.confirmationsProperty(), transactionEntry.isCoinbase()); @@ -94,8 +100,8 @@ class CoinCell extends TreeTableCell implements ConfirmationsList setGraphic(node); setContentDisplay(ContentDisplay.RIGHT); - if(((HashIndexEntry) entry).getType() == HashIndexEntry.Type.INPUT) { - satsValue = "-" + satsValue; + if(((HashIndexEntry) entry).getType() == HashIndexEntry.Type.INPUT && !Config.get().isHideAmounts()) { + setText("-" + getText()); } } else { setGraphic(null); diff --git a/src/main/java/com/sparrowwallet/sparrow/control/CoinLabel.java b/src/main/java/com/sparrowwallet/sparrow/control/CoinLabel.java index 31130465..bb9c4219 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/CoinLabel.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/CoinLabel.java @@ -13,6 +13,8 @@ import javafx.scene.input.Clipboard; import javafx.scene.input.ClipboardContent; public class CoinLabel extends Label { + public static final String HIDDEN_AMOUNT_TEXT = "\u2022\u2022\u2022\u2022\u2022"; + private final LongProperty valueProperty = new SimpleLongProperty(-1); private final Tooltip tooltip; private final CoinContextMenu contextMenu; @@ -49,6 +51,15 @@ public class CoinLabel extends Label { } private void setValueAsText(Long value, BitcoinUnit bitcoinUnit) { + if(Config.get().isHideAmounts()) { + setText(HIDDEN_AMOUNT_TEXT); + setTooltip(null); + setContextMenu(null); + return; + } + + + setTooltip(tooltip); setContextMenu(contextMenu); diff --git a/src/main/java/com/sparrowwallet/sparrow/control/CopyableCoinLabel.java b/src/main/java/com/sparrowwallet/sparrow/control/CopyableCoinLabel.java index 1a6a6021..aa357107 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/CopyableCoinLabel.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/CopyableCoinLabel.java @@ -72,6 +72,13 @@ public class CopyableCoinLabel extends CopyableLabel { } private void setValueAsText(Long value, UnitFormat unitFormat, BitcoinUnit bitcoinUnit) { + if(Config.get().isHideAmounts()) { + setText("*****"); + setTooltip(null); + setContextMenu(null); + return; + } + setTooltip(tooltip); setContextMenu(contextMenu); diff --git a/src/main/java/com/sparrowwallet/sparrow/control/FiatCell.java b/src/main/java/com/sparrowwallet/sparrow/control/FiatCell.java index 6036bfa0..fd1b2acf 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/FiatCell.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/FiatCell.java @@ -4,6 +4,7 @@ import com.sparrowwallet.drongo.OsType; import com.sparrowwallet.drongo.protocol.Transaction; import com.sparrowwallet.sparrow.CurrencyRate; import com.sparrowwallet.sparrow.UnitFormat; +import com.sparrowwallet.sparrow.io.Config; import com.sparrowwallet.sparrow.wallet.Entry; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; @@ -47,20 +48,27 @@ public class FiatCell extends TreeTableCell { CurrencyRate currencyRate = coinTreeTable.getCurrencyRate(); if(currencyRate != null && currencyRate.isAvailable()) { - Currency currency = currencyRate.getCurrency(); - double btcRate = currencyRate.getBtcRate(); + if(Config.get().isHideAmounts()) { + setText("*****"); + setGraphic(null); + setTooltip(null); + setContextMenu(null); + } else { + Currency currency = currencyRate.getCurrency(); + double btcRate = currencyRate.getBtcRate(); - BigDecimal satsBalance = BigDecimal.valueOf(amount.longValue()); - BigDecimal btcBalance = satsBalance.divide(BigDecimal.valueOf(Transaction.SATOSHIS_PER_BITCOIN)); - BigDecimal fiatBalance = btcBalance.multiply(BigDecimal.valueOf(btcRate)); + BigDecimal satsBalance = BigDecimal.valueOf(amount.longValue()); + BigDecimal btcBalance = satsBalance.divide(BigDecimal.valueOf(Transaction.SATOSHIS_PER_BITCOIN)); + BigDecimal fiatBalance = btcBalance.multiply(BigDecimal.valueOf(btcRate)); - String label = format.formatCurrencyValue(fiatBalance.doubleValue()); - tooltip.setText("1 BTC = " + currency.getSymbol() + " " + format.formatCurrencyValue(btcRate)); + String label = format.formatCurrencyValue(fiatBalance.doubleValue()); + tooltip.setText("1 BTC = " + currency.getSymbol() + " " + format.formatCurrencyValue(btcRate)); - setText(label); - setGraphic(null); - setTooltip(tooltip); - setContextMenu(contextMenu); + setText(label); + setGraphic(null); + setTooltip(tooltip); + setContextMenu(contextMenu); + } } else { setText(null); setGraphic(null); diff --git a/src/main/java/com/sparrowwallet/sparrow/control/FiatLabel.java b/src/main/java/com/sparrowwallet/sparrow/control/FiatLabel.java index e17635ac..e710b88d 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/FiatLabel.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/FiatLabel.java @@ -90,6 +90,13 @@ public class FiatLabel extends CopyableLabel { private void setValueAsText(long balance, UnitFormat unitFormat) { if(getCurrency() != null && getBtcRate() > 0.0) { + if(Config.get().isHideAmounts()) { + setText(CoinLabel.HIDDEN_AMOUNT_TEXT); + setTooltip(null); + setContextMenu(null); + return; + } + BigDecimal satsBalance = BigDecimal.valueOf(balance); BigDecimal btcBalance = satsBalance.divide(BigDecimal.valueOf(Transaction.SATOSHIS_PER_BITCOIN)); BigDecimal fiatBalance = btcBalance.multiply(BigDecimal.valueOf(getBtcRate())); diff --git a/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java b/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java index 46305d46..fe974fe8 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java @@ -284,6 +284,10 @@ public class TransactionDiagram extends GridPane { contextMenu.getItems().add(menuItem); setOnContextMenuRequested(contextMenuHandler); } + + if(getLabel() != null) { + getLabel().update(this); + } } private List> getDisplayedUtxoSets() { @@ -572,6 +576,10 @@ public class TransactionDiagram extends GridPane { } String getSatsValue(long amount) { + if(Config.get().isHideAmounts()) { + return CoinLabel.HIDDEN_AMOUNT_TEXT; + } + UnitFormat format = Config.get().getUnitFormat() == null ? UnitFormat.DOT : Config.get().getUnitFormat(); return format.formatSatsValue(amount); } diff --git a/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java b/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java index 1e4bfe20..277c8e70 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java @@ -90,6 +90,10 @@ public class UtxosChart extends BarChart { private void installTooltip(XYChart.Data item) { Tooltip.uninstall(item.getNode(), null); + if(Config.get().isHideAmounts()) { + return; + } + String satsValue = String.format(Locale.ENGLISH, "%,d", item.getYValue()); Tooltip tooltip = new Tooltip(item.getXValue() + "\n" + satsValue + " sats"); tooltip.setShowDelay(Duration.millis(TOOLTIP_SHOW_DELAY)); @@ -129,4 +133,21 @@ public class UtxosChart extends BarChart { NumberAxis yaxis = (NumberAxis)getYAxis(); yaxis.setTickLabelFormatter(new CoinAxisFormatter(yaxis, format, unit)); } + + public void refreshAxisLabels() { + NumberAxis yaxis = (NumberAxis)getYAxis(); + // Force the axis to redraw by invalidating the upper and lower bounds + yaxis.setAutoRanging(false); + double lower = yaxis.getLowerBound(); + double upper = yaxis.getUpperBound(); + yaxis.setLowerBound(lower); + yaxis.setUpperBound(upper); + yaxis.setAutoRanging(true); + } + + public void refreshTooltips() { + for(XYChart.Data data : utxoSeries.getData()) { + installTooltip(data); + } + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/event/HideAmountsStatusEvent.java b/src/main/java/com/sparrowwallet/sparrow/event/HideAmountsStatusEvent.java new file mode 100644 index 00000000..43994405 --- /dev/null +++ b/src/main/java/com/sparrowwallet/sparrow/event/HideAmountsStatusEvent.java @@ -0,0 +1,13 @@ +package com.sparrowwallet.sparrow.event; + +public class HideAmountsStatusEvent { + private final boolean hideAmounts; + + public HideAmountsStatusEvent(boolean hideAmounts) { + this.hideAmounts = hideAmounts; + } + + public boolean isHideAmounts() { + return hideAmounts; + } +} diff --git a/src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java b/src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java index 69235ae7..a59a4153 100644 --- a/src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java +++ b/src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java @@ -48,6 +48,10 @@ public class NewWalletTransactionsEvent { } public String getValueAsText(long value) { + if(Config.get().isHideAmounts()) { + return "*****"; + } + UnitFormat format = Config.get().getUnitFormat(); if(format == null) { format = UnitFormat.DOT; diff --git a/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java b/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java index 19c532bc..08bd90e9 100644 --- a/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java +++ b/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java @@ -38,6 +38,7 @@ public class FontAwesome5 extends GlyphFont { EXTERNAL_LINK_ALT('\uf35d'), ELLIPSIS_H('\uf141'), EYE('\uf06e'), + EYE_SLASH('\uf070'), FEATHER_ALT('\uf56b'), FILE_CSV('\uf6dd'), FILE_IMPORT('\uf56f'), diff --git a/src/main/java/com/sparrowwallet/sparrow/io/Config.java b/src/main/java/com/sparrowwallet/sparrow/io/Config.java index 9d4f76ec..06843efb 100644 --- a/src/main/java/com/sparrowwallet/sparrow/io/Config.java +++ b/src/main/java/com/sparrowwallet/sparrow/io/Config.java @@ -47,6 +47,7 @@ public class Config { private Theme theme; private boolean openWalletsInNewWindows = false; private boolean hideEmptyUsedAddresses = false; + private boolean hideAmounts = false; private boolean showTransactionHex = true; private boolean showLoadingLog = true; private boolean showAddressTransactionCount = false; @@ -303,6 +304,15 @@ public class Config { flush(); } + public boolean isHideAmounts() { + return hideAmounts; + } + + public void setHideAmounts(boolean hideAmounts) { + this.hideAmounts = hideAmounts; + flush(); + } + public boolean isShowTransactionHex() { return showTransactionHex; } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java index f2bb4078..4a8660ca 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java @@ -1781,6 +1781,12 @@ public class HeadersController extends TransactionFormController implements Init } } + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + transactionDiagram.update(); + fee.refresh(); + } + private static class WalletSignComparator implements Comparator { private static final List sourceOrder = List.of(KeystoreSource.SW_WATCH, KeystoreSource.HW_AIRGAPPED, KeystoreSource.HW_USB, KeystoreSource.SW_SEED); diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java index 122aa018..a38c4982 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java @@ -578,4 +578,9 @@ public class InputController extends TransactionFormController implements Initia updateInputLegendFromWallet(inputForm.getTransactionInput(), null); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + spends.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java index 37c7ea9d..434715b5 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java @@ -184,4 +184,9 @@ public class InputsController extends TransactionFormController implements Initi updatePSBTInputs(inputsForm.getPsbt()); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + total.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java index 831ccc6c..40f55c52 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java @@ -228,4 +228,9 @@ public class OutputController extends TransactionFormController implements Initi updateScriptPubKey(outputForm.getTransactionOutput()); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + value.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java index 24e2451a..56ece340 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java @@ -6,6 +6,7 @@ import com.sparrowwallet.drongo.protocol.TransactionOutput; import com.sparrowwallet.sparrow.EventManager; import com.sparrowwallet.sparrow.control.CopyableCoinLabel; import com.sparrowwallet.sparrow.control.CopyableLabel; +import com.sparrowwallet.sparrow.event.HideAmountsStatusEvent; import com.sparrowwallet.sparrow.event.TransactionOutputsChangedEvent; import com.sparrowwallet.sparrow.event.UnitFormatChangedEvent; import javafx.fxml.FXML; @@ -68,4 +69,9 @@ public class OutputsController extends TransactionFormController implements Init updatePieData(outputsPie, outputsForm.getTransaction().getOutputs()); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + total.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java b/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java index 5cef7655..fedbd402 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java @@ -132,6 +132,12 @@ public class AddressesController extends WalletFormController implements Initial changeTable.showTransactionsCount(event.isShowCount()); } + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + receiveTable.refresh(); + changeTable.refresh(); + } + public void exportReceiveAddresses(ActionEvent event) { exportAddresses(KeyPurpose.RECEIVE); } diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/PaymentController.java b/src/main/java/com/sparrowwallet/sparrow/wallet/PaymentController.java index d15e905a..b1fc2b4a 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/PaymentController.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/PaymentController.java @@ -405,6 +405,7 @@ public class PaymentController extends WalletFormController implements Initializ DecimalFormat df = new DecimalFormat("#.#", unitFormat.getDecimalFormatSymbols()); df.setMaximumFractionDigits(8); amount.setText(df.format(newValue.getValue(value))); + setFiatAmount(AppServices.getFiatCurrencyExchangeRate(), value); } }); @@ -923,6 +924,11 @@ public class PaymentController extends WalletFormController implements Initializ updateOpenWallets(event.getWallets()); } + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + fiatAmount.refresh(Config.get().getUnitFormat()); + } + private static class DnsPaymentService extends Service> { private final String hrn; diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/SendController.java b/src/main/java/com/sparrowwallet/sparrow/wallet/SendController.java index 63907943..618633fa 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/SendController.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/SendController.java @@ -1635,6 +1635,11 @@ public class SendController extends WalletFormController implements Initializabl } } + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + updateTransaction(); + } + private class PrivacyAnalysisTooltip extends VBox { private final List