Issue #2381 - restart sleep timer on play

This commit is contained in:
egsavage 2019-10-13 20:58:28 -04:00
parent fa0fbc2bc5
commit a59fd67178
3 changed files with 19 additions and 4 deletions

View File

@ -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);

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.
*/
@ -428,14 +438,16 @@ public class PlaybackServiceTaskManager {
return timeLeft;
}
public void onShake() {
public void restart() {
postCallback(() -> {
setSleepTimer(waitingTime, shakeToReset, vibrate);
callback.onSleepTimerReset();
});
if (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);
if (gForce > 2.25) {
Log.d(TAG, "Detected shake " + gForce);
mSleepTimer.onShake();
mSleepTimer.restart();
}
}