From 10a684cf4115ff68f6ac0de0d7c57b7e1d00f098 Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Thu, 6 Aug 2020 17:52:18 +0200 Subject: [PATCH] wallet update notifications --- drongo | 2 +- .../sparrowwallet/sparrow/AppController.java | 49 ++++++++++++++++++ .../event/NewWalletTransactionsEvent.java | 30 +++++++++++ .../sparrow/glyphfont/FontAwesome5.java | 1 + .../wallet/WalletTransactionsEntry.java | 8 +++ .../sparrow/notificationpopup.css | 29 +++++++++++ src/main/resources/image/sparrow-small@2x.png | Bin 0 -> 15680 bytes src/main/resources/image/sparrow-small@3x.png | Bin 0 -> 41742 bytes 8 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java create mode 100644 src/main/resources/com/sparrowwallet/sparrow/notificationpopup.css create mode 100644 src/main/resources/image/sparrow-small@2x.png create mode 100644 src/main/resources/image/sparrow-small@3x.png diff --git a/drongo b/drongo index eb07a7ff..1f7be6c7 160000 --- a/drongo +++ b/drongo @@ -1 +1 @@ -Subproject commit eb07a7ffa3c46cda83ac951d3b1ebd529460554c +Subproject commit 1f7be6c7d5f1cdfda58617b212630575066e5496 diff --git a/src/main/java/com/sparrowwallet/sparrow/AppController.java b/src/main/java/com/sparrowwallet/sparrow/AppController.java index 58002175..4dabbf41 100644 --- a/src/main/java/com/sparrowwallet/sparrow/AppController.java +++ b/src/main/java/com/sparrowwallet/sparrow/AppController.java @@ -34,14 +34,18 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; +import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.*; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; import javafx.scene.input.Dragboard; import javafx.scene.input.TransferMode; import javafx.scene.layout.StackPane; import javafx.stage.FileChooser; import javafx.stage.Stage; import javafx.util.Duration; +import org.controlsfx.control.Notifications; import org.controlsfx.control.StatusBar; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,6 +55,7 @@ import java.net.URL; import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.util.*; +import java.util.List; import java.util.stream.Collectors; public class AppController implements Initializable { @@ -154,6 +159,9 @@ public class AppController implements Initializable { rootStack.getStyleClass().removeAll(DRAG_OVER_CLASS); }); + Stage tabStage = (Stage)tabs.getScene().getWindow(); + tabStage.getScene().getStylesheets().add(AppController.class.getResource("notificationpopup.css").toExternalForm()); + tabs.getSelectionModel().selectedItemProperty().addListener((observable, old_val, selectedTab) -> { if(selectedTab != null) { TabData tabData = (TabData)selectedTab.getUserData(); @@ -526,6 +534,18 @@ public class AppController implements Initializable { alert.showAndWait(); } + public void selectTab(Wallet wallet) { + for(Tab tab : tabs.getTabs()) { + TabData tabData = (TabData) tab.getUserData(); + if(tabData.getType() == TabData.TabType.WALLET) { + WalletTabData walletTabData = (WalletTabData) tabData; + if(walletTabData.getWallet() == wallet) { + tabs.getSelectionModel().select(tab); + } + } + } + } + public void closeTab(ActionEvent event) { tabs.getTabs().remove(tabs.getSelectionModel().getSelectedItem()); } @@ -904,6 +924,35 @@ public class AppController implements Initializable { exportWallet.setDisable(!event.getWallet().isValid()); } + @Subscribe + public void newWalletTransactions(NewWalletTransactionsEvent event) { + 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); + } + + 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) + .hideCloseButton() + .threshold(5, Notifications.create().title("Sparrow").text("Multiple new transactions").graphic(new ImageView(image))) + .onAction(e -> selectTab(event.getWallet())); + + notificationBuilder.show(); + } + @Subscribe public void statusUpdated(StatusEvent event) { statusBar.setText(event.getStatus()); diff --git a/src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java b/src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java new file mode 100644 index 00000000..61b581d4 --- /dev/null +++ b/src/main/java/com/sparrowwallet/sparrow/event/NewWalletTransactionsEvent.java @@ -0,0 +1,30 @@ +package com.sparrowwallet.sparrow.event; + +import com.sparrowwallet.drongo.wallet.BlockTransaction; +import com.sparrowwallet.drongo.wallet.Wallet; + +import java.util.List; + +public class NewWalletTransactionsEvent { + private final Wallet wallet; + private final List blockTransactions; + private final long totalValue; + + public NewWalletTransactionsEvent(Wallet wallet, List blockTransactions, long totalValue) { + this.wallet = wallet; + this.blockTransactions = blockTransactions; + this.totalValue = totalValue; + } + + public Wallet getWallet() { + return wallet; + } + + public List getBlockTransactions() { + return blockTransactions; + } + + public long getTotalValue() { + return totalValue; + } +} diff --git a/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java b/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java index 0bbe61fe..934917cb 100644 --- a/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java +++ b/src/main/java/com/sparrowwallet/sparrow/glyphfont/FontAwesome5.java @@ -17,6 +17,7 @@ public class FontAwesome5 extends GlyphFont { public static enum Glyph implements INamedCharacter { ARROW_DOWN('\uf063'), ARROW_UP('\uf062'), + BTC('\uf15a'), CAMERA('\uf030'), CHECK_CIRCLE('\uf058'), CIRCLE('\uf111'), diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/WalletTransactionsEntry.java b/src/main/java/com/sparrowwallet/sparrow/wallet/WalletTransactionsEntry.java index e5cb1f42..8a7e713f 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/WalletTransactionsEntry.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/WalletTransactionsEntry.java @@ -5,6 +5,8 @@ import com.sparrowwallet.drongo.wallet.BlockTransaction; import com.sparrowwallet.drongo.wallet.BlockTransactionHashIndex; import com.sparrowwallet.drongo.wallet.Wallet; import com.sparrowwallet.drongo.wallet.WalletNode; +import com.sparrowwallet.sparrow.EventManager; +import com.sparrowwallet.sparrow.event.NewWalletTransactionsEvent; import javafx.beans.property.LongProperty; import javafx.beans.property.LongPropertyBase; @@ -64,6 +66,12 @@ public class WalletTransactionsEntry extends Entry { getChildren().removeAll(entriesRemoved); calculateBalances(); + + if(!entriesAdded.isEmpty()) { + List blockTransactions = entriesAdded.stream().map(txEntry -> ((TransactionEntry)txEntry).getBlockTransaction()).collect(Collectors.toList()); + long totalValue = entriesAdded.stream().mapToLong(Entry::getValue).sum(); + EventManager.get().post(new NewWalletTransactionsEvent(wallet, blockTransactions, totalValue)); + } } private static Collection getWalletTransactions(Wallet wallet) { diff --git a/src/main/resources/com/sparrowwallet/sparrow/notificationpopup.css b/src/main/resources/com/sparrowwallet/sparrow/notificationpopup.css new file mode 100644 index 00000000..d6ac3de8 --- /dev/null +++ b/src/main/resources/com/sparrowwallet/sparrow/notificationpopup.css @@ -0,0 +1,29 @@ + +.notification-bar > .pane { + -fx-padding: 0 7 7 7; +} + +.notification-bar > .close-button { + -fx-min-height: 27; + -fx-padding: 10 0 0 0; + -fx-translate-y: 10; +} + +.notification-bar > .pane .label.title { + -fx-font-size: 15px; + -fx-text-fill: #292929; + -fx-padding: 5 0 0 68; + -fx-translate-y: 10; +} + +.notification-bar > .pane .label { + -fx-font-size: 1em; + -fx-text-fill: #292929; + -fx-alignment: top-left; + -fx-padding: 0 0 0 10; + -fx-graphic-text-gap: 8; +} + +.notification-bar > .pane .label .text { + -fx-translate-y: 12; +} \ No newline at end of file diff --git a/src/main/resources/image/sparrow-small@2x.png b/src/main/resources/image/sparrow-small@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..45a7efa7c35a2fd259cba43a081a210dd2b65f09 GIT binary patch literal 15680 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 a0E-{r4Ulkd{`~0}AS0nDUL|TA{Qm&$K53Hx literal 0 HcmV?d00001 diff --git a/src/main/resources/image/sparrow-small@3x.png b/src/main/resources/image/sparrow-small@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..be9a6a1adfbbcb110499b0f40179352e2f2a95a8 GIT binary patch literal 41742 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