From da8894ef978b013449985e0c7745030f7020a40d Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Mon, 20 Dec 2021 21:06:31 +0100
Subject: [PATCH] Stop warning animation if position is before warning period

---
 .../tobias/playpad/pad/listener/PadDurationListener.java | 2 +-
 .../tobias/playpad/pad/listener/PadPositionListener.java | 9 +++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadDurationListener.java b/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadDurationListener.java
index a364fed1..ffc4d9b1 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadDurationListener.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadDurationListener.java
@@ -7,7 +7,7 @@ import javafx.util.Duration;
 
 public class PadDurationListener implements ChangeListener<Duration> {
 
-	private AbstractPadViewController controller;
+	private final AbstractPadViewController controller;
 
 	public PadDurationListener(AbstractPadViewController controller) {
 		this.controller = controller;
diff --git a/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java b/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java
index d2eee40c..55d09a90 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java
@@ -78,8 +78,8 @@ public class PadPositionListener implements Runnable, IPadPositionListener {
 		// Label (Restlaufzeit)
 		controller.updateTimeLabel();
 
-		// Warning nur wenn kein Loop und nur wenn Play, da sonst schon anderer Zustand und Warning nicht mehr richtig Reseted
-		// wird
+		// Warning nur, wenn kein Loop und nur wenn Play, da sonst schon anderer Zustand und Warning nicht mehr richtig
+		// zurückgesetzt wird
 		if (!pad.getPadSettings().isLoop() && pad.getStatus() == PadStatus.PLAY) {
 			// Warning
 			Duration warning = pad.getPadSettings().getWarning();
@@ -90,6 +90,11 @@ public class PadPositionListener implements Runnable, IPadPositionListener {
 				startWarningThread();
 				send = true;
 			}
+
+			if (warning.toSeconds() < seconds && send) {
+				stopWaning();
+				send = false;
+			}
 		}
 	}
 
-- 
GitLab