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

Commit 28ba546c authored by Svetoslav's avatar Svetoslav Committed by Android Git Automerger
Browse files

am 8c6ed03c: am 1caa092f: Allow click listener registration in NumberPicker.

* commit '8c6ed03c':
  Allow click listener registration in NumberPicker.
parents 2d07e8d6 8c6ed03c
Loading
Loading
Loading
Loading
+40 −13
Original line number Diff line number Diff line
@@ -427,12 +427,12 @@ public class NumberPicker extends LinearLayout {
     * Flag whether to ignore move events - we ignore such when we show in IME
     * to prevent the content from scrolling.
     */
    private boolean mIngonreMoveEvents;
    private boolean mIgnoreMoveEvents;

    /**
     * Flag whether to show soft input on tap.
     * Flag whether to perform a click on tap.
     */
    private boolean mShowSoftInputOnTap;
    private boolean mPerformClickOnTap;

    /**
     * The top of the top selection divider.
@@ -808,8 +808,8 @@ public class NumberPicker extends LinearLayout {
                mInputText.setVisibility(View.INVISIBLE);
                mLastDownOrMoveEventY = mLastDownEventY = event.getY();
                mLastDownEventTime = event.getEventTime();
                mIngonreMoveEvents = false;
                mShowSoftInputOnTap = false;
                mIgnoreMoveEvents = false;
                mPerformClickOnTap = false;
                // Handle pressed state before any state change.
                if (mLastDownEventY < mTopSelectionDividerTop) {
                    if (mScrollState == OnScrollListener.SCROLL_STATE_IDLE) {
@@ -840,7 +840,7 @@ public class NumberPicker extends LinearLayout {
                    postChangeCurrentByOneFromLongPress(
                            true, ViewConfiguration.getLongPressTimeout());
                } else {
                    mShowSoftInputOnTap = true;
                    mPerformClickOnTap = true;
                    postBeginSoftInputOnLongPressCommand();
                }
                return true;
@@ -861,7 +861,7 @@ public class NumberPicker extends LinearLayout {
        int action = event.getActionMasked();
        switch (action) {
            case MotionEvent.ACTION_MOVE: {
                if (mIngonreMoveEvents) {
                if (mIgnoreMoveEvents) {
                    break;
                }
                float currentMoveY = event.getY();
@@ -893,9 +893,9 @@ public class NumberPicker extends LinearLayout {
                    int deltaMoveY = (int) Math.abs(eventY - mLastDownEventY);
                    long deltaTime = event.getEventTime() - mLastDownEventTime;
                    if (deltaMoveY <= mTouchSlop && deltaTime < ViewConfiguration.getTapTimeout()) {
                        if (mShowSoftInputOnTap) {
                            mShowSoftInputOnTap = false;
                            showSoftInput();
                        if (mPerformClickOnTap) {
                            mPerformClickOnTap = false;
                            performClick();
                        } else {
                            int selectorIndexOffset = (eventY / mSelectorElementHeight)
                                    - SELECTOR_MIDDLE_ITEM_INDEX;
@@ -1188,6 +1188,27 @@ public class NumberPicker extends LinearLayout {
        setValueInternal(value, false);
    }

    @Override
    public boolean performClick() {
        if (!mHasSelectorWheel) {
            return super.performClick();
        } else if (!super.performClick()) {
            showSoftInput();
        }
        return true;
    }

    @Override
    public boolean performLongClick() {
        if (!mHasSelectorWheel) {
            return super.performLongClick();
        } else if (!super.performLongClick()) {
            showSoftInput();
            mIgnoreMoveEvents = true;
        }
        return true;
    }

    /**
     * Shows the soft input for its input text.
     */
@@ -2166,8 +2187,7 @@ public class NumberPicker extends LinearLayout {

        @Override
        public void run() {
            showSoftInput();
            mIngonreMoveEvents = true;
            performLongClick();
        }
    }

@@ -2295,7 +2315,14 @@ public class NumberPicker extends LinearLayout {
                        }
                        case AccessibilityNodeInfo.ACTION_CLICK: {
                            if (NumberPicker.this.isEnabled()) {
                                showSoftInput();
                                performClick();
                                return true;
                            }
                            return false;
                        }
                        case AccessibilityNodeInfo.ACTION_LONG_CLICK: {
                            if (NumberPicker.this.isEnabled()) {
                                performLongClick();
                                return true;
                            }
                            return false;