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 9d4360d2..98cf2dd2 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/PlaylistAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/PlaylistAdapter.java @@ -30,7 +30,6 @@ 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.LastAddedPlaylist; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.PlaylistsUtil; @@ -144,7 +143,9 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter { final Playlist playlist = dataSet.get(getAdapterPosition()); final PopupMenu popupMenu = new PopupMenu(activity, view); - popupMenu.inflate(getItemViewType() == SMART_PLAYLIST ? R.menu.menu_item_smart_playlist : R.menu.menu_item_playlist); - if (playlist instanceof LastAddedPlaylist) { - popupMenu.getMenu().findItem(R.id.action_clear_playlist).setVisible(false); - } - popupMenu.setOnMenuItemClickListener(item -> { - if (item.getItemId() == R.id.action_clear_playlist) { - if (playlist instanceof AbsSmartPlaylist) { - ClearSmartPlaylistDialog.create((AbsSmartPlaylist) playlist).show(activity.getSupportFragmentManager(), "CLEAR_SMART_PLAYLIST_" + playlist.name); + if (playlist instanceof AbsSmartPlaylist) { + popupMenu.inflate(R.menu.menu_item_smart_playlist); + final AbsSmartPlaylist smartPlaylist = (AbsSmartPlaylist) playlist; + if (!smartPlaylist.isClearable()) { + popupMenu.getMenu().findItem(R.id.action_clear_playlist).setVisible(false); + } + popupMenu.setOnMenuItemClickListener(item -> { + if (item.getItemId() == R.id.action_clear_playlist) { + ClearSmartPlaylistDialog.create(smartPlaylist).show(activity.getSupportFragmentManager(), "CLEAR_SMART_PLAYLIST_" + smartPlaylist.name); return true; } - } - return PlaylistMenuHelper.handleMenuClick( + return PlaylistMenuHelper.handleMenuClick( activity, dataSet.get(getAdapterPosition()), item); - }); + }); + } + else { + popupMenu.inflate(R.menu.menu_item_playlist); + popupMenu.setOnMenuItemClickListener(item -> { + return PlaylistMenuHelper.handleMenuClick( + activity, dataSet.get(getAdapterPosition()), item); + }); + } popupMenu.show(); }); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/AbsSmartPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/AbsSmartPlaylist.java index d21e39b3..d011c880 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/AbsSmartPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/AbsSmartPlaylist.java @@ -27,6 +27,10 @@ public abstract class AbsSmartPlaylist extends AbsCustomPlaylist { public abstract void clear(Context context); + public boolean isClearable() { + return true; + } + @Override public int hashCode() { final int prime = 31; diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java index 23735aa1..cd142a85 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java @@ -29,6 +29,10 @@ public class LastAddedPlaylist extends AbsSmartPlaylist { public void clear(@NonNull Context context) { } + @Override + public boolean isClearable() { + return false; + } @Override public int describeContents() { diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/NotRecentlyPlayedPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/NotRecentlyPlayedPlaylist.java index a33bc8e2..1ef4fab2 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/NotRecentlyPlayedPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/NotRecentlyPlayedPlaylist.java @@ -28,9 +28,12 @@ public class NotRecentlyPlayedPlaylist extends AbsSmartPlaylist { @Override public void clear(@NonNull Context context) { - HistoryStore.getInstance(context).clear(); } + @Override + public boolean isClearable() { + return false; + } @Override public int describeContents() {