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

Commit f0b8e3ad authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android (Google) Code Review
Browse files

Merge "Adding support to NumberPicker" into jb-mr1-aah-dev

parents 40e262e0 5dc21d9b
Loading
Loading
Loading
Loading
+30 −0
Original line number Original line Diff line number Diff line
@@ -469,6 +469,11 @@ public class NumberPicker extends LinearLayout {
     */
     */
    private final PressedStateHelper mPressedStateHelper;
    private final PressedStateHelper mPressedStateHelper;


    /**
     * The keycode of the last handled DPAD down event.
     */
    private int mLastHandledDownDpadKeyCode = -1;

    /**
    /**
     * Interface to listen for changes of the current value.
     * Interface to listen for changes of the current value.
     */
     */
@@ -936,6 +941,31 @@ public class NumberPicker extends LinearLayout {
            case KeyEvent.KEYCODE_ENTER:
            case KeyEvent.KEYCODE_ENTER:
                removeAllCallbacks();
                removeAllCallbacks();
                break;
                break;
            case KeyEvent.KEYCODE_DPAD_DOWN:
            case KeyEvent.KEYCODE_DPAD_UP:
                if (!mHasSelectorWheel) {
                    break;
                }
                switch (event.getAction()) {
                    case KeyEvent.ACTION_DOWN:
                        if (mWrapSelectorWheel || (keyCode == KeyEvent.KEYCODE_DPAD_UP)
                                ? getValue() < getMaxValue() : getValue() > getMinValue()) {
                            requestFocus();
                            mLastHandledDownDpadKeyCode = keyCode;
                            removeAllCallbacks();
                            if (mFlingScroller.isFinished()) {
                                changeValueByOne(keyCode == KeyEvent.KEYCODE_DPAD_UP);
                            }
                            return true;
                        }
                        break;
                    case KeyEvent.ACTION_UP:
                        if (mLastHandledDownDpadKeyCode == keyCode) {
                            mLastHandledDownDpadKeyCode = -1;
                            return true;
                        }
                        break;
                }
        }
        }
        return super.dispatchKeyEvent(event);
        return super.dispatchKeyEvent(event);
    }
    }