support batch actions for parent items
This commit is contained in:
parent
d5f8d54199
commit
d85f95da91
5 changed files with 41 additions and 11 deletions
|
|
@ -22,9 +22,11 @@ import com.dkanada.gramophone.helper.menu.PlaylistMenuHelper;
|
|||
import com.dkanada.gramophone.helper.menu.SongsMenuHelper;
|
||||
import com.dkanada.gramophone.interfaces.CabHolder;
|
||||
import com.dkanada.gramophone.model.Playlist;
|
||||
import com.dkanada.gramophone.util.QueryUtil;
|
||||
import com.dkanada.gramophone.util.NavigationUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import org.jellyfin.apiclient.model.querying.ItemQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewHolder, Playlist> {
|
||||
|
|
@ -126,13 +128,17 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
|
|||
|
||||
@Override
|
||||
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull List<Playlist> selection) {
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.action_delete_playlist:
|
||||
DeletePlaylistDialog.create(selection).show(activity.getSupportFragmentManager(), DeletePlaylistDialog.TAG);
|
||||
break;
|
||||
default:
|
||||
SongsMenuHelper.handleMenuClick(activity, new ArrayList<>(), menuItem.getItemId());
|
||||
break;
|
||||
if (menuItem.getItemId() == R.id.action_delete_playlist) {
|
||||
DeletePlaylistDialog.create(selection).show(activity.getSupportFragmentManager(), DeletePlaylistDialog.TAG);
|
||||
} else {
|
||||
for (Playlist playlist : selection) {
|
||||
ItemQuery songs = new ItemQuery();
|
||||
songs.setParentId(playlist.id);
|
||||
|
||||
QueryUtil.getSongs(songs, (media) -> {
|
||||
SongsMenuHelper.handleMenuClick(activity, media, menuItem.getItemId());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
|
|||
import androidx.core.util.Pair;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.dkanada.gramophone.util.QueryUtil;
|
||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||
import com.kabouzeid.appthemehelper.util.MaterialValueHelper;
|
||||
import com.dkanada.gramophone.R;
|
||||
|
|
@ -28,7 +29,8 @@ import com.dkanada.gramophone.util.NavigationUtil;
|
|||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import org.jellyfin.apiclient.model.querying.ItemQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder, Album> implements FastScrollRecyclerView.SectionedAdapter {
|
||||
|
|
@ -170,7 +172,14 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
|||
|
||||
@Override
|
||||
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull List<Album> selection) {
|
||||
SongsMenuHelper.handleMenuClick(activity, new ArrayList<>(), menuItem.getItemId());
|
||||
for (Album album : selection) {
|
||||
ItemQuery songs = new ItemQuery();
|
||||
songs.setParentId(album.id);
|
||||
|
||||
QueryUtil.getSongs(songs, (media) -> {
|
||||
SongsMenuHelper.handleMenuClick(activity, media, menuItem.getItemId());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
|
|||
import androidx.core.util.Pair;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.dkanada.gramophone.util.QueryUtil;
|
||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||
import com.kabouzeid.appthemehelper.util.MaterialValueHelper;
|
||||
import com.dkanada.gramophone.R;
|
||||
|
|
@ -26,6 +27,8 @@ import com.dkanada.gramophone.util.MusicUtil;
|
|||
import com.dkanada.gramophone.util.NavigationUtil;
|
||||
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
|
||||
|
||||
import org.jellyfin.apiclient.model.querying.ItemQuery;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -159,7 +162,17 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
|
|||
|
||||
@Override
|
||||
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull List<Artist> selection) {
|
||||
SongsMenuHelper.handleMenuClick(activity, new ArrayList<>(), menuItem.getItemId());
|
||||
List<String> ids = new ArrayList<>();
|
||||
for (Artist artist : selection) {
|
||||
ids.add(artist.id);
|
||||
}
|
||||
|
||||
ItemQuery songs = new ItemQuery();
|
||||
songs.setArtistIds(ids.toArray(new String[0]));
|
||||
|
||||
QueryUtil.getSongs(songs, (media) -> {
|
||||
SongsMenuHelper.handleMenuClick(activity, media, menuItem.getItemId());
|
||||
});
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
android:id="@+id/action_add_to_playlist"
|
||||
android:icon="@drawable/ic_playlist_add_white_24dp"
|
||||
android:title="@string/action_add_to_playlist"
|
||||
android:visible="false"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
android:id="@+id/action_add_to_playlist"
|
||||
android:icon="@drawable/ic_playlist_add_white_24dp"
|
||||
android:title="@string/action_add_to_playlist"
|
||||
android:visible="false"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue