Fix not intercepting touch event while in modal mode
Bug: 17600156 Change-Id: Ife8f04550411d88311e08dd33e370a410d791ca2main
parent
5fa6a538cc
commit
d144b7874e
|
@ -40,6 +40,8 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
|
|||
public abstract void onSuggestionSelected(final SuggestedWordInfo info);
|
||||
}
|
||||
|
||||
private boolean mIsInModalMode;
|
||||
|
||||
public MoreSuggestionsView(final Context context, final AttributeSet attrs) {
|
||||
this(context, attrs, R.attr.moreKeysKeyboardViewStyle);
|
||||
}
|
||||
|
@ -53,6 +55,7 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
|
|||
@Override
|
||||
public void setKeyboard(final Keyboard keyboard) {
|
||||
super.setKeyboard(keyboard);
|
||||
mIsInModalMode = false;
|
||||
// With accessibility mode off, {@link #mAccessibilityDelegate} is set to null at the
|
||||
// above {@link MoreKeysKeyboardView#setKeyboard(Keyboard)} call.
|
||||
// With accessibility mode on, {@link #mAccessibilityDelegate} is set to a
|
||||
|
@ -74,12 +77,17 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
|
|||
updateKeyDrawParams(keyHeight);
|
||||
}
|
||||
|
||||
public void adjustVerticalCorrectionForModalMode() {
|
||||
public void setModalMode() {
|
||||
mIsInModalMode = true;
|
||||
// Set vertical correction to zero (Reset more keys keyboard sliding allowance
|
||||
// {@link R#dimen.config_more_keys_keyboard_slide_allowance}).
|
||||
mKeyDetector.setKeyboard(getKeyboard(), -getPaddingLeft(), -getPaddingTop());
|
||||
}
|
||||
|
||||
public boolean isInModalMode() {
|
||||
return mIsInModalMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onKeyInput(final Key key, final int x, final int y) {
|
||||
if (!(key instanceof MoreSuggestionKey)) {
|
||||
|
|
|
@ -393,6 +393,9 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
|
|||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(final MotionEvent me) {
|
||||
if (mMoreSuggestionsView.isInModalMode()) {
|
||||
return false;
|
||||
}
|
||||
if (!mMoreSuggestionsView.isShowingInParent()) {
|
||||
mLastX = (int)me.getX();
|
||||
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) {
|
||||
// Decided to be in the modal input mode.
|
||||
mMoreSuggestionsView.adjustVerticalCorrectionForModalMode();
|
||||
mMoreSuggestionsView.setModalMode();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue