diff options
| author | 2011-03-08 18:43:37 -0800 | |
|---|---|---|
| committer | 2011-03-08 18:43:37 -0800 | |
| commit | ad8479ddccbeb9e26e3f9e377e205b8aa7adf0a4 (patch) | |
| tree | 0e127ebc7764d96fd53432b387804d74b504827b | |
| parent | 3e95ab97a2dbb4385eae8cb934664615d340ba5b (diff) | |
| parent | f9b9bd538d846d8931eb9cc4f05d51f4d19a318d (diff) | |
am f9b9bd53: am 1f111f11: Merge "Searchview layout cleanup. Some more tweaks required for Market." into honeycomb-mr1
* commit 'f9b9bd538d846d8931eb9cc4f05d51f4d19a318d':
Searchview layout cleanup. Some more tweaks required for Market.
| -rw-r--r-- | core/java/android/widget/SearchView.java | 40 | ||||
| -rw-r--r-- | core/res/res/layout/search_view.xml | 4 |
2 files changed, 26 insertions, 18 deletions
diff --git a/core/java/android/widget/SearchView.java b/core/java/android/widget/SearchView.java index 2d164fd75812..6088654a78c1 100644 --- a/core/java/android/widget/SearchView.java +++ b/core/java/android/widget/SearchView.java @@ -83,6 +83,7 @@ public class SearchView extends LinearLayout { private CursorAdapter mSuggestionsAdapter; private View mSearchButton; private View mSubmitButton; + private View mSearchPlate; private View mSubmitArea; private ImageView mCloseButton; private View mSearchEditFrame; @@ -190,6 +191,7 @@ public class SearchView extends LinearLayout { mQueryTextView.setSearchView(this); mSearchEditFrame = findViewById(R.id.search_edit_frame); + mSearchPlate = findViewById(R.id.search_plate); mSubmitArea = findViewById(R.id.submit_area); mSubmitButton = findViewById(R.id.search_go_btn); mCloseButton = (ImageView) findViewById(R.id.search_close_btn); @@ -258,6 +260,7 @@ public class SearchView extends LinearLayout { mSearchable = searchable; if (mSearchable != null) { updateSearchAutoComplete(); + updateQueryHint(); } // Cache the voice search capability mVoiceButtonEnabled = hasVoiceSearch(); @@ -575,19 +578,19 @@ public class SearchView extends LinearLayout { } private void updateSubmitButton(boolean hasText) { - mSubmitButton.setVisibility( - isSubmitAreaEnabled() ? (hasText ? VISIBLE : INVISIBLE) : GONE); + int visibility = GONE; + if (isSubmitAreaEnabled() && hasFocus() && (hasText || !mVoiceButtonEnabled)) { + visibility = VISIBLE; + } + mSubmitButton.setVisibility(visibility); } private void updateSubmitArea() { int visibility = GONE; - if (isSubmitAreaEnabled()) { - if (mSubmitButton.getVisibility() == VISIBLE - || mVoiceButton.getVisibility() == VISIBLE) { - visibility = VISIBLE; - } else { - visibility = INVISIBLE; - } + if (isSubmitAreaEnabled() + && (mSubmitButton.getVisibility() == VISIBLE + || mVoiceButton.getVisibility() == VISIBLE)) { + visibility = VISIBLE; } mSubmitArea.setVisibility(visibility); } @@ -601,6 +604,11 @@ public class SearchView extends LinearLayout { mCloseButton.getDrawable().setState(hasText ? ENABLED_STATE_SET : EMPTY_STATE_SET); } + private void updateFocusedState(boolean focused) { + mSearchPlate.getBackground().setState(focused ? FOCUSED_STATE_SET : EMPTY_STATE_SET); + mSubmitArea.getBackground().setState(focused ? FOCUSED_STATE_SET : EMPTY_STATE_SET); + } + private void setImeVisibility(boolean visible) { InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); @@ -851,16 +859,11 @@ public class SearchView extends LinearLayout { * Update the visibility of the voice button. There are actually two voice search modes, * either of which will activate the button. * @param empty whether the search query text field is empty. If it is, then the other - * criteria apply to make the voice button visible. Otherwise the voice button will not - * be visible - i.e., if the user has typed a query, remove the voice button. + * criteria apply to make the voice button visible. */ private void updateVoiceButton(boolean empty) { - // If the voice button is to be visible, show it - // Else, make it gone if the submit button is enabled, otherwise invisible to - // avoid losing the real-estate - int visibility = mSubmitButtonEnabled ? GONE : INVISIBLE; - - if (mVoiceButtonEnabled && !isIconified() && empty) { + int visibility = GONE; + if (mVoiceButtonEnabled && !isIconified() && (empty || !mSubmitButtonEnabled)) { visibility = VISIBLE; mSubmitButton.setVisibility(GONE); } @@ -958,7 +961,8 @@ public class SearchView extends LinearLayout { } void onTextFocusChanged() { - updateCloseButton(); + updateViewsVisibility(isIconified()); + updateFocusedState(mQueryTextView.hasFocus()); } private boolean onItemClicked(int position, int actionKey, String actionMsg) { diff --git a/core/res/res/layout/search_view.xml b/core/res/res/layout/search_view.xml index 93b6deb6e57e..c52b73f874d2 100644 --- a/core/res/res/layout/search_view.xml +++ b/core/res/res/layout/search_view.xml @@ -54,6 +54,10 @@ android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="center_vertical" + android:layout_marginLeft="4dip" + android:layout_marginRight="4dip" + android:layout_marginTop="4dip" + android:layout_marginBottom="4dip" android:orientation="horizontal"> <!-- Inner layout contains the app icon, button(s) and EditText --> |