summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoregsavage <egs@egsavage.com>2019-10-13 20:58:28 -0400
committeregsavage <egs@egsavage.com>2019-10-13 20:58:28 -0400
commita59fd671787a5a4d9e0320c2b7f65853791a9e04 (patch)
treeb3471b03217f74d84d321c6f380bf8cf9c86b20d
parentfa0fbc2bc5ba7c9c954c5ef93fb8b1d9adf79224 (diff)
downloadAntennaPod-a59fd671787a5a4d9e0320c2b7f65853791a9e04.zip
Issue #2381 - restart sleep timer on play
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java3
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java18
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/ShakeListener.java2
3 files changed, 19 insertions, 4 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index a9967ae07..5002fb913 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -827,6 +827,9 @@ public class PlaybackService extends MediaBrowserServiceCompat {
@Override
public void onPlaybackStart(@NonNull Playable playable, int position) {
+ if (taskManager.isSleepTimerActive()) {
+ taskManager.restartSleepTimer();
+ }
taskManager.startWidgetUpdater();
if (position != PlaybackServiceMediaPlayer.INVALID_TIME) {
playable.setPosition(position);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java
index 1cf271a29..5647590b1 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java
@@ -249,6 +249,16 @@ public class PlaybackServiceTaskManager {
}
/**
+ * Restarts the sleep timer. If the sleep timer is not active, nothing will happen.
+ */
+ public synchronized void restartSleepTimer() {
+ if (isSleepTimerActive()) {
+ Log.d(TAG, "Restarting sleep timer");
+ sleepTimer.restart();
+ }
+ }
+
+ /**
* Returns the current sleep timer time or 0 if the sleep timer is not active.
*/
public synchronized long getSleepTimerTimeLeft() {
@@ -428,13 +438,15 @@ public class PlaybackServiceTaskManager {
return timeLeft;
}
- public void onShake() {
+ public void restart() {
postCallback(() -> {
setSleepTimer(waitingTime, shakeToReset, vibrate);
callback.onSleepTimerReset();
});
- shakeListener.pause();
- shakeListener = null;
+ if (shakeListener != null) {
+ shakeListener.pause();
+ shakeListener = null;
+ }
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ShakeListener.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ShakeListener.java
index c0b1b3bc0..b0b6e164d 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ShakeListener.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ShakeListener.java
@@ -52,7 +52,7 @@ class ShakeListener implements SensorEventListener
double gForce = Math.sqrt(gX*gX + gY*gY + gZ*gZ);
if (gForce > 2.25) {
Log.d(TAG, "Detected shake " + gForce);
- mSleepTimer.onShake();
+ mSleepTimer.restart();
}
}