diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-02-01 11:05:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-01 11:05:04 +0100 |
commit | f5a30f6eed0fd2f8f85ed7ee697c8c96d5d669e5 (patch) | |
tree | b1b69eb5967fb19904a1ae75c653942c537bea8c /core/src/main/java | |
parent | a0491bd67e29a2a73db490e56075e4a8bedb43ba (diff) | |
parent | 17444d9a3c275c4f2f865c8e6ec8b886f1e37e7f (diff) | |
download | AntennaPod-f5a30f6eed0fd2f8f85ed7ee697c8c96d5d669e5.zip |
Merge pull request #3811 from ByteHamster/sleep-timer-ui
Updated sleep timer UI
Diffstat (limited to 'core/src/main/java')
3 files changed, 36 insertions, 40 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 2fb37cc05..edcaacefc 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 @@ -745,10 +745,12 @@ public class PlaybackService extends MediaBrowserServiceCompat { setupPositionUpdater(); stateManager.validStartCommandWasReceived(); // set sleep timer if auto-enabled - if (newInfo.oldPlayerStatus != null && newInfo.oldPlayerStatus != PlayerStatus.SEEKING && - SleepTimerPreferences.autoEnable() && !sleepTimerActive()) { + if (newInfo.oldPlayerStatus != null && newInfo.oldPlayerStatus != PlayerStatus.SEEKING + && SleepTimerPreferences.autoEnable() && !sleepTimerActive()) { setSleepTimer(SleepTimerPreferences.timerMillis(), SleepTimerPreferences.shakeToReset(), SleepTimerPreferences.vibrate()); + EventBus.getDefault().post(new MessageEvent(getString(R.string.sleep_timer_enabled_label), + PlaybackService.this::disableSleepTimer)); } break; @@ -1007,17 +1009,14 @@ public class PlaybackService extends MediaBrowserServiceCompat { } public void setSleepTimer(long waitingTime, boolean shakeToReset, boolean vibrate) { - Log.d(TAG, "Setting sleep timer to " + Long.toString(waitingTime) + " milliseconds"); + Log.d(TAG, "Setting sleep timer to " + waitingTime + " milliseconds"); taskManager.setSleepTimer(waitingTime, shakeToReset, vibrate); sendNotificationBroadcast(NOTIFICATION_TYPE_SLEEPTIMER_UPDATE, 0); - EventBus.getDefault().post(new MessageEvent(getString(R.string.sleep_timer_enabled_label), - this::disableSleepTimer)); } public void disableSleepTimer() { taskManager.disableSleepTimer(); sendNotificationBroadcast(NOTIFICATION_TYPE_SLEEPTIMER_UPDATE, 0); - EventBus.getDefault().post(new MessageEvent(getString(R.string.sleep_timer_disabled_label))); } private void sendNotificationBroadcast(int type, int code) { 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 736cf8cf2..62eda415e 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 @@ -397,41 +397,42 @@ public class PlaybackServiceTaskManager { while (timeLeft > 0) { try { Thread.sleep(UPDATE_INTERVAL); - long now = System.currentTimeMillis(); - timeLeft -= now - lastTick; - lastTick = now; - - if(timeLeft < NOTIFICATION_THRESHOLD && !notifiedAlmostExpired) { - Log.d(TAG, "Sleep timer is about to expire"); - if(vibrate) { - Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); - if(v != null) { - v.vibrate(500); - } - } - if(shakeListener == null && shakeToReset) { - shakeListener = new ShakeListener(context, this); - } - postCallback(callback::onSleepTimerAlmostExpired); - notifiedAlmostExpired = true; - } - if (timeLeft <= 0) { - Log.d(TAG, "Sleep timer expired"); - if(shakeListener != null) { - shakeListener.pause(); - shakeListener = null; - } - if (!Thread.currentThread().isInterrupted()) { - postCallback(callback::onSleepTimerExpired); - } else { - Log.d(TAG, "Sleep timer interrupted"); - } - } } catch (InterruptedException e) { Log.d(TAG, "Thread was interrupted while waiting"); e.printStackTrace(); break; } + + long now = System.currentTimeMillis(); + timeLeft -= now - lastTick; + lastTick = now; + + if (timeLeft < NOTIFICATION_THRESHOLD && !notifiedAlmostExpired) { + Log.d(TAG, "Sleep timer is about to expire"); + if (vibrate) { + Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); + if (v != null) { + v.vibrate(500); + } + } + if (shakeListener == null && shakeToReset) { + shakeListener = new ShakeListener(context, this); + } + postCallback(callback::onSleepTimerAlmostExpired); + notifiedAlmostExpired = true; + } + if (timeLeft <= 0) { + Log.d(TAG, "Sleep timer expired"); + if (shakeListener != null) { + shakeListener.pause(); + shakeListener = null; + } + if (!Thread.currentThread().isInterrupted()) { + postCallback(callback::onSleepTimerExpired); + } else { + Log.d(TAG, "Sleep timer interrupted"); + } + } } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java index e7f6ad4f1..cb22fbcc9 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java @@ -628,10 +628,6 @@ public class PlaybackController { return playbackService != null && playbackService.sleepTimerActive(); } - public boolean sleepTimerNotActive() { - return playbackService != null && !playbackService.sleepTimerActive(); - } - public void disableSleepTimer() { if (playbackService != null) { playbackService.disableSleepTimer(); |