From 4089cb31cd6febc4af8a7b2fdbdbcb80d819118a Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 17 Jul 2019 02:05:17 -0700 Subject: [PATCH] roll CustomPlaylist class into SmartPlaylist --- .../gramophone/adapter/PlaylistAdapter.java | 9 +++--- .../dialogs/ClearSmartPlaylistDialog.java | 2 +- .../gramophone/helper/M3UWriter.java | 7 ++--- .../helper/menu/PlaylistMenuHelper.java | 6 ++-- .../gramophone/model/AbsCustomPlaylist.java | 28 ------------------- .../AbsSmartPlaylist.java | 11 ++++++-- .../FrequentPlaylist.java | 2 +- .../LatestPlaylist.java | 2 +- .../RecentPlaylist.java | 2 +- .../ShufflePlaylist.java | 2 +- .../gramophone/service/MusicService.java | 6 ++-- .../AppShortcutLauncherActivity.java | 6 ++-- .../ui/activities/PlaylistDetailActivity.java | 12 ++++---- .../library/pager/PlaylistsFragment.java | 6 ++-- 14 files changed, 38 insertions(+), 63 deletions(-) delete mode 100644 app/src/main/java/com/kabouzeid/gramophone/model/AbsCustomPlaylist.java rename app/src/main/java/com/kabouzeid/gramophone/model/{smartplaylist => playlist}/AbsSmartPlaylist.java (84%) rename app/src/main/java/com/kabouzeid/gramophone/model/{smartplaylist => playlist}/FrequentPlaylist.java (96%) rename app/src/main/java/com/kabouzeid/gramophone/model/{smartplaylist => playlist}/LatestPlaylist.java (95%) rename app/src/main/java/com/kabouzeid/gramophone/model/{smartplaylist => playlist}/RecentPlaylist.java (96%) rename app/src/main/java/com/kabouzeid/gramophone/model/{smartplaylist => playlist}/ShufflePlaylist.java (95%) diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/PlaylistAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/PlaylistAdapter.java index bbe2f87c..0c0946ed 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/PlaylistAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/PlaylistAdapter.java @@ -26,11 +26,10 @@ import com.kabouzeid.gramophone.helper.menu.SongsMenuHelper; import com.kabouzeid.gramophone.interfaces.CabHolder; import com.kabouzeid.gramophone.loader.PlaylistSongLoader; import com.kabouzeid.gramophone.misc.WeakContextAsyncTask; -import com.kabouzeid.gramophone.model.AbsCustomPlaylist; import com.kabouzeid.gramophone.model.Playlist; import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.model.smartplaylist.AbsSmartPlaylist; -import com.kabouzeid.gramophone.model.smartplaylist.LatestPlaylist; +import com.kabouzeid.gramophone.model.playlist.AbsSmartPlaylist; +import com.kabouzeid.gramophone.model.playlist.LatestPlaylist; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.PlaylistsUtil; @@ -207,8 +206,8 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter getSongList(@NonNull List playlists) { final List songs = new ArrayList<>(); for (Playlist playlist : playlists) { - if (playlist instanceof AbsCustomPlaylist) { - songs.addAll(((AbsCustomPlaylist) playlist).getSongs(activity)); + if (playlist instanceof AbsSmartPlaylist) { + songs.addAll(((AbsSmartPlaylist) playlist).getSongs(activity)); } else { songs.addAll(PlaylistSongLoader.getPlaylistSongList(activity, playlist.id)); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/ClearSmartPlaylistDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/ClearSmartPlaylistDialog.java index 8f5017d1..d6fb4cf4 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/ClearSmartPlaylistDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/ClearSmartPlaylistDialog.java @@ -8,7 +8,7 @@ import android.text.Html; import com.afollestad.materialdialogs.MaterialDialog; import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.model.smartplaylist.AbsSmartPlaylist; +import com.kabouzeid.gramophone.model.playlist.AbsSmartPlaylist; /** * @author Karim Abou Zeid (kabouzeid) diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/M3UWriter.java b/app/src/main/java/com/kabouzeid/gramophone/helper/M3UWriter.java index 7c36c24c..cc08bda9 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/M3UWriter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/M3UWriter.java @@ -3,15 +3,14 @@ package com.kabouzeid.gramophone.helper; import android.content.Context; import com.kabouzeid.gramophone.loader.PlaylistSongLoader; -import com.kabouzeid.gramophone.model.AbsCustomPlaylist; import com.kabouzeid.gramophone.model.Playlist; import com.kabouzeid.gramophone.model.Song; +import com.kabouzeid.gramophone.model.playlist.AbsSmartPlaylist; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.List; public class M3UWriter implements M3UConstants { @@ -22,8 +21,8 @@ public class M3UWriter implements M3UConstants { File file = new File(dir, playlist.name.concat("." + EXTENSION)); List songs; - if (playlist instanceof AbsCustomPlaylist) { - songs = ((AbsCustomPlaylist) playlist).getSongs(context); + if (playlist instanceof AbsSmartPlaylist) { + songs = ((AbsSmartPlaylist) playlist).getSongs(context); } else { songs = PlaylistSongLoader.getPlaylistSongList(context, playlist.id); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/menu/PlaylistMenuHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/menu/PlaylistMenuHelper.java index 13067c1b..593349f9 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/menu/PlaylistMenuHelper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/menu/PlaylistMenuHelper.java @@ -15,9 +15,9 @@ import com.kabouzeid.gramophone.dialogs.RenamePlaylistDialog; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; import com.kabouzeid.gramophone.loader.PlaylistSongLoader; import com.kabouzeid.gramophone.misc.WeakContextAsyncTask; -import com.kabouzeid.gramophone.model.AbsCustomPlaylist; import com.kabouzeid.gramophone.model.Playlist; import com.kabouzeid.gramophone.model.Song; +import com.kabouzeid.gramophone.model.playlist.AbsSmartPlaylist; import com.kabouzeid.gramophone.util.PlaylistsUtil; import java.io.IOException; @@ -57,8 +57,8 @@ public class PlaylistMenuHelper { @NonNull private static List getPlaylistSongs(@NonNull Activity activity, Playlist playlist) { - return playlist instanceof AbsCustomPlaylist ? - ((AbsCustomPlaylist) playlist).getSongs(activity) : + return playlist instanceof AbsSmartPlaylist ? + ((AbsSmartPlaylist) playlist).getSongs(activity) : PlaylistSongLoader.getPlaylistSongList(activity, playlist.id); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/AbsCustomPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/AbsCustomPlaylist.java deleted file mode 100644 index 0cf2af7f..00000000 --- a/app/src/main/java/com/kabouzeid/gramophone/model/AbsCustomPlaylist.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.kabouzeid.gramophone.model; - -import android.content.Context; -import android.os.Parcel; -import androidx.annotation.NonNull; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author Karim Abou Zeid (kabouzeid) - */ - -public abstract class AbsCustomPlaylist extends Playlist { - public AbsCustomPlaylist(int id, String name) { - super(id, name); - } - - public AbsCustomPlaylist() { - } - - public AbsCustomPlaylist(Parcel in) { - super(in); - } - - @NonNull - public abstract List getSongs(Context context); -} diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/AbsSmartPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/AbsSmartPlaylist.java similarity index 84% rename from app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/AbsSmartPlaylist.java rename to app/src/main/java/com/kabouzeid/gramophone/model/playlist/AbsSmartPlaylist.java index 09ccc2c5..0216cb92 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/AbsSmartPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/AbsSmartPlaylist.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.model.smartplaylist; +package com.kabouzeid.gramophone.model.playlist; import android.content.Context; import android.os.Parcel; @@ -6,12 +6,15 @@ import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.model.AbsCustomPlaylist; +import com.kabouzeid.gramophone.model.Playlist; +import com.kabouzeid.gramophone.model.Song; + +import java.util.List; /** * @author Karim Abou Zeid (kabouzeid) */ -public abstract class AbsSmartPlaylist extends AbsCustomPlaylist { +public abstract class AbsSmartPlaylist extends Playlist { @DrawableRes public final int iconRes; @@ -27,6 +30,8 @@ public abstract class AbsSmartPlaylist extends AbsCustomPlaylist { public abstract void clear(Context context); + public abstract List getSongs(Context context); + @Override public int hashCode() { final int prime = 31; diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/FrequentPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/FrequentPlaylist.java similarity index 96% rename from app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/FrequentPlaylist.java rename to app/src/main/java/com/kabouzeid/gramophone/model/playlist/FrequentPlaylist.java index b1ef6886..77015186 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/FrequentPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/FrequentPlaylist.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.model.smartplaylist; +package com.kabouzeid.gramophone.model.playlist; import android.content.Context; import android.os.Parcel; diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LatestPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/LatestPlaylist.java similarity index 95% rename from app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LatestPlaylist.java rename to app/src/main/java/com/kabouzeid/gramophone/model/playlist/LatestPlaylist.java index 596ecbc3..064afb2f 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LatestPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/LatestPlaylist.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.model.smartplaylist; +package com.kabouzeid.gramophone.model.playlist; import android.content.Context; import android.os.Parcel; diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/RecentPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/RecentPlaylist.java similarity index 96% rename from app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/RecentPlaylist.java rename to app/src/main/java/com/kabouzeid/gramophone/model/playlist/RecentPlaylist.java index 7a65fef5..4d84df84 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/RecentPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/RecentPlaylist.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.model.smartplaylist; +package com.kabouzeid.gramophone.model.playlist; import android.content.Context; import android.os.Parcel; diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/ShufflePlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/ShufflePlaylist.java similarity index 95% rename from app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/ShufflePlaylist.java rename to app/src/main/java/com/kabouzeid/gramophone/model/playlist/ShufflePlaylist.java index 6acccb8f..928ae198 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/ShufflePlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/playlist/ShufflePlaylist.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.model.smartplaylist; +package com.kabouzeid.gramophone.model.playlist; import android.content.Context; import android.os.Parcel; diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java index 45014f01..17437ba1 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -40,6 +40,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; import com.kabouzeid.gramophone.R; +import com.kabouzeid.gramophone.model.playlist.AbsSmartPlaylist; import com.kabouzeid.gramophone.widgets.AppWidgetBig; import com.kabouzeid.gramophone.widgets.AppWidgetCard; import com.kabouzeid.gramophone.widgets.AppWidgetClassic; @@ -49,7 +50,6 @@ import com.kabouzeid.gramophone.glide.SongGlideRequest; import com.kabouzeid.gramophone.helper.ShuffleHelper; import com.kabouzeid.gramophone.helper.StopWatch; import com.kabouzeid.gramophone.loader.PlaylistSongLoader; -import com.kabouzeid.gramophone.model.AbsCustomPlaylist; import com.kabouzeid.gramophone.model.Playlist; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.provider.HistoryStore; @@ -307,8 +307,8 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP int shuffleMode = intent.getIntExtra(INTENT_EXTRA_SHUFFLE_MODE, getShuffleMode()); if (playlist != null) { List playlistSongs; - if (playlist instanceof AbsCustomPlaylist) { - playlistSongs = ((AbsCustomPlaylist) playlist).getSongs(getApplicationContext()); + if (playlist instanceof AbsSmartPlaylist) { + playlistSongs = ((AbsSmartPlaylist) playlist).getSongs(getApplicationContext()); } else { //noinspection unchecked playlistSongs = (List) PlaylistSongLoader.getPlaylistSongList(getApplicationContext(), playlist.id); diff --git a/app/src/main/java/com/kabouzeid/gramophone/shortcuts/AppShortcutLauncherActivity.java b/app/src/main/java/com/kabouzeid/gramophone/shortcuts/AppShortcutLauncherActivity.java index 5161a0f3..cfdb8b02 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/shortcuts/AppShortcutLauncherActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/shortcuts/AppShortcutLauncherActivity.java @@ -8,9 +8,9 @@ import com.kabouzeid.gramophone.shortcuts.shortcuttype.LatestShortcutType; import com.kabouzeid.gramophone.shortcuts.shortcuttype.ShuffleShortcutType; import com.kabouzeid.gramophone.shortcuts.shortcuttype.FrequentShortcutType; import com.kabouzeid.gramophone.model.Playlist; -import com.kabouzeid.gramophone.model.smartplaylist.LatestPlaylist; -import com.kabouzeid.gramophone.model.smartplaylist.FrequentPlaylist; -import com.kabouzeid.gramophone.model.smartplaylist.ShufflePlaylist; +import com.kabouzeid.gramophone.model.playlist.LatestPlaylist; +import com.kabouzeid.gramophone.model.playlist.FrequentPlaylist; +import com.kabouzeid.gramophone.model.playlist.ShufflePlaylist; import com.kabouzeid.gramophone.service.MusicService; /** diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java index 0b9666c6..5b1af0fc 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java @@ -31,9 +31,9 @@ import com.kabouzeid.gramophone.interfaces.LoaderIds; import com.kabouzeid.gramophone.loader.PlaylistLoader; import com.kabouzeid.gramophone.loader.PlaylistSongLoader; import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader; -import com.kabouzeid.gramophone.model.AbsCustomPlaylist; import com.kabouzeid.gramophone.model.Playlist; import com.kabouzeid.gramophone.model.Song; +import com.kabouzeid.gramophone.model.playlist.AbsSmartPlaylist; import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity; import com.kabouzeid.gramophone.util.PhonographColorUtil; import com.kabouzeid.gramophone.util.PlaylistsUtil; @@ -95,7 +95,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme private void setUpRecyclerView() { ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) recyclerView), ThemeStore.accentColor(this)); recyclerView.setLayoutManager(new LinearLayoutManager(this)); - if (playlist instanceof AbsCustomPlaylist) { + if (playlist instanceof AbsSmartPlaylist) { adapter = new PlaylistSongAdapter(this, new ArrayList<>(), R.layout.item_list, false, this); recyclerView.setAdapter(adapter); } else { @@ -140,7 +140,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme @Override public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(playlist instanceof AbsCustomPlaylist ? R.menu.menu_smart_playlist_detail : R.menu.menu_playlist_detail, menu); + getMenuInflater().inflate(playlist instanceof AbsSmartPlaylist ? R.menu.menu_smart_playlist_detail : R.menu.menu_playlist_detail, menu); return super.onCreateOptionsMenu(menu); } @@ -183,7 +183,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme public void onMediaStoreChanged() { super.onMediaStoreChanged(); - if (!(playlist instanceof AbsCustomPlaylist)) { + if (!(playlist instanceof AbsSmartPlaylist)) { // Playlist deleted if (!PlaylistsUtil.doesPlaylistExist(this, playlist.id)) { finish(); @@ -264,8 +264,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme @Override public List loadInBackground() { - if (playlist instanceof AbsCustomPlaylist) { - return ((AbsCustomPlaylist) playlist).getSongs(getContext()); + if (playlist instanceof AbsSmartPlaylist) { + return ((AbsSmartPlaylist) playlist).getSongs(getContext()); } else { //noinspection unchecked return (List) PlaylistSongLoader.getPlaylistSongList(getContext(), playlist.id); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/PlaylistsFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/PlaylistsFragment.java index e731edfd..1a67708e 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/PlaylistsFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/PlaylistsFragment.java @@ -14,9 +14,9 @@ import com.kabouzeid.gramophone.interfaces.LoaderIds; import com.kabouzeid.gramophone.loader.PlaylistLoader; import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader; import com.kabouzeid.gramophone.model.Playlist; -import com.kabouzeid.gramophone.model.smartplaylist.RecentPlaylist; -import com.kabouzeid.gramophone.model.smartplaylist.LatestPlaylist; -import com.kabouzeid.gramophone.model.smartplaylist.FrequentPlaylist; +import com.kabouzeid.gramophone.model.playlist.RecentPlaylist; +import com.kabouzeid.gramophone.model.playlist.LatestPlaylist; +import com.kabouzeid.gramophone.model.playlist.FrequentPlaylist; import java.util.ArrayList; import java.util.List;