diff --git a/res/values/translatable.xml b/res/values/translatable.xml index ec1367fa..f3846696 100644 --- a/res/values/translatable.xml +++ b/res/values/translatable.xml @@ -29,6 +29,13 @@ THE SOFTWARE. Settings Library Display Mode + No shuffle + Shuffle songs + Shuffle albums + No repeat + Repeat + Repeat current song + Random Random enabled Failed to load song %s. It may be corrupt or missing. Queue cleared. diff --git a/src/org/kreed/vanilla/FullPlaybackActivity.java b/src/org/kreed/vanilla/FullPlaybackActivity.java index 3f79155f..251a05ac 100644 --- a/src/org/kreed/vanilla/FullPlaybackActivity.java +++ b/src/org/kreed/vanilla/FullPlaybackActivity.java @@ -30,6 +30,7 @@ import android.os.Handler; import android.os.Message; import android.text.format.DateUtils; import android.util.Log; +import android.view.ContextMenu; import android.view.Gravity; import android.view.KeyEvent; import android.view.Menu; @@ -158,8 +159,10 @@ public class FullPlaybackActivity extends PlaybackActivity mShuffleButton = (ImageButton)findViewById(R.id.shuffle); mShuffleButton.setOnClickListener(this); + registerForContextMenu(mShuffleButton); mEndButton = (ImageButton)findViewById(R.id.end_action); mEndButton.setOnClickListener(this); + registerForContextMenu(mEndButton); setControlsVisible(settings.getBoolean("visible_controls", true)); setDuration(0); @@ -503,4 +506,34 @@ public class FullPlaybackActivity extends PlaybackActivity return false; } + + private static final int GROUP_SHUFFLE = 0; + private static final int GROUP_FINISH = 1; + + @Override + public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) + { + if (view == mShuffleButton) { + menu.add(GROUP_SHUFFLE, SongTimeline.SHUFFLE_NONE, 0, R.string.no_shuffle); + menu.add(GROUP_SHUFFLE, SongTimeline.SHUFFLE_SONGS, 0, R.string.shuffle_songs); + menu.add(GROUP_SHUFFLE, SongTimeline.SHUFFLE_ALBUMS, 0, R.string.shuffle_albums); + } else if (view == mEndButton) { + menu.add(GROUP_FINISH, SongTimeline.FINISH_STOP, 0, R.string.no_repeat); + menu.add(GROUP_FINISH, SongTimeline.FINISH_REPEAT, 0, R.string.repeat); + menu.add(GROUP_FINISH, SongTimeline.FINISH_REPEAT_CURRENT, 0, R.string.repeat_current_song); + menu.add(GROUP_FINISH, SongTimeline.FINISH_RANDOM, 0, R.string.random); + } + } + + @Override + public boolean onContextItemSelected(MenuItem item) + { + int group = item.getGroupId(); + int id = item.getItemId(); + if (group == GROUP_SHUFFLE) + setState(PlaybackService.get(this).setShuffleMode(id)); + else if (group == GROUP_FINISH) + setState(PlaybackService.get(this).setFinishAction(id)); + return true; + } }