Consolidate forwardTouchEvent with dispatchTouchEvent

Change-Id: Ib73962acff72be0a78a3565028572ad694fb8501
This commit is contained in:
Tadashi G. Takaoka 2013-08-06 10:59:19 +09:00
parent 52d220e71b
commit 88f840d2a2

View file

@ -33,11 +33,11 @@ public final class InputView extends LinearLayout {
private final Rect mEventForwardingRect = new Rect();
private final Rect mEventReceivingRect = new Rect();
public InputView(Context context, AttributeSet attrs) {
public InputView(final Context context, final AttributeSet attrs) {
super(context, attrs, 0);
}
public void setKeyboardGeometry(int keyboardTopPadding) {
public void setKeyboardGeometry(final int keyboardTopPadding) {
mKeyboardTopPadding = keyboardTopPadding;
}
@ -48,18 +48,14 @@ public final class InputView extends LinearLayout {
}
@Override
public boolean dispatchTouchEvent(MotionEvent me) {
if (mSuggestionStripView.getVisibility() == VISIBLE
&& mKeyboardView.getVisibility() == VISIBLE
&& forwardTouchEvent(me)) {
return true;
public boolean dispatchTouchEvent(final MotionEvent me) {
if (mSuggestionStripView.getVisibility() != VISIBLE
|| mKeyboardView.getVisibility() != VISIBLE) {
return super.dispatchTouchEvent(me);
}
return super.dispatchTouchEvent(me);
}
// The touch events that hit the top padding of keyboard should be forwarded to
// {@link SuggestionStripView}.
private boolean forwardTouchEvent(MotionEvent me) {
// The touch events that hit the top padding of keyboard should be forwarded to
// {@link SuggestionStripView}.
final Rect rect = mInputViewRect;
this.getGlobalVisibleRect(rect);
final int x = (int)me.getX() + rect.left;
@ -68,7 +64,7 @@ public final class InputView extends LinearLayout {
final Rect forwardingRect = mEventForwardingRect;
mKeyboardView.getGlobalVisibleRect(forwardingRect);
if (!mIsForwardingEvent && !forwardingRect.contains(x, y)) {
return false;
return super.dispatchTouchEvent(me);
}
final int forwardingLimitY = forwardingRect.top + mKeyboardTopPadding;
@ -93,7 +89,7 @@ public final class InputView extends LinearLayout {
}
if (!sendToTarget) {
return false;
return super.dispatchTouchEvent(me);
}
final Rect receivingRect = mEventReceivingRect;