diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java index eb89aa72..f435d505 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java @@ -31,6 +31,8 @@ import com.kabouzeid.appthemehelper.util.ColorUtil; import com.kabouzeid.appthemehelper.util.MaterialValueHelper; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.song.AlbumSongAdapter; +import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog; +import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog; import com.kabouzeid.gramophone.dialogs.SleepTimerDialog; import com.kabouzeid.gramophone.glide.PhonographColoredTarget; import com.kabouzeid.gramophone.glide.SongGlideRequest; @@ -45,6 +47,7 @@ import com.kabouzeid.gramophone.loader.AlbumLoader; import com.kabouzeid.gramophone.misc.SimpleObservableScrollViewCallbacks; import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader; import com.kabouzeid.gramophone.model.Album; +import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity; import com.kabouzeid.gramophone.ui.activities.tageditor.AbsTagEditorActivity; import com.kabouzeid.gramophone.ui.activities.tageditor.AlbumTagEditorActivity; @@ -54,6 +57,8 @@ import com.kabouzeid.gramophone.util.Util; import java.util.Locale; +import java.util.ArrayList; + import butterknife.BindView; import butterknife.ButterKnife; import retrofit2.Call; @@ -298,6 +303,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); + final ArrayList songs = adapter.getDataSet(); switch (id) { case R.id.action_sleep_timer: new SleepTimerDialog().show(getSupportFragmentManager(), "SET_SLEEP_TIMER"); @@ -306,7 +312,19 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements NavigationUtil.openEqualizer(this); return true; case R.id.action_shuffle_album: - MusicPlayerRemote.openAndShuffleQueue(adapter.getDataSet(), true); + MusicPlayerRemote.openAndShuffleQueue(songs, true); + return true; + case R.id.action_play_next: + MusicPlayerRemote.playNext(songs); + return true; + case R.id.action_add_to_current_playing: + MusicPlayerRemote.enqueue(songs); + return true; + case R.id.action_add_to_playlist: + AddToPlaylistDialog.create(songs).show(getSupportFragmentManager(), "ADD_PLAYLIST"); + return true; + case R.id.action_delete_from_device: + DeleteSongsDialog.create(songs).show(getSupportFragmentManager(), "DELETE_SONGS"); return true; case android.R.id.home: super.onBackPressed(); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java index 48a1fe87..a63fe2c7 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java @@ -34,6 +34,7 @@ import com.kabouzeid.appthemehelper.util.MaterialValueHelper; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.album.HorizontalAlbumAdapter; import com.kabouzeid.gramophone.adapter.song.ArtistSongAdapter; +import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog; import com.kabouzeid.gramophone.dialogs.SleepTimerDialog; import com.kabouzeid.gramophone.glide.PhonographColoredTarget; import com.kabouzeid.gramophone.glide.artistimage.ArtistImage; @@ -49,6 +50,7 @@ import com.kabouzeid.gramophone.loader.ArtistLoader; import com.kabouzeid.gramophone.misc.SimpleObservableScrollViewCallbacks; import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader; 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.ArtistSignatureUtil; import com.kabouzeid.gramophone.util.NavigationUtil; @@ -58,6 +60,8 @@ import com.kabouzeid.gramophone.util.Util; import java.util.Locale; +import java.util.ArrayList; + import butterknife.BindView; import butterknife.ButterKnife; import retrofit2.Call; @@ -341,6 +345,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); + final ArrayList songs = songAdapter.getDataSet(); switch (id) { case R.id.action_sleep_timer: new SleepTimerDialog().show(getSupportFragmentManager(), "SET_SLEEP_TIMER"); @@ -349,7 +354,16 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement NavigationUtil.openEqualizer(this); return true; case R.id.action_shuffle_artist: - MusicPlayerRemote.openAndShuffleQueue(songAdapter.getDataSet(), true); + MusicPlayerRemote.openAndShuffleQueue(songs, true); + return true; + case R.id.action_play_next: + MusicPlayerRemote.playNext(songs); + return true; + case R.id.action_add_to_current_playing: + MusicPlayerRemote.enqueue(songs); + return true; + case R.id.action_add_to_playlist: + AddToPlaylistDialog.create(songs).show(getSupportFragmentManager(), "ADD_PLAYLIST"); return true; case android.R.id.home: super.onBackPressed(); diff --git a/app/src/main/res/menu/menu_album_detail.xml b/app/src/main/res/menu/menu_album_detail.xml index e5be6b4d..b2bb1d54 100644 --- a/app/src/main/res/menu/menu_album_detail.xml +++ b/app/src/main/res/menu/menu_album_detail.xml @@ -8,12 +8,27 @@ android:icon="@drawable/ic_shuffle_white_24dp" android:title="@string/action_shuffle_album" app:showAsAction="ifRoom" /> - - + + + + + + + + + + + + + +