From cb8debb2f4e208ecbd4d84e934e43c396f991313 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sat, 7 Nov 2015 11:52:58 +0100 Subject: [PATCH] Implement artists limiter Set and used by the genre limiter --- .../android/vanilla/LibraryPagerAdapter.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java b/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java index 7eb19de3..3a418ff7 100644 --- a/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java +++ b/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java @@ -130,6 +130,10 @@ public class LibraryPagerAdapter * The index of the current page. */ private int mCurrentPage; + /** + * A limiter that should be set when the album adapter is created. + */ + private Limiter mPendingArtistLimiter; /** * A limiter that should be set when the album adapter is created. */ @@ -310,7 +314,7 @@ public class LibraryPagerAdapter switch (type) { case MediaUtils.TYPE_ARTIST: - adapter = mArtistAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ARTIST, null, activity); + adapter = mArtistAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ARTIST, mPendingArtistLimiter, activity); mArtistAdapter.setExpandable(mSongsPosition != -1 || mAlbumsPosition != -1); mArtistHeader = header = (LinearLayout)inflater.inflate(R.layout.library_row_expandable, null); break; @@ -420,6 +424,7 @@ public class LibraryPagerAdapter public void restoreState(Parcelable state, ClassLoader loader) { Bundle in = (Bundle)state; + mPendingArtistLimiter = (Limiter)in.getSerializable("limiter_artists"); mPendingAlbumLimiter = (Limiter)in.getSerializable("limiter_albums"); mPendingSongLimiter = (Limiter)in.getSerializable("limiter_songs"); mPendingFileLimiter = (Limiter)in.getSerializable("limiter_files"); @@ -429,6 +434,8 @@ public class LibraryPagerAdapter public Parcelable saveState() { Bundle out = new Bundle(10); + if (mArtistAdapter != null) + out.putSerializable("limiter_artists", mArtistAdapter.getLimiter()); if (mAlbumAdapter != null) out.putSerializable("limiter_albums", mAlbumAdapter.getLimiter()); if (mSongAdapter != null) @@ -471,6 +478,13 @@ public class LibraryPagerAdapter requestRequery(mFilesAdapter); } } else { + if (mArtistAdapter == null) { + mPendingArtistLimiter = null; + } else { + mArtistAdapter.setLimiter(null); + loadSortOrder(mArtistAdapter); + requestRequery(mArtistAdapter); + } if (mAlbumAdapter == null) { mPendingAlbumLimiter = null; } else { @@ -531,6 +545,13 @@ public class LibraryPagerAdapter tab = mSongsPosition; break; case MediaUtils.TYPE_GENRE: + if (mArtistAdapter == null) { + mPendingArtistLimiter = limiter; + } else { + mArtistAdapter.setLimiter(limiter); + loadSortOrder(mArtistAdapter); + requestRequery(mArtistAdapter); + } if (mAlbumAdapter == null) { mPendingAlbumLimiter = limiter; } else { @@ -545,7 +566,7 @@ public class LibraryPagerAdapter loadSortOrder(mSongAdapter); requestRequery(mSongAdapter); } - tab = mSongsPosition; + tab = mArtistsPosition; break; case MediaUtils.TYPE_FILE: if (mFilesAdapter == null) {