Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 167d69ac authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Voice search icon replaced by X on typing.

Also, adjust width measurements to work for 32dip icons in actionbar.

Bug: 5160466
Change-Id: I7197d710de16f92af8ea797ac504a3a73ee090d9
parent 6e97ed21
Loading
Loading
Loading
Loading
+28 −7
Original line number Diff line number Diff line
@@ -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);
        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 {
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
                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);
        }
+4 −3
Original line number Diff line number Diff line
@@ -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>
+1 −1
Original line number Diff line number Diff line
@@ -103,7 +103,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"
+6 −3
Original line number Diff line number Diff line
@@ -121,6 +121,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 -->
@@ -151,12 +154,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>