From eda55a01bb3fda47afb4c62f3c62569c0b481d6b Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sat, 29 Sep 2012 20:14:48 +0200 Subject: [PATCH] implement ability to jump by queue position/id --- .../android/vanilla/PlaybackService.java | 15 +++++++++++++++ .../android/vanilla/SongTimeline.java | 17 ++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/ch/blinkenlights/android/vanilla/PlaybackService.java b/src/ch/blinkenlights/android/vanilla/PlaybackService.java index c0dc4a8c..03b8cdb0 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaybackService.java +++ b/src/ch/blinkenlights/android/vanilla/PlaybackService.java @@ -1898,4 +1898,19 @@ public final class PlaybackService extends Service { return mTimeline.getLength(); } + + /** + * Returns 'Song' with given id from timeline + */ + public Song getSongByQueuePosition(int id) { + return mTimeline.getSongByQueuePosition(id); + } + + public void jumpToQueuePosition(int id) { + pause(); + mTimeline.setCurrentQueuePosition(id); + setCurrentSong(0); + play(); + } + } diff --git a/src/ch/blinkenlights/android/vanilla/SongTimeline.java b/src/ch/blinkenlights/android/vanilla/SongTimeline.java index 8fb16c2e..e273db48 100644 --- a/src/ch/blinkenlights/android/vanilla/SongTimeline.java +++ b/src/ch/blinkenlights/android/vanilla/SongTimeline.java @@ -557,7 +557,22 @@ public final class SongTimeline { mCurrentPos = pos; mShuffledSongs = null; } - + + /** + * Hard-Jump to given queue position + */ + public Song setCurrentQueuePosition(int pos) { + mCurrentPos = pos; + return getSong(0); + } + + /** + * Returns 'Song' at given position in queue + */ + public Song getSongByQueuePosition(int id) { + return mSongs.get(id); + } + /** * Move to the next or previous song or album. *