locale and other windows related fixes

This commit is contained in:
Craig Raw 2020-08-27 17:16:20 +02:00
parent eb23cc8e61
commit 3c2dfed96d
5 changed files with 17 additions and 13 deletions

View file

@ -97,11 +97,11 @@ run {
"--add-opens=javafx.graphics/com.sun.javafx.tk.quantum=centerdevice.nsmenufx", "--add-opens=javafx.graphics/com.sun.javafx.tk.quantum=centerdevice.nsmenufx",
"--add-opens=javafx.graphics/com.sun.glass.ui=centerdevice.nsmenufx", "--add-opens=javafx.graphics/com.sun.glass.ui=centerdevice.nsmenufx",
"--add-opens=javafx.controls/com.sun.javafx.scene.control=centerdevice.nsmenufx", "--add-opens=javafx.controls/com.sun.javafx.scene.control=centerdevice.nsmenufx",
"--add-opens=javafx.graphics/com.sun.javafx.menu=centerdevice.nsmenufx", "--add-opens=javafx.graphics/com.sun.javafx.menu=centerdevice.nsmenufx"]
"--add-opens=javafx.graphics/com.sun.glass.ui.mac=centerdevice.nsmenufx"]
if(os.macOsX) { if(os.macOsX) {
applicationDefaultJvmArgs += ["-Xdock:name=Sparrow", "-Xdock:icon=/Users/scy/git/sparrow/src/main/resources/sparrow.png"] applicationDefaultJvmArgs += ["-Xdock:name=Sparrow", "-Xdock:icon=/Users/scy/git/sparrow/src/main/resources/sparrow.png",
"--add-opens=javafx.graphics/com.sun.glass.ui.mac=centerdevice.nsmenufx"]
} }
} }

View file

@ -4,13 +4,14 @@ import javafx.scene.control.TextFormatter;
import javafx.scene.control.TextInputControl; import javafx.scene.control.TextInputControl;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.ParseException; import java.text.ParseException;
import java.util.function.UnaryOperator; import java.util.Locale;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class CoinTextFormatter extends TextFormatter<String> { public class CoinTextFormatter extends TextFormatter<String> {
private static final Pattern COIN_VALIDATION = Pattern.compile("[\\d,]*(\\.\\d{0,8})?"); private static final Pattern COIN_VALIDATION = Pattern.compile("[\\d,]*(\\.\\d{0,8})?");
public static final DecimalFormat COIN_FORMAT = new DecimalFormat("###,###.########"); public static final DecimalFormat COIN_FORMAT = new DecimalFormat("###,###.########", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
public CoinTextFormatter() { public CoinTextFormatter() {
super(new CoinFilter()); super(new CoinFilter());

View file

@ -11,10 +11,12 @@ import javafx.scene.input.ClipboardContent;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Currency; import java.util.Currency;
import java.util.Locale;
public class FiatLabel extends CopyableLabel { public class FiatLabel extends CopyableLabel {
private static final DecimalFormat CURRENCY_FORMAT = new DecimalFormat("#,##0.00"); private static final DecimalFormat CURRENCY_FORMAT = new DecimalFormat("#,##0.00", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
private final LongProperty valueProperty = new SimpleLongProperty(-1); private final LongProperty valueProperty = new SimpleLongProperty(-1);
private final DoubleProperty btcRateProperty = new SimpleDoubleProperty(0.0); private final DoubleProperty btcRateProperty = new SimpleDoubleProperty(0.0);

View file

@ -36,7 +36,7 @@ public class Hwi {
public List<Device> enumerate(String passphrase) throws ImportException { public List<Device> enumerate(String passphrase) throws ImportException {
try { try {
List<String> command; List<String> command;
if(passphrase != null) { if(passphrase != null && !passphrase.isEmpty()) {
command = List.of(getHwiExecutable(Command.ENUMERATE).getAbsolutePath(), "--password", passphrase, Command.ENUMERATE.toString()); command = List.of(getHwiExecutable(Command.ENUMERATE).getAbsolutePath(), "--password", passphrase, Command.ENUMERATE.toString());
} else { } else {
command = List.of(getHwiExecutable(Command.ENUMERATE).getAbsolutePath(), Command.ENUMERATE.toString()); command = List.of(getHwiExecutable(Command.ENUMERATE).getAbsolutePath(), Command.ENUMERATE.toString());
@ -72,7 +72,7 @@ public class Hwi {
public String getXpub(Device device, String passphrase, String derivationPath) throws ImportException { public String getXpub(Device device, String passphrase, String derivationPath) throws ImportException {
try { try {
String output; String output;
if(passphrase != null && device.getModel().equals(WalletModel.TREZOR_1)) { if(passphrase != null && !passphrase.isEmpty() && device.getModel().equals(WalletModel.TREZOR_1)) {
output = execute(getDeviceCommand(device, passphrase, Command.GET_XPUB, derivationPath)); output = execute(getDeviceCommand(device, passphrase, Command.GET_XPUB, derivationPath));
} else { } else {
output = execute(getDeviceCommand(device, Command.GET_XPUB, derivationPath)); output = execute(getDeviceCommand(device, Command.GET_XPUB, derivationPath));
@ -103,7 +103,7 @@ public class Hwi {
} }
String output; String output;
if(passphrase != null && device.getModel().equals(WalletModel.TREZOR_1)) { if(passphrase != null && !passphrase.isEmpty() && device.getModel().equals(WalletModel.TREZOR_1)) {
output = execute(getDeviceCommand(device, passphrase, Command.DISPLAY_ADDRESS, "--path", derivationPath, type)); output = execute(getDeviceCommand(device, passphrase, Command.DISPLAY_ADDRESS, "--path", derivationPath, type));
} else { } else {
output = execute(getDeviceCommand(device, Command.DISPLAY_ADDRESS, "--path", derivationPath, type)); output = execute(getDeviceCommand(device, Command.DISPLAY_ADDRESS, "--path", derivationPath, type));
@ -125,7 +125,7 @@ public class Hwi {
String psbtBase64 = psbt.toBase64String(); String psbtBase64 = psbt.toBase64String();
String output; String output;
if(passphrase != null && device.getModel().equals(WalletModel.TREZOR_1)) { if(passphrase != null && !passphrase.isEmpty() && device.getModel().equals(WalletModel.TREZOR_1)) {
output = execute(getDeviceCommand(device, passphrase, Command.SIGN_TX, psbtBase64)); output = execute(getDeviceCommand(device, passphrase, Command.SIGN_TX, psbtBase64));
} else { } else {
output = execute(getDeviceCommand(device, Command.SIGN_TX, psbtBase64)); output = execute(getDeviceCommand(device, Command.SIGN_TX, psbtBase64));

View file

@ -35,6 +35,7 @@ import org.controlsfx.validation.decoration.StyleClassValidationDecoration;
import java.net.URL; import java.net.URL;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -180,7 +181,7 @@ public class SendController extends WalletFormController implements Initializabl
amountUnit.valueProperty().addListener((observable, oldValue, newValue) -> { amountUnit.valueProperty().addListener((observable, oldValue, newValue) -> {
Long value = getRecipientValueSats(oldValue); Long value = getRecipientValueSats(oldValue);
if(value != null) { if(value != null) {
DecimalFormat df = new DecimalFormat("#.#"); DecimalFormat df = new DecimalFormat("#.#", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
df.setMaximumFractionDigits(8); df.setMaximumFractionDigits(8);
amount.setText(df.format(newValue.getValue(value))); amount.setText(df.format(newValue.getValue(value)));
} }
@ -374,7 +375,7 @@ public class SendController extends WalletFormController implements Initializabl
private void setRecipientValueSats(long recipientValue) { private void setRecipientValueSats(long recipientValue) {
amount.textProperty().removeListener(amountListener); amount.textProperty().removeListener(amountListener);
DecimalFormat df = new DecimalFormat("#.#"); DecimalFormat df = new DecimalFormat("#.#", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
df.setMaximumFractionDigits(8); df.setMaximumFractionDigits(8);
amount.setText(df.format(amountUnit.getValue().getValue(recipientValue))); amount.setText(df.format(amountUnit.getValue().getValue(recipientValue)));
amount.textProperty().addListener(amountListener); amount.textProperty().addListener(amountListener);
@ -395,7 +396,7 @@ public class SendController extends WalletFormController implements Initializabl
private void setFeeValueSats(long feeValue) { private void setFeeValueSats(long feeValue) {
fee.textProperty().removeListener(feeListener); fee.textProperty().removeListener(feeListener);
DecimalFormat df = new DecimalFormat("#.#"); DecimalFormat df = new DecimalFormat("#.#", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
df.setMaximumFractionDigits(8); df.setMaximumFractionDigits(8);
fee.setText(df.format(feeAmountUnit.getValue().getValue(feeValue))); fee.setText(df.format(feeAmountUnit.getValue().getValue(feeValue)));
fee.textProperty().addListener(feeListener); fee.textProperty().addListener(feeListener);