Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d144b787 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Fix not intercepting touch event while in modal mode

Bug: 17600156
Change-Id: Ife8f04550411d88311e08dd33e370a410d791ca2
parent 5fa6a538
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -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)) {
+4 −1
Original line number Diff line number Diff line
@@ -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;
    }