Merge "Fix not intercepting touch event while in modal mode"

This commit is contained in:
Tadashi G. Takaoka 2014-09-24 03:24:17 +00:00 committed by Android (Google) Code Review
commit 9a73a79cbe
2 changed files with 13 additions and 2 deletions
java/src/com/android/inputmethod/latin/suggestions

View file

@ -40,6 +40,8 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
public abstract void onSuggestionSelected(final SuggestedWordInfo info); public abstract void onSuggestionSelected(final SuggestedWordInfo info);
} }
private boolean mIsInModalMode;
public MoreSuggestionsView(final Context context, final AttributeSet attrs) { public MoreSuggestionsView(final Context context, final AttributeSet attrs) {
this(context, attrs, R.attr.moreKeysKeyboardViewStyle); this(context, attrs, R.attr.moreKeysKeyboardViewStyle);
} }
@ -53,6 +55,7 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
@Override @Override
public void setKeyboard(final Keyboard keyboard) { public void setKeyboard(final Keyboard keyboard) {
super.setKeyboard(keyboard); super.setKeyboard(keyboard);
mIsInModalMode = false;
// With accessibility mode off, {@link #mAccessibilityDelegate} is set to null at the // With accessibility mode off, {@link #mAccessibilityDelegate} is set to null at the
// above {@link MoreKeysKeyboardView#setKeyboard(Keyboard)} call. // above {@link MoreKeysKeyboardView#setKeyboard(Keyboard)} call.
// With accessibility mode on, {@link #mAccessibilityDelegate} is set to a // With accessibility mode on, {@link #mAccessibilityDelegate} is set to a
@ -74,12 +77,17 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
updateKeyDrawParams(keyHeight); updateKeyDrawParams(keyHeight);
} }
public void adjustVerticalCorrectionForModalMode() { public void setModalMode() {
mIsInModalMode = true;
// Set vertical correction to zero (Reset more keys keyboard sliding allowance // Set vertical correction to zero (Reset more keys keyboard sliding allowance
// {@link R#dimen.config_more_keys_keyboard_slide_allowance}). // {@link R#dimen.config_more_keys_keyboard_slide_allowance}).
mKeyDetector.setKeyboard(getKeyboard(), -getPaddingLeft(), -getPaddingTop()); mKeyDetector.setKeyboard(getKeyboard(), -getPaddingLeft(), -getPaddingTop());
} }
public boolean isInModalMode() {
return mIsInModalMode;
}
@Override @Override
protected void onKeyInput(final Key key, final int x, final int y) { protected void onKeyInput(final Key key, final int x, final int y) {
if (!(key instanceof MoreSuggestionKey)) { if (!(key instanceof MoreSuggestionKey)) {

View file

@ -393,6 +393,9 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
@Override @Override
public boolean onInterceptTouchEvent(final MotionEvent me) { public boolean onInterceptTouchEvent(final MotionEvent me) {
if (mMoreSuggestionsView.isInModalMode()) {
return false;
}
if (!mMoreSuggestionsView.isShowingInParent()) { if (!mMoreSuggestionsView.isShowingInParent()) {
mLastX = (int)me.getX(); mLastX = (int)me.getX();
mLastY = (int)me.getY(); mLastY = (int)me.getY();
@ -416,7 +419,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) { if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) {
// Decided to be in the modal input mode. // Decided to be in the modal input mode.
mMoreSuggestionsView.adjustVerticalCorrectionForModalMode(); mMoreSuggestionsView.setModalMode();
} }
return false; return false;
} }