From 5f856b6148bf075809f18ad40afa39c575d9ccce Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Sun, 11 Apr 2010 10:44:53 -0500 Subject: [PATCH] Share menu code between FullPlaybackActivity and SongSelector This allows SongSelector to have a shuffle menu item --- .../kreed/vanilla/FullPlaybackActivity.java | 21 +++++++++++--- src/org/kreed/vanilla/SongSelector.java | 29 +++++-------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/org/kreed/vanilla/FullPlaybackActivity.java b/src/org/kreed/vanilla/FullPlaybackActivity.java index dc4d2409..be87a134 100644 --- a/src/org/kreed/vanilla/FullPlaybackActivity.java +++ b/src/org/kreed/vanilla/FullPlaybackActivity.java @@ -64,6 +64,7 @@ public class FullPlaybackActivity extends PlaybackActivity implements View.OnCli private static final int MENU_PREFS = 2; private static final int MENU_LIBRARY = 3; private static final int MENU_SHUFFLE = 4; + private static final int MENU_PLAYBACK = 5; @Override public void onCreate(Bundle icicle) @@ -174,14 +175,23 @@ public class FullPlaybackActivity extends PlaybackActivity implements View.OnCli } } - @Override - public boolean onCreateOptionsMenu(Menu menu) + public void fillMenu(Menu menu, boolean fromDialog) { - menu.add(0, MENU_DISPLAY, 0, R.string.display_mode).setIcon(android.R.drawable.ic_menu_gallery); - menu.add(0, MENU_LIBRARY, 0, R.string.library).setIcon(android.R.drawable.ic_menu_add); + if (fromDialog) { + menu.add(0, MENU_PLAYBACK, 0, R.string.playback_view).setIcon(android.R.drawable.ic_menu_gallery); + } else { + menu.add(0, MENU_DISPLAY, 0, R.string.display_mode).setIcon(android.R.drawable.ic_menu_gallery); + menu.add(0, MENU_LIBRARY, 0, R.string.library).setIcon(android.R.drawable.ic_menu_add); + } menu.add(0, MENU_SHUFFLE, 0, R.string.shuffle_enable).setIcon(R.drawable.ic_menu_shuffle); menu.add(0, MENU_PREFS, 0, R.string.settings).setIcon(android.R.drawable.ic_menu_preferences); menu.add(0, MENU_QUIT, 0, R.string.quit).setIcon(android.R.drawable.ic_menu_close_clear_cancel); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + fillMenu(menu, false); return true; } @@ -206,6 +216,9 @@ public class FullPlaybackActivity extends PlaybackActivity implements View.OnCli case MENU_PREFS: startActivity(new Intent(this, PreferencesActivity.class)); break; + case MENU_PLAYBACK: + dismissDialog(SONG_SELECTOR); + break; case MENU_LIBRARY: showDialog(SONG_SELECTOR); break; diff --git a/src/org/kreed/vanilla/SongSelector.java b/src/org/kreed/vanilla/SongSelector.java index 37ad0e9f..640cb429 100644 --- a/src/org/kreed/vanilla/SongSelector.java +++ b/src/org/kreed/vanilla/SongSelector.java @@ -267,9 +267,6 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe private static final int MENU_PLAY = 0; private static final int MENU_ENQUEUE = 1; private static final int MENU_EXPAND = 2; - private static final int MENU_PLAYBACK = 3; - private static final int MENU_PREFS = 4; - private static final int MENU_QUIT = 5; @Override public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo absInfo) @@ -308,30 +305,20 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe @Override public boolean onCreateOptionsMenu(Menu menu) { - menu.add(0, MENU_PLAYBACK, 0, R.string.playback_view).setIcon(android.R.drawable.ic_menu_gallery); - menu.add(0, MENU_PREFS, 0, R.string.settings).setIcon(android.R.drawable.ic_menu_preferences); - menu.add(0, MENU_QUIT, 0, R.string.quit).setIcon(android.R.drawable.ic_menu_close_clear_cancel); + ((FullPlaybackActivity)getOwnerActivity()).fillMenu(menu, true); return true; } + @Override + public boolean onPrepareOptionsMenu(Menu menu) + { + return ((FullPlaybackActivity)getOwnerActivity()).onPrepareOptionsMenu(menu); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case MENU_QUIT: - ContextApplication.quit(getContext()); - break; - case MENU_PREFS: - getContext().startActivity(new Intent(getContext(), PreferencesActivity.class)); - break; - case MENU_PLAYBACK: - dismiss(); - break; - default: - return false; - } - - return true; + return ((FullPlaybackActivity)getOwnerActivity()).onOptionsItemSelected(item); } // onContextItemSelected and friends are not called when they should be. Do