From dcf40bcfb57eb2b050d28a35435fb544ad8ea30a Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 5 Feb 2019 20:43:46 +0100 Subject: [PATCH] Refactor: Add handler, make onMissedSecondTick default --- common/src/main/java/bisq/common/Clock.java | 21 +++++++++++++++---- .../java/bisq/core/trade/TradeManager.java | 4 ---- .../pendingtrades/steps/TradeStepView.java | 4 ---- .../settings/network/P2pNetworkListItem.java | 4 ---- .../bisq/network/p2p/peers/PeerManager.java | 10 ++++----- 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/common/src/main/java/bisq/common/Clock.java b/common/src/main/java/bisq/common/Clock.java index fafd417e64..3383b8eba5 100644 --- a/common/src/main/java/bisq/common/Clock.java +++ b/common/src/main/java/bisq/common/Clock.java @@ -21,17 +21,24 @@ import java.util.LinkedList; import java.util.List; import java.util.concurrent.TimeUnit; +import lombok.extern.slf4j.Slf4j; + // Helps configure listener objects that are run by the `UserThread` each second // and can do per second, per minute and delayed second actions. +@Slf4j public class Clock { - public static final int IDLE_TOLERANCE = 20000; + public static final int IDLE_TOLERANCE_MS = 20000; public interface Listener { void onSecondTick(); void onMinuteTick(); - void onMissedSecondTick(long missed); + default void onMissedSecondTick(long missedMs) { + } + + default void onAwakeFromStandby(long missedMs) { + } } private Timer timer; @@ -55,9 +62,15 @@ public class Clock { long currentTimeMillis = System.currentTimeMillis(); long diff = currentTimeMillis - lastSecondTick; - if (diff > 1000) - listeners.forEach(listener -> listener.onMissedSecondTick(diff - 1000)); + if (diff > 1000) { + long missedMs = diff - 1000; + listeners.forEach(listener -> listener.onMissedSecondTick(missedMs)); + if (missedMs > Clock.IDLE_TOLERANCE_MS) { + log.info("We have been in standby mode for {} sec", missedMs / 1000); + listeners.forEach(listener -> listener.onAwakeFromStandby(missedMs)); + } + } lastSecondTick = currentTimeMillis; }, 1, TimeUnit.SECONDS); } diff --git a/core/src/main/java/bisq/core/trade/TradeManager.java b/core/src/main/java/bisq/core/trade/TradeManager.java index e2b3592197..ee05439a53 100644 --- a/core/src/main/java/bisq/core/trade/TradeManager.java +++ b/core/src/main/java/bisq/core/trade/TradeManager.java @@ -636,10 +636,6 @@ public class TradeManager implements PersistedDataHost { public void onMinuteTick() { updateTradePeriodState(); } - - @Override - public void onMissedSecondTick(long missed) { - } }); } diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java index ad70129497..14c64a50b6 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java @@ -149,10 +149,6 @@ public abstract class TradeStepView extends AnchorPane { public void onMinuteTick() { updateTimeLeft(); } - - @Override - public void onMissedSecondTick(long missed) { - } }; } diff --git a/desktop/src/main/java/bisq/desktop/main/settings/network/P2pNetworkListItem.java b/desktop/src/main/java/bisq/desktop/main/settings/network/P2pNetworkListItem.java index 79f929065f..0c907865a9 100644 --- a/desktop/src/main/java/bisq/desktop/main/settings/network/P2pNetworkListItem.java +++ b/desktop/src/main/java/bisq/desktop/main/settings/network/P2pNetworkListItem.java @@ -81,10 +81,6 @@ public class P2pNetworkListItem { @Override public void onMinuteTick() { } - - @Override - public void onMissedSecondTick(long missed) { - } }; clock.addListener(listener); onLastActivityChanged(statistic.getLastActivityTimestamp()); diff --git a/p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java b/p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java index 3fc06e62cf..7292866449 100644 --- a/p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java +++ b/p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java @@ -151,12 +151,10 @@ public class PeerManager implements ConnectionListener, PersistedDataHost { } @Override - public void onMissedSecondTick(long missed) { - if (missed > Clock.IDLE_TOLERANCE) { - log.info("We have been in standby mode for {} sec", missed / 1000); - stopped = false; - listeners.stream().forEach(Listener::onAwakeFromStandby); - } + public void onAwakeFromStandby(long missedMs) { + // TODO is "stopped = false;" correct? + stopped = false; + listeners.forEach(Listener::onAwakeFromStandby); } }; clock.addListener(listener);