diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-02-11 19:28:53 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-02-11 19:28:53 +0100 |
commit | cceaa0e3bea18455df6aeec0c881b7b01604becc (patch) | |
tree | d3f5a17c8b8b1dde7f4da05af7706ff1ab13fac7 /src/de/danoeh/antennapod | |
parent | 5707d014d0f02055512f05fed1b9f07c45993f8d (diff) | |
download | AntennaPod-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.java | 5 |
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"); |