diff --git a/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java b/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java index ee6a3eac..ff034206 100644 --- a/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java +++ b/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java @@ -303,9 +303,10 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity { super.onCreateOptionsMenu(menu); menu.add(0, MENU_DELETE, 30, R.string.delete); - menu.add(0, MENU_ENQUEUE_ALBUM, 30, R.string.enqueue_current_album).setIcon(R.drawable.ic_menu_add); - menu.add(0, MENU_ENQUEUE_ARTIST, 30, R.string.enqueue_current_artist).setIcon(R.drawable.ic_menu_add); - menu.add(0, MENU_ENQUEUE_GENRE, 30, R.string.enqueue_current_genre).setIcon(R.drawable.ic_menu_add); + menu.add(0, MENU_ENQUEUE_ALBUM, 30, R.string.enqueue_current_album); + menu.add(0, MENU_ENQUEUE_ARTIST, 30, R.string.enqueue_current_artist); + menu.add(0, MENU_ENQUEUE_GENRE, 30, R.string.enqueue_current_genre); + menu.add(0, MENU_ADD_TO_PLAYLIST, 30, R.string.add_to_playlist); mFavorites = menu.add(0, MENU_SONG_FAVORITE, 0, R.string.add_to_favorites).setIcon(R.drawable.btn_rating_star_off_mtrl_alpha).setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM); // ensure that mFavorites is updated @@ -316,6 +317,8 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity @Override public boolean onOptionsItemSelected(MenuItem item) { + final Song song = mCurrentSong; + switch (item.getItemId()) { case android.R.id.home: case MENU_LIBRARY: @@ -331,9 +334,7 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity PlaybackService.get(this).enqueueFromSong(PlaybackService.get(this).getSong(0), MediaUtils.TYPE_GENRE); break; case MENU_SONG_FAVORITE: - Song song = (PlaybackService.get(this)).getSong(0); long playlistId = Playlist.getFavoritesId(this, true); - if (song != null) { PlaylistTask playlistTask = new PlaylistTask(playlistId, getString(R.string.playlist_favorites)); playlistTask.audioIds = new ArrayList(); @@ -343,13 +344,21 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity mHandler.sendEmptyMessage(MSG_LOAD_FAVOURITE_INFO); } break; + case MENU_ADD_TO_PLAYLIST: + if (song != null) { + Intent intent = new Intent(); + intent.putExtra("type", MediaUtils.TYPE_SONG); + intent.putExtra("id", song.id); + PlaylistDialog dialog = new PlaylistDialog(this, intent); + dialog.show(getFragmentManager(), "PlaylistDialog"); + } + break; case MENU_DELETE: final PlaybackService playbackService = PlaybackService.get(this); - final Song sng = playbackService.getSong(0); final PlaybackActivity activity = this; - if (sng != null) { - String delete_message = getString(R.string.delete_file, sng.title); + if (song != null) { + String delete_message = getString(R.string.delete_file, song.title); AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle(R.string.delete); dialog @@ -359,7 +368,7 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity // MSG_DELETE expects an intent (usually called from listview) Intent intent = new Intent(); intent.putExtra(LibraryAdapter.DATA_TYPE, MediaUtils.TYPE_SONG); - intent.putExtra(LibraryAdapter.DATA_ID, sng.id); + intent.putExtra(LibraryAdapter.DATA_ID, song.id); mHandler.sendMessage(mHandler.obtainMessage(MSG_DELETE, intent)); } }) diff --git a/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java b/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java index 70f4b690..bbdb8fc1 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java +++ b/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java @@ -374,6 +374,7 @@ public abstract class PlaybackActivity extends Activity static final int MENU_SAVE_QUEUE_AS_PLAYLIST = 15; static final int MENU_DELETE = 16; static final int MENU_EMPTY_QUEUE = 17; + static final int MENU_ADD_TO_PLAYLIST = 18; @Override public boolean onCreateOptionsMenu(Menu menu) diff --git a/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java b/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java index 855831c1..fc9f240d 100644 --- a/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java +++ b/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java @@ -328,7 +328,7 @@ public class SlidingPlaybackActivity extends PlaybackActivity return; // not initialized yet final int[] slide_visible = {MENU_HIDE_QUEUE, MENU_CLEAR_QUEUE, MENU_EMPTY_QUEUE, MENU_SAVE_QUEUE_AS_PLAYLIST}; - final int[] slide_hidden = {MENU_SHOW_QUEUE, MENU_SORT, MENU_DELETE, MENU_ENQUEUE_ALBUM, MENU_ENQUEUE_ARTIST, MENU_ENQUEUE_GENRE}; + final int[] slide_hidden = {MENU_SHOW_QUEUE, MENU_SORT, MENU_DELETE, MENU_ENQUEUE_ALBUM, MENU_ENQUEUE_ARTIST, MENU_ENQUEUE_GENRE, MENU_ADD_TO_PLAYLIST}; for (int id : slide_visible) { MenuItem item = mMenu.findItem(id);