From d0a88387afe6c2a0d6651129e1be701432aa54c0 Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Thu, 22 Apr 2010 13:57:06 -0500 Subject: [PATCH] Don't show the search box in the selector by default --- res/drawable/search_background.xml | 8 ++ res/layout/song_selector.xml | 108 ++++++++++-------- res/values/strings.xml | 1 + .../kreed/vanilla/FullPlaybackActivity.java | 2 + src/org/kreed/vanilla/SongSelector.java | 48 ++++++-- 5 files changed, 110 insertions(+), 57 deletions(-) create mode 100644 res/drawable/search_background.xml diff --git a/res/drawable/search_background.xml b/res/drawable/search_background.xml new file mode 100644 index 00000000..f31f0480 --- /dev/null +++ b/res/drawable/search_background.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/res/layout/song_selector.xml b/res/layout/song_selector.xml index eefcf533..4813b626 100644 --- a/res/layout/song_selector.xml +++ b/res/layout/song_selector.xml @@ -1,56 +1,69 @@ - - + - + - - + - - + - - - - - + android:layout_height="fill_parent"> + + + + + + + + + + android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:paddingTop="4dip" + android:paddingLeft="4dip" + android:paddingRight="4dip" + android:visibility="gone" + android:background="@drawable/search_background"> - - + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index f3bde3a9..a168d29c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -25,6 +25,7 @@ Play Expand Now Playing + Search Enqueued %s Playing %s diff --git a/src/org/kreed/vanilla/FullPlaybackActivity.java b/src/org/kreed/vanilla/FullPlaybackActivity.java index 818b5065..1dc76a26 100644 --- a/src/org/kreed/vanilla/FullPlaybackActivity.java +++ b/src/org/kreed/vanilla/FullPlaybackActivity.java @@ -68,6 +68,7 @@ public class FullPlaybackActivity extends PlaybackActivity implements View.OnCli private static final int MENU_SHUFFLE = 4; private static final int MENU_PLAYBACK = 5; private static final int MENU_REPEAT = 6; + public static final int MENU_SEARCH = 7; @Override public void onCreate(Bundle icicle) @@ -177,6 +178,7 @@ public class FullPlaybackActivity extends PlaybackActivity implements View.OnCli { if (fromDialog) { menu.add(0, MENU_PLAYBACK, 0, R.string.playback_view).setIcon(android.R.drawable.ic_menu_gallery); + menu.add(0, MENU_SEARCH, 0, R.string.search).setIcon(android.R.drawable.ic_menu_search); } else { menu.add(0, MENU_LIBRARY, 0, R.string.library).setIcon(android.R.drawable.ic_menu_add); menu.add(0, MENU_DISPLAY, 0, R.string.display_mode).setIcon(android.R.drawable.ic_menu_gallery); diff --git a/src/org/kreed/vanilla/SongSelector.java b/src/org/kreed/vanilla/SongSelector.java index cfffebeb..2bf3dd28 100644 --- a/src/org/kreed/vanilla/SongSelector.java +++ b/src/org/kreed/vanilla/SongSelector.java @@ -62,11 +62,16 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe private Handler mHandler = new Handler(this); private TabHost mTabHost; + + private View mSearchBox; + private boolean mSearchBoxVisible; private TextView mTextFilter; private View mClearButton; + private View mStatus; private TextView mStatusText; private ControlButton mPlayPauseButton; + private ViewGroup mLimiterViews; private boolean mOnStartUp; @@ -108,6 +113,8 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe mTabHost.addTab(mTabHost.newTabSpec("tab_albums").setIndicator(res.getText(R.string.albums), res.getDrawable(R.drawable.tab_albums)).setContent(R.id.album_list)); mTabHost.addTab(mTabHost.newTabSpec("tab_songs").setIndicator(res.getText(R.string.songs), res.getDrawable(R.drawable.tab_songs)).setContent(R.id.song_list)); + mSearchBox = findViewById(R.id.search_box); + mTextFilter = (TextView)findViewById(R.id.filter_text); mTextFilter.addTextChangedListener(this); @@ -167,21 +174,32 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe { switch (keyCode) { case KeyEvent.KEYCODE_BACK: - if (mOnStartUp) + if (mSearchBoxVisible) { + mTextFilter.setText(""); + setSearchBoxVisible(false); + } else if (mOnStartUp) { getOwnerActivity().finish(); - else + } else { dismiss(); + } return true; case KeyEvent.KEYCODE_SEARCH: - dismiss(); + setSearchBoxVisible(!mSearchBoxVisible); return true; default: if (super.onKeyDown(keyCode, event)) return true; - mTextFilter.requestFocus(); - return mTextFilter.onKeyDown(keyCode, event); + if (mTextFilter.onKeyDown(keyCode, event)) { + if (!mSearchBoxVisible) + setSearchBoxVisible(true); + else + mTextFilter.requestFocus(); + return true; + } } + + return false; } private void sendSongIntent(MediaAdapter.MediaView view, int action) @@ -283,7 +301,10 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe { int id = view.getId(); if (view == mClearButton) { - mTextFilter.setText(""); + if (mTextFilter.getText().length() == 0) + setSearchBoxVisible(false); + else + mTextFilter.setText(""); } else if (id == R.id.play_pause) { try { ((FullPlaybackActivity)getOwnerActivity()).mCoverView.go(0); @@ -369,6 +390,11 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe @Override public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == FullPlaybackActivity.MENU_SEARCH) { + setSearchBoxVisible(!mSearchBoxVisible); + return true; + } + return ((FullPlaybackActivity)getOwnerActivity()).onOptionsItemSelected(item); } @@ -452,4 +478,12 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe updateState(intent.getIntExtra("state", 0)); } } -} + + private void setSearchBoxVisible(boolean visible) + { + mSearchBoxVisible = visible; + mSearchBox.setVisibility(visible ? View.VISIBLE : View.GONE); + if (visible) + mSearchBox.requestFocus(); + } +} \ No newline at end of file