Merge pull request #3516 from egsavage/reset-sleep-timer-on-play

Issue #2381 - restart sleep timer on play
This commit is contained in:
H. Lehmann 2019-10-15 12:12:06 +02:00 committed by GitHub
commit 54eeeb4355
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 4 deletions

View File

@ -827,6 +827,9 @@ public class PlaybackService extends MediaBrowserServiceCompat {
@Override @Override
public void onPlaybackStart(@NonNull Playable playable, int position) { public void onPlaybackStart(@NonNull Playable playable, int position) {
if (taskManager.isSleepTimerActive()) {
taskManager.restartSleepTimer();
}
taskManager.startWidgetUpdater(); taskManager.startWidgetUpdater();
if (position != PlaybackServiceMediaPlayer.INVALID_TIME) { if (position != PlaybackServiceMediaPlayer.INVALID_TIME) {
playable.setPosition(position); playable.setPosition(position);

View File

@ -248,6 +248,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. * Returns the current sleep timer time or 0 if the sleep timer is not active.
*/ */
@ -428,13 +438,15 @@ public class PlaybackServiceTaskManager {
return timeLeft; return timeLeft;
} }
public void onShake() { public void restart() {
postCallback(() -> { postCallback(() -> {
setSleepTimer(waitingTime, shakeToReset, vibrate); setSleepTimer(waitingTime, shakeToReset, vibrate);
callback.onSleepTimerReset(); callback.onSleepTimerReset();
}); });
shakeListener.pause(); if (shakeListener != null) {
shakeListener = null; shakeListener.pause();
shakeListener = null;
}
} }
} }

View File

@ -52,7 +52,7 @@ class ShakeListener implements SensorEventListener
double gForce = Math.sqrt(gX*gX + gY*gY + gZ*gZ); double gForce = Math.sqrt(gX*gX + gY*gY + gZ*gZ);
if (gForce > 2.25) { if (gForce > 2.25) {
Log.d(TAG, "Detected shake " + gForce); Log.d(TAG, "Detected shake " + gForce);
mSleepTimer.onShake(); mSleepTimer.restart();
} }
} }