Merge "Voice search icon replaced by X on typing."
This commit is contained in:
committed by
Android (Google) Code Review
commit
846b762474
@@ -627,12 +627,33 @@ public class SearchView extends LinearLayout implements CollapsibleActionView {
|
||||
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
|
||||
int width = MeasureSpec.getSize(widthMeasureSpec);
|
||||
|
||||
if ((widthMode == MeasureSpec.AT_MOST || widthMode == MeasureSpec.EXACTLY) && mMaxWidth > 0
|
||||
&& width > mMaxWidth) {
|
||||
super.onMeasure(MeasureSpec.makeMeasureSpec(mMaxWidth, widthMode), heightMeasureSpec);
|
||||
} else {
|
||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
switch (widthMode) {
|
||||
case MeasureSpec.AT_MOST:
|
||||
// If there is an upper limit, don't exceed maximum width (explicit or implicit)
|
||||
if (mMaxWidth > 0) {
|
||||
width = Math.min(mMaxWidth, width);
|
||||
} else {
|
||||
width = Math.min(getPreferredWidth(), width);
|
||||
}
|
||||
break;
|
||||
case MeasureSpec.EXACTLY:
|
||||
// If an exact width is specified, still don't exceed any specified maximum width
|
||||
if (mMaxWidth > 0) {
|
||||
width = Math.min(mMaxWidth, width);
|
||||
}
|
||||
break;
|
||||
case MeasureSpec.UNSPECIFIED:
|
||||
// Use maximum width, if specified, else preferred width
|
||||
width = mMaxWidth > 0 ? mMaxWidth : getPreferredWidth();
|
||||
break;
|
||||
}
|
||||
widthMode = MeasureSpec.EXACTLY;
|
||||
super.onMeasure(MeasureSpec.makeMeasureSpec(width, widthMode), heightMeasureSpec);
|
||||
}
|
||||
|
||||
private int getPreferredWidth() {
|
||||
return getContext().getResources()
|
||||
.getDimensionPixelSize(R.dimen.search_view_preferred_width);
|
||||
}
|
||||
|
||||
private void updateViewsVisibility(final boolean collapsed) {
|
||||
@@ -695,7 +716,7 @@ public class SearchView extends LinearLayout implements CollapsibleActionView {
|
||||
// Should we show the close button? It is not shown if there's no focus,
|
||||
// field is not iconified by default and there is no text in it.
|
||||
final boolean showClose = hasText || (mIconifiedByDefault && !mExpandedInActionView);
|
||||
mCloseButton.setVisibility(showClose ? VISIBLE : INVISIBLE);
|
||||
mCloseButton.setVisibility(showClose ? VISIBLE : GONE);
|
||||
mCloseButton.getDrawable().setState(hasText ? ENABLED_STATE_SET : EMPTY_STATE_SET);
|
||||
}
|
||||
|
||||
@@ -991,7 +1012,7 @@ public class SearchView extends LinearLayout implements CollapsibleActionView {
|
||||
*/
|
||||
private void updateVoiceButton(boolean empty) {
|
||||
int visibility = GONE;
|
||||
if (mVoiceButtonEnabled && !isIconified() && (empty || !mSubmitButtonEnabled)) {
|
||||
if (mVoiceButtonEnabled && !isIconified() && empty) {
|
||||
visibility = VISIBLE;
|
||||
mSubmitButton.setVisibility(GONE);
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<LinearLayout
|
||||
android:id="@id/closeButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="48dp"
|
||||
android:orientation="horizontal"
|
||||
android:focusable="true"
|
||||
android:background="?android:attr/selectableItemBackground">
|
||||
@@ -51,9 +51,10 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/search_app_icon"
|
||||
android:layout_height="48dip"
|
||||
android:layout_width="48dip"
|
||||
android:layout_height="32dip"
|
||||
android:layout_width="32dip"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:scaleType="centerInside"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/search_close_btn"
|
||||
android:layout_width="@dimen/dropdownitem_icon_width"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="8dip"
|
||||
android:paddingRight="8dip"
|
||||
|
||||
@@ -125,6 +125,9 @@
|
||||
<!-- Minimum width of the search view text entry area. -->
|
||||
<dimen name="search_view_text_min_width">160dip</dimen>
|
||||
|
||||
<!-- Preferred width of the search view. -->
|
||||
<dimen name="search_view_preferred_width">320dip</dimen>
|
||||
|
||||
<!-- Dialog title height -->
|
||||
<dimen name="alert_dialog_title_height">64dip</dimen>
|
||||
<!-- Dialog button bar height -->
|
||||
@@ -155,12 +158,12 @@
|
||||
<dimen name="default_gap">16dip</dimen>
|
||||
|
||||
<!-- Text padding for dropdown items -->
|
||||
<dimen name="dropdownitem_text_padding_left">6dip</dimen>
|
||||
<dimen name="dropdownitem_text_padding_left">8dip</dimen>
|
||||
|
||||
<!-- Text padding for dropdown items -->
|
||||
<dimen name="dropdownitem_text_padding_right">6dip</dimen>
|
||||
<dimen name="dropdownitem_text_padding_right">8dip</dimen>
|
||||
|
||||
<!-- Width of the icon in a dropdown list -->
|
||||
<dimen name="dropdownitem_icon_width">48dip</dimen>
|
||||
<dimen name="dropdownitem_icon_width">32dip</dimen>
|
||||
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user