OSDN Git Service

Eleven: Add a play Album option on songs
authorLinus Lee <llee@cyngn.com>
Sat, 18 Apr 2015 00:08:07 +0000 (17:08 -0700)
committerLinus Lee <llee@cyngn.com>
Fri, 29 May 2015 21:56:52 +0000 (21:56 +0000)
Change-Id: I62bf42f98ba8457b0121b723b7e4ace218805577
(cherry picked from commit 40c5425291bd07cb17a31f8d8169e142a51b7a19)

res/values/strings.xml
src/com/cyanogenmod/eleven/menu/FragmentMenuItems.java
src/com/cyanogenmod/eleven/utils/PopupMenuHelper.java
src/com/cyanogenmod/eleven/utils/SongPopupMenuHelper.java

index 5343188..7e96954 100644 (file)
@@ -99,6 +99,7 @@
     <!-- Context menu items -->
     <string name="context_menu_play_selection">Play</string>
     <string name="context_menu_play_next">Play next</string>
+    <string name="context_menu_play_album">Play album</string>
     <string name="context_menu_more_by_artist">More by artist</string>
     <string name="context_menu_rename_playlist">Rename</string>
     <string name="context_menu_delete">Delete</string>
index ff9d4c8..df34ef4 100644 (file)
@@ -21,6 +21,7 @@ package com.cyanogenmod.eleven.menu;
 public interface FragmentMenuItems {
     int PLAY_SELECTION      =  10; // play the selected song, album, etc.
     int PLAY_NEXT           =  20; // queue a track to be played next
+    int PLAY_ALBUM          =  25; // play the album that this track belongs to
     //  SHUFFLE             =  30  // defined in res/menu
     int ADD_TO_QUEUE        =  40; // add to end of current queue
     int ADD_TO_PLAYLIST     =  50; // append to a playlist
index 910ee83..f3d1239 100644 (file)
@@ -152,6 +152,13 @@ public abstract class PopupMenuHelper implements PopupMenu.OnMenuItemClickListen
     }
 
     /**
+     * Called when the user clicks "play album".
+     */
+    protected void playAlbum() {
+        throw new UnsupportedOperationException("Method Not Implemented!");
+    }
+
+    /**
      * Creates the pop up menu by inflating the menu items
      * @param menu Menu to use for adding to
      */
@@ -201,6 +208,7 @@ public abstract class PopupMenuHelper implements PopupMenu.OnMenuItemClickListen
                 return new int[] {
                         FragmentMenuItems.PLAY_SELECTION,
                         FragmentMenuItems.PLAY_NEXT,
+                        FragmentMenuItems.PLAY_ALBUM,
                         FragmentMenuItems.ADD_TO_QUEUE,
                         FragmentMenuItems.ADD_TO_PLAYLIST,
                         FragmentMenuItems.MORE_BY_ARTIST,
@@ -295,6 +303,8 @@ public abstract class PopupMenuHelper implements PopupMenu.OnMenuItemClickListen
                 return R.string.remove_from_queue;
             case FragmentMenuItems.PLAY_NEXT:
                 return R.string.context_menu_play_next;
+            case FragmentMenuItems.PLAY_ALBUM:
+                return R.string.context_menu_play_album;
             case FragmentMenuItems.CHANGE_IMAGE:
                 return R.string.context_menu_change_image;
         }
@@ -371,6 +381,9 @@ public abstract class PopupMenuHelper implements PopupMenu.OnMenuItemClickListen
                 case FragmentMenuItems.PLAY_NEXT:
                     playNext();
                     return true;
+                case FragmentMenuItems.PLAY_ALBUM:
+                    playAlbum();
+                    return true;
                 default:
                     break;
             }
index e8b01a5..17fc4d5 100644 (file)
@@ -47,6 +47,11 @@ public abstract class SongPopupMenuHelper extends PopupMenuHelper {
     }
 
     @Override
+    protected void playAlbum() {
+        MusicUtils.playAlbum(mActivity, mSong.mAlbumId, 0, false);
+    }
+
+    @Override
     protected long[] getIdList() {
         return new long[] { mSong.mSongId };
     }