diff --git a/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java b/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java index 7ded1e7dfc..b83fdf53a8 100644 --- a/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java +++ b/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java @@ -963,6 +963,20 @@ public class XmrWalletService { } private void syncWalletWithProgress() { + + // update sync progress in realtime with native wallet + if (wallet instanceof MoneroWalletFull) { + wallet.sync(new MoneroWalletListener() { + @Override + public void onSyncProgress(long height, long startHeight, long endHeight, double percentDone, String message) { + updateSyncProgress(); + } + }); + wasWalletSynced = true; + return; + } + + // poll wallet for progress updateSyncProgress(); wallet.startSyncing(xmrConnectionService.getRefreshPeriodMs()); CountDownLatch latch = new CountDownLatch(1); @@ -1547,6 +1561,7 @@ public class XmrWalletService { @Override public void onSyncProgress(long height, long startHeight, long endHeight, double percentDone, String message) { + ThreadUtils.submitToPool(() -> updateSyncProgress()); for (MoneroWalletListenerI listener : walletListeners) ThreadUtils.submitToPool(() -> listener.onSyncProgress(height, startHeight, endHeight, percentDone, message)); }