Skip to content
Snippets Groups Projects
Commit 891e4860 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Stop overriding SuggestionStripView.dispatchTouchEvent"

parents 1751615f e32548f3
No related branches found
No related tags found
No related merge requests found
...@@ -327,7 +327,6 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick ...@@ -327,7 +327,6 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
final int pointY = -layoutHelper.mMoreSuggestionsBottomGap; final int pointY = -layoutHelper.mMoreSuggestionsBottomGap;
moreKeysPanel.showMoreKeysPanel(this, mMoreSuggestionsController, pointX, pointY, moreKeysPanel.showMoreKeysPanel(this, mMoreSuggestionsController, pointX, pointY,
mMoreSuggestionsListener); mMoreSuggestionsListener);
mMoreSuggestionsMode = MORE_SUGGESTIONS_CHECKING_MODAL_OR_SLIDING;
mOriginX = mLastX; mOriginX = mLastX;
mOriginY = mLastY; mOriginY = mLastY;
for (int i = 0; i < mSuggestionsCountInStrip; i++) { for (int i = 0; i < mSuggestionsCountInStrip; i++) {
...@@ -336,11 +335,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick ...@@ -336,11 +335,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
return true; return true;
} }
// Working variables for onLongClick and dispatchTouchEvent. // Working variables for {@link #onLongClick(View)} and
private int mMoreSuggestionsMode = MORE_SUGGESTIONS_IN_MODAL_MODE; // {@link onInterceptTouchEvent(MotionEvent)}.
private static final int MORE_SUGGESTIONS_IN_MODAL_MODE = 0;
private static final int MORE_SUGGESTIONS_CHECKING_MODAL_OR_SLIDING = 1;
private static final int MORE_SUGGESTIONS_IN_SLIDING_MODE = 2;
private int mLastX; private int mLastX;
private int mLastY; private int mLastY;
private int mOriginX; private int mOriginX;
...@@ -360,36 +356,39 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick ...@@ -360,36 +356,39 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
}; };
@Override @Override
public boolean dispatchTouchEvent(final MotionEvent me) { public boolean onInterceptTouchEvent(final MotionEvent me) {
if (!mMoreSuggestionsView.isShowingInParent()) { if (!mMoreSuggestionsView.isShowingInParent()) {
mLastX = (int)me.getX(); mLastX = (int)me.getX();
mLastY = (int)me.getY(); mLastY = (int)me.getY();
if (mMoreSuggestionsSlidingDetector.onTouchEvent(me)) { return mMoreSuggestionsSlidingDetector.onTouchEvent(me);
return true;
}
return super.dispatchTouchEvent(me);
} }
final int action = me.getAction(); final int action = me.getAction();
final int index = me.getActionIndex(); final int index = me.getActionIndex();
final int x = (int)me.getX(index); final int x = (int)me.getX(index);
final int y = (int)me.getY(index); final int y = (int)me.getY(index);
if (Math.abs(x - mOriginX) >= mMoreSuggestionsModalTolerance
if (mMoreSuggestionsMode == MORE_SUGGESTIONS_CHECKING_MODAL_OR_SLIDING) { || mOriginY - y >= mMoreSuggestionsModalTolerance) {
if (Math.abs(x - mOriginX) >= mMoreSuggestionsModalTolerance // Decided to be in the sliding input mode only when the touch point has been moved
|| mOriginY - y >= mMoreSuggestionsModalTolerance) { // upward. Further {@link MotionEvent}s will be delivered to
// Decided to be in the sliding input mode only when the touch point has been moved // {@link #onTouchEvent(MotionEvent)}.
// upward.
mMoreSuggestionsMode = MORE_SUGGESTIONS_IN_SLIDING_MODE;
} else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) {
// Decided to be in the modal input mode
mMoreSuggestionsMode = MORE_SUGGESTIONS_IN_MODAL_MODE;
mMoreSuggestionsView.adjustVerticalCorrectionForModalMode();
}
return true; return true;
} }
// MORE_SUGGESTIONS_IN_SLIDING_MODE if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) {
// Decided to be in the modal input mode.
mMoreSuggestionsView.adjustVerticalCorrectionForModalMode();
}
return false;
}
@Override
public boolean onTouchEvent(final MotionEvent me) {
// In the sliding input mode. {@link MotionEvent} should be forwarded to
// {@link MoreSuggestionsView}.
final int index = me.getActionIndex();
final int x = (int)me.getX(index);
final int y = (int)me.getY(index);
me.setLocation(mMoreSuggestionsView.translateX(x), mMoreSuggestionsView.translateY(y)); me.setLocation(mMoreSuggestionsView.translateX(x), mMoreSuggestionsView.translateY(y));
mMoreSuggestionsView.onTouchEvent(me); mMoreSuggestionsView.onTouchEvent(me);
return true; return true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment