Disable clear menu item on NotRecentlyPlayed (#620)
* Disable clear menu item on NotRecentlyPlayed, small menu refactoring * Save few clock ticks
This commit is contained in:
parent
f1932d05c8
commit
93bb9cf7fc
4 changed files with 34 additions and 14 deletions
|
|
@ -30,7 +30,6 @@ import com.kabouzeid.gramophone.model.AbsCustomPlaylist;
|
||||||
import com.kabouzeid.gramophone.model.Playlist;
|
import com.kabouzeid.gramophone.model.Playlist;
|
||||||
import com.kabouzeid.gramophone.model.Song;
|
import com.kabouzeid.gramophone.model.Song;
|
||||||
import com.kabouzeid.gramophone.model.smartplaylist.AbsSmartPlaylist;
|
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.MusicUtil;
|
||||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||||
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
||||||
|
|
@ -144,7 +143,9 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
|
||||||
Playlist playlist = selection.get(i);
|
Playlist playlist = selection.get(i);
|
||||||
if (playlist instanceof AbsSmartPlaylist) {
|
if (playlist instanceof AbsSmartPlaylist) {
|
||||||
AbsSmartPlaylist absSmartPlaylist = (AbsSmartPlaylist) playlist;
|
AbsSmartPlaylist absSmartPlaylist = (AbsSmartPlaylist) playlist;
|
||||||
ClearSmartPlaylistDialog.create(absSmartPlaylist).show(activity.getSupportFragmentManager(), "CLEAR_PLAYLIST_" + absSmartPlaylist.name);
|
if (absSmartPlaylist.isClearable()) {
|
||||||
|
ClearSmartPlaylistDialog.create(absSmartPlaylist).show(activity.getSupportFragmentManager(), "CLEAR_PLAYLIST_" + absSmartPlaylist.name);
|
||||||
|
}
|
||||||
selection.remove(playlist);
|
selection.remove(playlist);
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
|
|
@ -241,20 +242,28 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
|
||||||
menu.setOnClickListener(view -> {
|
menu.setOnClickListener(view -> {
|
||||||
final Playlist playlist = dataSet.get(getAdapterPosition());
|
final Playlist playlist = dataSet.get(getAdapterPosition());
|
||||||
final PopupMenu popupMenu = new PopupMenu(activity, view);
|
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 AbsSmartPlaylist) {
|
||||||
if (playlist instanceof LastAddedPlaylist) {
|
popupMenu.inflate(R.menu.menu_item_smart_playlist);
|
||||||
popupMenu.getMenu().findItem(R.id.action_clear_playlist).setVisible(false);
|
final AbsSmartPlaylist smartPlaylist = (AbsSmartPlaylist) playlist;
|
||||||
}
|
if (!smartPlaylist.isClearable()) {
|
||||||
popupMenu.setOnMenuItemClickListener(item -> {
|
popupMenu.getMenu().findItem(R.id.action_clear_playlist).setVisible(false);
|
||||||
if (item.getItemId() == R.id.action_clear_playlist) {
|
}
|
||||||
if (playlist instanceof AbsSmartPlaylist) {
|
popupMenu.setOnMenuItemClickListener(item -> {
|
||||||
ClearSmartPlaylistDialog.create((AbsSmartPlaylist) playlist).show(activity.getSupportFragmentManager(), "CLEAR_SMART_PLAYLIST_" + playlist.name);
|
if (item.getItemId() == R.id.action_clear_playlist) {
|
||||||
|
ClearSmartPlaylistDialog.create(smartPlaylist).show(activity.getSupportFragmentManager(), "CLEAR_SMART_PLAYLIST_" + smartPlaylist.name);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
return PlaylistMenuHelper.handleMenuClick(
|
||||||
return PlaylistMenuHelper.handleMenuClick(
|
|
||||||
activity, dataSet.get(getAdapterPosition()), item);
|
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();
|
popupMenu.show();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,10 @@ public abstract class AbsSmartPlaylist extends AbsCustomPlaylist {
|
||||||
|
|
||||||
public abstract void clear(Context context);
|
public abstract void clear(Context context);
|
||||||
|
|
||||||
|
public boolean isClearable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,10 @@ public class LastAddedPlaylist extends AbsSmartPlaylist {
|
||||||
public void clear(@NonNull Context context) {
|
public void clear(@NonNull Context context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isClearable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int describeContents() {
|
public int describeContents() {
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,12 @@ public class NotRecentlyPlayedPlaylist extends AbsSmartPlaylist {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clear(@NonNull Context context) {
|
public void clear(@NonNull Context context) {
|
||||||
HistoryStore.getInstance(context).clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isClearable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int describeContents() {
|
public int describeContents() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue