diff options
author | Svetoslav <svetoslavganov@google.com> | 2014-03-05 22:55:58 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-03-05 22:55:58 +0000 |
commit | 8c6ed03c8fb991ef5bf8c4e2fd79a1582bafc90f (patch) | |
tree | a62c0567629cbf5fa596d3257c6cf8ef83170f44 | |
parent | c1ca3bac5d35a029003e839ccccf66b028739aaf (diff) | |
parent | 1caa092f94aaa4b9b7b382263dfd13581d92d2de (diff) | |
download | frameworks_base-8c6ed03c8fb991ef5bf8c4e2fd79a1582bafc90f.zip frameworks_base-8c6ed03c8fb991ef5bf8c4e2fd79a1582bafc90f.tar.gz frameworks_base-8c6ed03c8fb991ef5bf8c4e2fd79a1582bafc90f.tar.bz2 |
am 1caa092f: Allow click listener registration in NumberPicker.
* commit '1caa092f94aaa4b9b7b382263dfd13581d92d2de':
Allow click listener registration in NumberPicker.
-rw-r--r-- | core/java/android/widget/NumberPicker.java | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index c0fde2e..9c6a2e3 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -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; |