summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-02-11 19:28:53 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2014-02-11 19:28:53 +0100
commitcceaa0e3bea18455df6aeec0c881b7b01604becc (patch)
treed3f5a17c8b8b1dde7f4da05af7706ff1ab13fac7 /src/de/danoeh/antennapod
parent5707d014d0f02055512f05fed1b9f07c45993f8d (diff)
downloadAntennaPod-cceaa0e3bea18455df6aeec0c881b7b01604becc.zip
Fixed race condition when sleep timer expires
Diffstat (limited to 'src/de/danoeh/antennapod')
-rw-r--r--src/de/danoeh/antennapod/service/playback/PlaybackServiceTaskManager.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/de/danoeh/antennapod/service/playback/PlaybackServiceTaskManager.java b/src/de/danoeh/antennapod/service/playback/PlaybackServiceTaskManager.java
index 4060ab041..0c1878e18 100644
--- a/src/de/danoeh/antennapod/service/playback/PlaybackServiceTaskManager.java
+++ b/src/de/danoeh/antennapod/service/playback/PlaybackServiceTaskManager.java
@@ -212,7 +212,7 @@ public class PlaybackServiceTaskManager {
* Returns true if the sleep timer is currently active.
*/
public synchronized boolean isSleepTimerActive() {
- return sleepTimer != null && sleepTimerFuture != null && !sleepTimerFuture.isCancelled() && !sleepTimerFuture.isDone();
+ return sleepTimer != null && sleepTimerFuture != null && !sleepTimerFuture.isCancelled() && !sleepTimerFuture.isDone() && sleepTimer.isWaiting;
}
/**
@@ -345,10 +345,11 @@ public class PlaybackServiceTaskManager {
if (waitingTime <= 0) {
if (AppConfig.DEBUG)
Log.d(TAG, "Waiting completed");
+ postExecute();
if (!Thread.currentThread().isInterrupted()) {
callback.onSleepTimerExpired();
}
- postExecute();
+
}
} catch (InterruptedException e) {
Log.d(TAG, "Thread was interrupted while waiting");