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
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,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;
}
}
}

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();
}
}