From cee223cdbbb5f0bb7c9dc8c3cbb1522c8e6d99d2 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Wed, 15 Jul 2015 17:12:33 +0200 Subject: [PATCH] View as function now working in all fragments. (Except playlist fragment because it makes no sense there.) --- .../adapter/album/AlbumAdapter.java | 4 - .../adapter/artist/ArtistAdapter.java | 77 +++++++++++++++++-- .../adapter/song/AlbumSongAdapter.java | 4 +- .../adapter/song/PlaylistSongAdapter.java | 4 +- .../song/SmartPlaylistSongAdapter.java | 4 +- .../gramophone/adapter/song/SongAdapter.java | 70 ++++++++++++++++- .../ui/activities/AlbumDetailActivity.java | 2 +- .../ui/activities/PlaylistDetailActivity.java | 4 +- .../AlbumViewFragment.java | 2 +- .../ArtistViewFragment.java | 29 ++++++- .../SongViewFragment.java | 33 +++++++- 11 files changed, 203 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java index b2876f0b..0d993eab 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java @@ -67,10 +67,6 @@ public class AlbumAdapter extends AbsMultiSelectAdapter getDataSet() { - return dataSet; - } - public void swapDataSet(List dataSet) { this.dataSet = dataSet; notifyDataSetChanged(); diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/artist/ArtistAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/artist/ArtistAdapter.java index 496a1a9e..9858b0a5 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/artist/ArtistAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/artist/ArtistAdapter.java @@ -1,5 +1,6 @@ package com.kabouzeid.gramophone.adapter.artist; +import android.graphics.Bitmap; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -21,10 +22,17 @@ import com.kabouzeid.gramophone.loader.ArtistSongLoader; import com.kabouzeid.gramophone.model.Artist; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; +import com.nostra13.universalimageloader.core.assist.FailReason; +import com.nostra13.universalimageloader.core.assist.LoadedFrom; +import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; +import com.nostra13.universalimageloader.core.imageaware.ImageAware; +import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; +import com.nostra13.universalimageloader.core.process.BitmapProcessor; import java.util.ArrayList; import java.util.List; @@ -33,27 +41,34 @@ import java.util.List; * @author Karim Abou Zeid (kabouzeid) */ public class ArtistAdapter extends AbsMultiSelectAdapter { + private static final int FADE_IN_TIME = 500; + protected final AppCompatActivity activity; protected ArrayList dataSet; + protected int itemLayoutRes; - public ArtistAdapter(@NonNull AppCompatActivity activity, ArrayList dataSet, @LayoutRes int itemLayoutRes, @Nullable CabHolder cabHolder) { + protected boolean usePalette = false; + + public ArtistAdapter(@NonNull AppCompatActivity activity, ArrayList dataSet, @LayoutRes int itemLayoutRes, boolean usePalette, @Nullable CabHolder cabHolder) { super(activity, cabHolder, R.menu.menu_media_selection); this.activity = activity; this.dataSet = dataSet; this.itemLayoutRes = itemLayoutRes; + this.usePalette = usePalette; setHasStableIds(true); } - public ArrayList getDataSet() { - return dataSet; - } - public void swapDataSet(ArrayList dataSet) { this.dataSet = dataSet; notifyDataSetChanged(); } + public void usePalette(boolean usePalette) { + this.usePalette = usePalette; + notifyDataSetChanged(); + } + @Override public long getItemId(int position) { return dataSet.get(position).id; @@ -73,6 +88,15 @@ public class ArtistAdapter extends AbsMultiSelectAdapter dataSet, @LayoutRes int itemLayoutRes, @Nullable CabHolder cabHolder) { - super(activity, dataSet, itemLayoutRes, cabHolder); + public AlbumSongAdapter(AppCompatActivity activity, ArrayList dataSet, @LayoutRes int itemLayoutRes, boolean usePalette, @Nullable CabHolder cabHolder) { + super(activity, dataSet, itemLayoutRes, usePalette, cabHolder); } @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlaylistSongAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlaylistSongAdapter.java index e9a9b43f..5c0209c8 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlaylistSongAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlaylistSongAdapter.java @@ -25,8 +25,8 @@ public class PlaylistSongAdapter extends SongAdapter { public static final String TAG = PlaylistSongAdapter.class.getSimpleName(); - public PlaylistSongAdapter(@NonNull AppCompatActivity activity, @NonNull ArrayList dataSet, @LayoutRes int itemLayoutRes, @Nullable CabHolder cabHolder) { - super(activity, (ArrayList) (List) dataSet, itemLayoutRes, cabHolder); + public PlaylistSongAdapter(@NonNull AppCompatActivity activity, @NonNull ArrayList dataSet, @LayoutRes int itemLayoutRes, boolean usePalette, @Nullable CabHolder cabHolder) { + super(activity, (ArrayList) (List) dataSet, itemLayoutRes, usePalette, cabHolder); overrideMultiSelectMenuRes(R.menu.menu_playlists_songs_selection); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SmartPlaylistSongAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SmartPlaylistSongAdapter.java index 9c4c4c9b..33ac1c8e 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SmartPlaylistSongAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SmartPlaylistSongAdapter.java @@ -28,8 +28,8 @@ public class SmartPlaylistSongAdapter extends SongAdapter { return dataSet.get(position).id; } - public SmartPlaylistSongAdapter(AppCompatActivity activity, @NonNull ArrayList dataSet, @LayoutRes int itemLayoutRes, @Nullable CabHolder cabHolder) { - super(activity, dataSet, itemLayoutRes, cabHolder); + public SmartPlaylistSongAdapter(AppCompatActivity activity, @NonNull ArrayList dataSet, @LayoutRes int itemLayoutRes, boolean usePalette, @Nullable CabHolder cabHolder) { + super(activity, dataSet, itemLayoutRes, usePalette, cabHolder); overrideMultiSelectMenuRes(R.menu.menu_cannot_delete_single_songs_playlist_songs_selection); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java index cd85aa67..e7e08e10 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java @@ -1,5 +1,6 @@ package com.kabouzeid.gramophone.adapter.song; +import android.graphics.Bitmap; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -21,11 +22,17 @@ import com.kabouzeid.gramophone.helper.menu.SongMenuHelper; import com.kabouzeid.gramophone.interfaces.CabHolder; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; +import com.nostra13.universalimageloader.core.assist.FailReason; +import com.nostra13.universalimageloader.core.assist.LoadedFrom; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; +import com.nostra13.universalimageloader.core.imageaware.ImageAware; +import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; +import com.nostra13.universalimageloader.core.process.BitmapProcessor; import java.util.ArrayList; @@ -42,11 +49,14 @@ public class SongAdapter extends AbsMultiSelectAdapter dataSet, @LayoutRes int itemLayoutRes, @Nullable CabHolder cabHolder) { + protected boolean usePalette = false; + + public SongAdapter(AppCompatActivity activity, ArrayList dataSet, @LayoutRes int itemLayoutRes, boolean usePalette, @Nullable CabHolder cabHolder) { super(activity, cabHolder, R.menu.menu_media_selection); this.activity = activity; this.dataSet = dataSet; this.itemLayoutRes = itemLayoutRes; + this.usePalette = usePalette; setHasStableIds(true); } @@ -55,6 +65,11 @@ public class SongAdapter extends AbsMultiSelectAdapter getDataSet() { return dataSet; } @@ -79,6 +94,15 @@ public class SongAdapter extends AbsMultiSelectAdapter { +public class ArtistViewFragment extends AbsMainActivityRecyclerViewLayoutModeFragment { public static final String TAG = ArtistViewFragment.class.getSimpleName(); @NonNull @Override protected GridLayoutManager createLayoutManager() { - return new GridLayoutManager(getActivity(), 2); + return new GridLayoutManager(getActivity(), getColumnNumber()); } @NonNull @@ -26,7 +27,8 @@ public class ArtistViewFragment extends AbsMainActivityRecyclerViewFragment { +public class SongViewFragment extends AbsMainActivityRecyclerViewLayoutModeFragment { public static final String TAG = SongViewFragment.class.getSimpleName(); @NonNull @Override protected GridLayoutManager createLayoutManager() { - return new GridLayoutManager(getActivity(), 1); + return new GridLayoutManager(getActivity(), getColumnNumber()); } @NonNull @Override protected SongAdapter createAdapter() { - return new SongAdapter(getMainActivity(), SongLoader.getAllSongs(getActivity()), R.layout.item_list, getMainActivity()); + return new SongAdapter( + getMainActivity(), + SongLoader.getAllSongs(getActivity()), + getItemLayout(), + loadUsePalette(), + getMainActivity()); } @Override @@ -35,4 +41,25 @@ public class SongViewFragment extends AbsMainActivityRecyclerViewFragment