From a13f7a7107a50550d388cf5fc37a234492767abe Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Sun, 11 Apr 2010 15:27:48 -0500 Subject: [PATCH] Save song flags in state --- src/org/kreed/vanilla/PlaybackService.java | 2 +- src/org/kreed/vanilla/PlaybackServiceState.java | 17 ++++++++++++----- src/org/kreed/vanilla/Song.java | 6 ++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/org/kreed/vanilla/PlaybackService.java b/src/org/kreed/vanilla/PlaybackService.java index e66c4306..f201cc60 100644 --- a/src/org/kreed/vanilla/PlaybackService.java +++ b/src/org/kreed/vanilla/PlaybackService.java @@ -127,7 +127,7 @@ public class PlaybackService extends Service implements Handler.Callback, MediaP mPendingSeek = state.savedSeek; for (int i = 0; i != state.savedIds.length; ++i) - mSongTimeline.add(new Song(state.savedIds[i])); + mSongTimeline.add(new Song(state.savedIds[i], state.savedFlags[i])); } else { mSongTimeline = new ArrayList(); } diff --git a/src/org/kreed/vanilla/PlaybackServiceState.java b/src/org/kreed/vanilla/PlaybackServiceState.java index e8a9fb27..d8ff93ec 100644 --- a/src/org/kreed/vanilla/PlaybackServiceState.java +++ b/src/org/kreed/vanilla/PlaybackServiceState.java @@ -29,10 +29,11 @@ import android.util.Log; public class PlaybackServiceState { private static final String STATE_FILE = "state"; - private static final long STATE_FILE_MAGIC = 0x8a9d3f9fca31L; + private static final long STATE_FILE_MAGIC = 0x8a9d3f2fca31L; public int savedIndex; public long[] savedIds; + public int[] savedFlags; public int savedSeek; public boolean load(Context context) @@ -45,8 +46,11 @@ public class PlaybackServiceState { if (n > 0) { savedIds = new long[n]; - for (int i = 0; i != n; ++i) + savedFlags = new int[n]; + for (int i = 0; i != n; ++i) { savedIds[i] = in.readLong(); + savedFlags[i] = in.readInt(); + } savedSeek = in.readInt(); return true; @@ -70,12 +74,15 @@ public class PlaybackServiceState { out.writeInt(index); int n = songs == null ? 0 : songs.size(); out.writeInt(n); - for (int i = 0; i != n; ++i) - out.writeLong(songs.get(i).id); + for (int i = 0; i != n; ++i) { + Song song = songs.get(i); + out.writeLong(song.id); + out.writeInt(song.flags); + } out.writeInt(seek); out.close(); } catch (IOException e) { Log.w("VanillaMusic", e); } } -} \ No newline at end of file +} diff --git a/src/org/kreed/vanilla/Song.java b/src/org/kreed/vanilla/Song.java index 95b0839d..e9ae5281 100644 --- a/src/org/kreed/vanilla/Song.java +++ b/src/org/kreed/vanilla/Song.java @@ -58,6 +58,12 @@ public class Song implements Parcelable { this.id = id; } + public Song(long id, int flags) + { + this.id = id; + this.flags = flags; + } + public boolean populate(boolean force) { if (path != null && !force)