mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-12-23 20:36:44 +00:00
notifications preference
This commit is contained in:
parent
08498b1b71
commit
8aed206a34
4 changed files with 48 additions and 22 deletions
|
@ -926,30 +926,32 @@ public class AppController implements Initializable {
|
|||
|
||||
@Subscribe
|
||||
public void newWalletTransactions(NewWalletTransactionsEvent event) {
|
||||
String text = "New " + (event.getBlockTransactions().size() > 1 ? "transactions: " : "transaction: ");
|
||||
if(Config.get().isNotifyNewTransactions()) {
|
||||
String text = "New " + (event.getBlockTransactions().size() > 1 ? "transactions: " : "transaction: ");
|
||||
|
||||
BitcoinUnit unit = Config.get().getBitcoinUnit();
|
||||
if(unit == null || unit.equals(BitcoinUnit.AUTO)) {
|
||||
unit = (event.getTotalValue() >= BitcoinUnit.getAutoThreshold() ? BitcoinUnit.BTC : BitcoinUnit.SATOSHIS);
|
||||
BitcoinUnit unit = Config.get().getBitcoinUnit();
|
||||
if(unit == null || unit.equals(BitcoinUnit.AUTO)) {
|
||||
unit = (event.getTotalValue() >= BitcoinUnit.getAutoThreshold() ? BitcoinUnit.BTC : BitcoinUnit.SATOSHIS);
|
||||
}
|
||||
|
||||
if(unit == BitcoinUnit.BTC) {
|
||||
text += CoinLabel.getBTCFormat().format((double)event.getTotalValue() / Transaction.SATOSHIS_PER_BITCOIN) + " BTC";
|
||||
} else {
|
||||
text += String.format(Locale.ENGLISH, "%,d", event.getTotalValue()) + " sats";
|
||||
}
|
||||
|
||||
Image image = new Image("image/sparrow-small.png", 50, 50, false, false);
|
||||
Notifications notificationBuilder = Notifications.create()
|
||||
.title("Sparrow - " + event.getWallet().getName())
|
||||
.text(text)
|
||||
.graphic(new ImageView(image))
|
||||
.hideAfter(Duration.seconds(180))
|
||||
.position(Pos.TOP_RIGHT)
|
||||
.threshold(5, Notifications.create().title("Sparrow").text("Multiple new wallet transactions").graphic(new ImageView(image)))
|
||||
.onAction(e -> selectTab(event.getWallet()));
|
||||
|
||||
notificationBuilder.show();
|
||||
}
|
||||
|
||||
if(unit == BitcoinUnit.BTC) {
|
||||
text += CoinLabel.getBTCFormat().format((double)event.getTotalValue() / Transaction.SATOSHIS_PER_BITCOIN) + " BTC";
|
||||
} else {
|
||||
text += String.format(Locale.ENGLISH, "%,d", event.getTotalValue()) + " sats";
|
||||
}
|
||||
|
||||
Image image = new Image("image/sparrow-small.png", 50, 50, false, false);
|
||||
Notifications notificationBuilder = Notifications.create()
|
||||
.title("Sparrow - " + event.getWallet().getName())
|
||||
.text(text)
|
||||
.graphic(new ImageView(image))
|
||||
.hideAfter(Duration.seconds(180))
|
||||
.position(Pos.TOP_RIGHT)
|
||||
.threshold(5, Notifications.create().title("Sparrow").text("Multiple new wallet transactions").graphic(new ImageView(image)))
|
||||
.onAction(e -> selectTab(event.getWallet()));
|
||||
|
||||
notificationBuilder.show();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
|
|
@ -21,6 +21,7 @@ public class Config {
|
|||
private ExchangeSource exchangeSource;
|
||||
private boolean groupByAddress = true;
|
||||
private boolean includeMempoolChange = true;
|
||||
private boolean notifyNewTransactions = true;
|
||||
private Integer keyDerivationPeriod;
|
||||
private File hwi;
|
||||
private String electrumServer;
|
||||
|
@ -123,6 +124,15 @@ public class Config {
|
|||
flush();
|
||||
}
|
||||
|
||||
public boolean isNotifyNewTransactions() {
|
||||
return notifyNewTransactions;
|
||||
}
|
||||
|
||||
public void setNotifyNewTransactions(boolean notifyNewTransactions) {
|
||||
this.notifyNewTransactions = notifyNewTransactions;
|
||||
flush();
|
||||
}
|
||||
|
||||
public Integer getKeyDerivationPeriod() {
|
||||
return keyDerivationPeriod;
|
||||
}
|
||||
|
|
|
@ -35,6 +35,9 @@ public class GeneralPreferencesController extends PreferencesDetailController {
|
|||
@FXML
|
||||
private UnlabeledToggleSwitch includeMempoolChange;
|
||||
|
||||
@FXML
|
||||
private UnlabeledToggleSwitch notifyNewTransactions;
|
||||
|
||||
private final ChangeListener<Currency> fiatCurrencyListener = new ChangeListener<Currency>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends Currency> observable, Currency oldValue, Currency newValue) {
|
||||
|
@ -78,6 +81,11 @@ public class GeneralPreferencesController extends PreferencesDetailController {
|
|||
includeMempoolChange.selectedProperty().addListener((observableValue, oldValue, newValue) -> {
|
||||
config.setIncludeMempoolChange(newValue);
|
||||
});
|
||||
|
||||
notifyNewTransactions.setSelected(config.isNotifyNewTransactions());
|
||||
notifyNewTransactions.selectedProperty().addListener((observableValue, oldValue, newValue) -> {
|
||||
config.setNotifyNewTransactions(newValue);
|
||||
});
|
||||
}
|
||||
|
||||
private void updateCurrencies(ExchangeSource exchangeSource) {
|
||||
|
|
|
@ -68,5 +68,11 @@
|
|||
<HelpLabel helpText="Allow a wallet to spend UTXOs that are still in the mempool where all their inputs are from that wallet"/>
|
||||
</Field>
|
||||
</Fieldset>
|
||||
<Fieldset inputGrow="SOMETIMES" text="Notifications" styleClass="wideLabelFieldSet">
|
||||
<Field text="New transactions:">
|
||||
<UnlabeledToggleSwitch fx:id="notifyNewTransactions" />
|
||||
<HelpLabel helpText="Show system notifications on new wallet transactions"/>
|
||||
</Field>
|
||||
</Fieldset>
|
||||
</Form>
|
||||
</GridPane>
|
||||
|
|
Loading…
Reference in a new issue