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

Commit 2ac34120 authored by Romain Guy's avatar Romain Guy
Browse files

resolved conflicts for merge of 5a42b083 to master

parents 567c2e22 5a42b083
Loading
Loading
Loading
Loading
+35 −11
Original line number Diff line number Diff line
@@ -3562,17 +3562,6 @@
 visibility="public"
>
</field>
<field name="donut_resource_pad29"
 type="int"
 transient="false"
 volatile="false"
 value="16843395"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="donut_resource_pad3"
 type="int"
 transient="false"
@@ -3749,6 +3738,17 @@
 visibility="public"
>
</field>
<field name="dropDownHeight"
 type="int"
 transient="false"
 volatile="false"
 value="16843395"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="dropDownHintAppearance"
 type="int"
 transient="false"
@@ -166081,6 +166081,17 @@
 visibility="public"
>
</method>
<method name="getDropDownHeight"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getDropDownHorizontalOffset"
 return="int"
 abstract="false"
@@ -166352,6 +166363,19 @@
<parameter name="id" type="int">
</parameter>
</method>
<method name="setDropDownHeight"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="height" type="int">
</parameter>
</method>
<method name="setDropDownHorizontalOffset"
 return="void"
 abstract="false"
+80 −10
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ import com.android.internal.R;
 * @attr ref android.R.styleable#AutoCompleteTextView_dropDownSelector
 * @attr ref android.R.styleable#AutoCompleteTextView_dropDownAnchor
 * @attr ref android.R.styleable#AutoCompleteTextView_dropDownWidth
 * @attr ref android.R.styleable#AutoCompleteTextView_dropDownHeight
 */
public class AutoCompleteTextView extends EditText implements Filter.FilterListener {
    static final boolean DEBUG = false;
@@ -101,6 +102,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
    private int mDropDownAnchorId;
    private View mDropDownAnchorView;  // view is retrieved lazily from id once needed
    private int mDropDownWidth;
    private int mDropDownHeight;

    private Drawable mDropDownListHighlight;

@@ -166,6 +168,8 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
        // (for full screen width) or WRAP_CONTENT (to match the width of the anchored view).
        mDropDownWidth = a.getLayoutDimension(R.styleable.AutoCompleteTextView_dropDownWidth,
                ViewGroup.LayoutParams.WRAP_CONTENT);
        mDropDownHeight = a.getLayoutDimension(R.styleable.AutoCompleteTextView_dropDownHeight,
                ViewGroup.LayoutParams.WRAP_CONTENT);

        mHintResource = a.getResourceId(R.styleable.AutoCompleteTextView_completionHintView,
                R.layout.simple_dropdown_hint);
@@ -255,6 +259,34 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
        mDropDownWidth = width;
    }

    /**
     * <p>Returns the current height for the auto-complete drop down list. This can
     * be a fixed height, or {@link ViewGroup.LayoutParams#FILL_PARENT} to fill
     * the screen, or {@link ViewGroup.LayoutParams#WRAP_CONTENT} to fit the height
     * of the drop down's content.</p>
     *
     * @return the height for the drop down list
     *
     * @attr ref android.R.styleable#AutoCompleteTextView_dropDownHeight
     */
    public int getDropDownHeight() {
        return mDropDownHeight;
    }

    /**
     * <p>Sets the current height for the auto-complete drop down list. This can
     * be a fixed height, or {@link ViewGroup.LayoutParams#FILL_PARENT} to fill
     * the screen, or {@link ViewGroup.LayoutParams#WRAP_CONTENT} to fit the height
     * of the drop down's content.</p>
     *
     * @param height the height to use
     *
     * @attr ref android.R.styleable#AutoCompleteTextView_dropDownHeight
     */
    public void setDropDownHeight(int height) {
        mDropDownHeight = height;
    }
    
    /**
     * <p>Returns the id for the view that the auto-complete drop down list is anchored to.</p>
     *  
@@ -621,7 +653,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
                    // event to prevent focus from moving.
                    clearListSelection();
                    mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
                    mPopup.update();
                    showDropDown();
                    return true;
                } else {
                    // WARNING: Please read the comment where mListSelectionHidden
@@ -641,7 +673,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
                    // by ensuring it has focus and getting its window out
                    // of touch mode.
                    mDropDownList.requestFocusFromTouch();
                    mPopup.update();
                    showDropDown();

                    switch (keyCode) {
                        // avoid passing the focus from the text view to the
@@ -1038,8 +1070,13 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
     */
    public void showDropDown() {
        int height = buildDropDown();

        int widthSpec = 0;
        int heightSpec = 0;

        boolean noInputMethod = mPopup.getInputMethodMode() == PopupWindow.INPUT_METHOD_NOT_NEEDED;

        if (mPopup.isShowing()) {
            int widthSpec;
            if (mDropDownWidth == ViewGroup.LayoutParams.FILL_PARENT) {
                // The call to PopupWindow's update method below can accept -1 for any
                // value you do not want to update.
@@ -1049,20 +1086,51 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
            } else {
                widthSpec = mDropDownWidth;
            }

            if (mDropDownHeight == ViewGroup.LayoutParams.FILL_PARENT) {
                // The call to PopupWindow's update method below can accept -1 for any
                // value you do not want to update.
                heightSpec = noInputMethod ? height : ViewGroup.LayoutParams.FILL_PARENT;
                if (noInputMethod) {
                    mPopup.setWindowLayoutMode(
                            mDropDownWidth == ViewGroup.LayoutParams.FILL_PARENT ?
                                    ViewGroup.LayoutParams.FILL_PARENT : 0, 0);
                } else {
                    mPopup.setWindowLayoutMode(
                            mDropDownWidth == ViewGroup.LayoutParams.FILL_PARENT ?
                                    ViewGroup.LayoutParams.FILL_PARENT : 0,
                            ViewGroup.LayoutParams.FILL_PARENT);
                }
            } else if (mDropDownHeight == ViewGroup.LayoutParams.WRAP_CONTENT) {
                heightSpec = height;
            } else {
                heightSpec = mDropDownHeight;
            }

            mPopup.update(getDropDownAnchorView(), mDropDownHorizontalOffset,
                    mDropDownVerticalOffset, widthSpec, height);
                    mDropDownVerticalOffset, widthSpec, heightSpec);
        } else {
            if (mDropDownWidth == ViewGroup.LayoutParams.FILL_PARENT) {
                mPopup.setWindowLayoutMode(ViewGroup.LayoutParams.FILL_PARENT, 0);
                widthSpec = ViewGroup.LayoutParams.FILL_PARENT;
            } else {
                mPopup.setWindowLayoutMode(0, 0);
                if (mDropDownWidth == ViewGroup.LayoutParams.WRAP_CONTENT) {
                    mPopup.setWidth(getDropDownAnchorView().getWidth());
                } else {
                    mPopup.setWidth(mDropDownWidth);
                }
            }

            if (mDropDownHeight == ViewGroup.LayoutParams.FILL_PARENT) {
                heightSpec = ViewGroup.LayoutParams.FILL_PARENT;
            } else {
                if (mDropDownHeight == ViewGroup.LayoutParams.WRAP_CONTENT) {
                    mPopup.setHeight(height);
                } else {
                    mPopup.setHeight(mDropDownHeight);
                }
            }

            mPopup.setWindowLayoutMode(widthSpec, heightSpec);
            mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
            mPopup.setOutsideTouchable(true);
            mPopup.setTouchInterceptor(new PopupTouchIntercepter());
@@ -1178,10 +1246,12 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
        final int maxHeight = mPopup.getMaxAvailableHeight(
                getDropDownAnchorView(), mDropDownVerticalOffset, ignoreBottomDecorations);

        final int measuredHeight = mDropDownList.measureHeightOfChildren(MeasureSpec.UNSPECIFIED,
                0, ListView.NO_POSITION, maxHeight - otherHeights, 2) + otherHeights;
        if (mDropDownAlwaysVisible) {
            return maxHeight;
        }

        return mDropDownAlwaysVisible ? maxHeight : measuredHeight;
        return mDropDownList.measureHeightOfChildren(MeasureSpec.UNSPECIFIED,
                0, ListView.NO_POSITION, maxHeight - otherHeights, 2) + otherHeights;
    }

    private View getHintView(Context context) {
+5 −8
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ import java.lang.ref.WeakReference;
 */
public class PopupWindow {
    /**
     * Mode for {@link #setInputMethodMode(int): the requirements for the
     * Mode for {@link #setInputMethodMode(int)}: the requirements for the
     * input method should be based on the focusability of the popup.  That is
     * if it is focusable than it needs to work with the input method, else
     * it doesn't.
@@ -57,16 +57,15 @@ public class PopupWindow {
    public static final int INPUT_METHOD_FROM_FOCUSABLE = 0;
    
    /**
     * Mode for {@link #setInputMethodMode(int): this popup always needs to
     * Mode for {@link #setInputMethodMode(int)}: this popup always needs to
     * work with an input method, regardless of whether it is focusable.  This
     * means that it will always be displayed so that the user can also operate
     * the input method while it is shown.
     */
    
    public static final int INPUT_METHOD_NEEDED = 1;
    
    /**
     * Mode for {@link #setInputMethodMode(int): this popup never needs to
     * Mode for {@link #setInputMethodMode(int)}: this popup never needs to
     * work with an input method, regardless of whether it is focusable.  This
     * means that it will always be displayed to use as much space on the
     * screen as needed, regardless of whether this covers the input method.
@@ -1131,8 +1130,7 @@ public class PopupWindow {
            return;
        }

        WindowManager.LayoutParams p = (WindowManager.LayoutParams)
                mPopupView.getLayoutParams();
        WindowManager.LayoutParams p = (WindowManager.LayoutParams) mPopupView.getLayoutParams();

        boolean update = force;

@@ -1219,8 +1217,7 @@ public class PopupWindow {
            registerForScrollChanged(anchor, xoff, yoff);
        }

        WindowManager.LayoutParams p = (WindowManager.LayoutParams)
                mPopupView.getLayoutParams();
        WindowManager.LayoutParams p = (WindowManager.LayoutParams) mPopupView.getLayoutParams();

        if (updateDimension) {
            if (width == -1) {
+1 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@
                android:ellipsize="end"
                android:inputType="text|textAutoComplete"
                android:dropDownWidth="fill_parent"
                android:dropDownHeight="fill_parent"
                android:dropDownAnchor="@id/search_plate"
                android:dropDownVerticalOffset="-9dip"
                android:popupBackground="@android:drawable/search_dropdown_background"
+10 −0
Original line number Diff line number Diff line
@@ -1998,6 +1998,16 @@
            <!-- The dropdown should fit the width of its anchor. -->
            <enum name="wrap_content" value="-2" />
        </attr>
        <!-- Specifies the basic width of the dropdown. Its value may
             be a dimension (such as "12dip") for a constant width, fill_parent
             to fill the width of the screen, or wrap_content to match the height of
             the content of the drop down. -->
        <attr name="dropDownHeight" format="dimension">
            <!-- The dropdown should fill the width of the screen. -->
            <enum name="fill_parent" value="-1" />
            <!-- The dropdown should fit the width of its anchor. -->
            <enum name="wrap_content" value="-2" />
        </attr>
        <attr name="inputType" />
    </declare-styleable>
    <declare-styleable name="PopupWindow">
Loading