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

Commit 6b814d8a authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Use constants for return value of TextView#doKeyDown"

parents dab33c92 2b46e657
Loading
Loading
Loading
Loading
+31 −23
Original line number Diff line number Diff line
@@ -310,6 +310,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     */
    static final int PROCESS_TEXT_REQUEST_CODE = 100;

    /**
     *  Return code of {@link #doKeyDown}.
     */
    private static final int KEY_EVENT_NOT_HANDLED = 0;
    private static final int KEY_EVENT_HANDLED = -1;
    private static final int KEY_DOWN_HANDLED_BY_KEY_LISTENER = 1;
    private static final int KEY_DOWN_HANDLED_BY_MOVEMENT_METHOD = 2;

    // System wide time for last cut, copy or text changed action.
    static long sLastCutCopyOrTextChangedTime;

@@ -5955,8 +5963,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        int which = doKeyDown(keyCode, event, null);
        if (which == 0) {
        final int which = doKeyDown(keyCode, event, null);
        if (which == KEY_EVENT_NOT_HANDLED) {
            return super.onKeyDown(keyCode, event);
        }

@@ -5966,13 +5974,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
    @Override
    public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
        KeyEvent down = KeyEvent.changeAction(event, KeyEvent.ACTION_DOWN);

        int which = doKeyDown(keyCode, down, event);
        if (which == 0) {
        final int which = doKeyDown(keyCode, down, event);
        if (which == KEY_EVENT_NOT_HANDLED) {
            // Go through default dispatching.
            return super.onKeyMultiple(keyCode, repeatCount, event);
        }
        if (which == -1) {
        if (which == KEY_EVENT_HANDLED) {
            // Consumed the whole thing.
            return true;
        }
@@ -5985,7 +5992,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        // It would be nice if those interfaces had an onKeyMultiple() method,
        // but adding that is a more complicated change.
        KeyEvent up = KeyEvent.changeAction(event, KeyEvent.ACTION_UP);
        if (which == 1) {
        if (which == KEY_DOWN_HANDLED_BY_KEY_LISTENER) {
            // mEditor and mEditor.mInput are not null from doKeyDown
            mEditor.mKeyListener.onKeyUp(this, (Editable)mText, keyCode, up);
            while (--repeatCount > 0) {
@@ -5994,7 +6001,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            }
            hideErrorIfUnchanged();

        } else if (which == 2) {
        } else if (which == KEY_DOWN_HANDLED_BY_MOVEMENT_METHOD) {
            // mMovement is not null from doKeyDown
            mMovement.onKeyUp(this, (Spannable)mText, keyCode, up);
            while (--repeatCount > 0) {
@@ -6051,7 +6058,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener

    private int doKeyDown(int keyCode, KeyEvent event, KeyEvent otherEvent) {
        if (!isEnabled()) {
            return 0;
            return KEY_EVENT_NOT_HANDLED;
        }

        // If this is the initial keydown, we don't want to prevent a movement away from this view.
@@ -6078,7 +6085,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                                this, EditorInfo.IME_NULL, event)) {
                            mEditor.mInputContentType.enterDown = true;
                            // We are consuming the enter key for them.
                            return -1;
                            return KEY_EVENT_HANDLED;
                        }
                    }

@@ -6088,9 +6095,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                    if ((event.getFlags() & KeyEvent.FLAG_EDITOR_ACTION) != 0
                            || shouldAdvanceFocusOnEnter()) {
                        if (hasOnClickListeners()) {
                            return 0;
                            return KEY_EVENT_NOT_HANDLED;
                        }
                        return -1;
                        return KEY_EVENT_HANDLED;
                    }
                }
                break;
@@ -6098,7 +6105,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            case KeyEvent.KEYCODE_DPAD_CENTER:
                if (event.hasNoModifiers()) {
                    if (shouldAdvanceFocusOnEnter()) {
                        return 0;
                        return KEY_EVENT_NOT_HANDLED;
                    }
                }
                break;
@@ -6106,7 +6113,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            case KeyEvent.KEYCODE_TAB:
                if (event.hasNoModifiers() || event.hasModifiers(KeyEvent.META_SHIFT_ON)) {
                    if (shouldAdvanceFocusOnTab()) {
                        return 0;
                        return KEY_EVENT_NOT_HANDLED;
                    }
                }
                break;
@@ -6115,14 +6122,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            case KeyEvent.KEYCODE_BACK:
                if (mEditor != null && mEditor.mTextActionMode != null) {
                    stopTextActionMode();
                    return -1;
                    return KEY_EVENT_HANDLED;
                }
                break;

            case KeyEvent.KEYCODE_CUT:
                if (event.hasNoModifiers() && canCut()) {
                    if (onTextContextMenuItem(ID_CUT)) {
                        return -1;
                        return KEY_EVENT_HANDLED;
                    }
                }
                break;
@@ -6130,7 +6137,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            case KeyEvent.KEYCODE_COPY:
                if (event.hasNoModifiers() && canCopy()) {
                    if (onTextContextMenuItem(ID_COPY)) {
                        return -1;
                        return KEY_EVENT_HANDLED;
                    }
                }
                break;
@@ -6138,7 +6145,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            case KeyEvent.KEYCODE_PASTE:
                if (event.hasNoModifiers() && canPaste()) {
                    if (onTextContextMenuItem(ID_PASTE)) {
                        return -1;
                        return KEY_EVENT_HANDLED;
                    }
                }
                break;
@@ -6154,7 +6161,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                    hideErrorIfUnchanged();
                    doDown = false;
                    if (handled) {
                        return -1;
                        return KEY_EVENT_HANDLED;
                    }
                } catch (AbstractMethodError e) {
                    // onKeyOther was added after 1.0, so if it isn't
@@ -6170,7 +6177,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                        keyCode, event);
                endBatchEdit();
                hideErrorIfUnchanged();
                if (handled) return 1;
                if (handled) return KEY_DOWN_HANDLED_BY_KEY_LISTENER;
            }
        }

@@ -6185,7 +6192,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                            otherEvent);
                    doDown = false;
                    if (handled) {
                        return -1;
                        return KEY_EVENT_HANDLED;
                    }
                } catch (AbstractMethodError e) {
                    // onKeyOther was added after 1.0, so if it isn't
@@ -6197,12 +6204,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                    if (event.getRepeatCount() == 0 && !KeyEvent.isModifierKey(keyCode)) {
                        mPreventDefaultMovement = true;
                    }
                    return 2;
                    return KEY_DOWN_HANDLED_BY_MOVEMENT_METHOD;
                }
            }
        }

        return mPreventDefaultMovement && !KeyEvent.isModifierKey(keyCode) ? -1 : 0;
        return mPreventDefaultMovement && !KeyEvent.isModifierKey(keyCode) ?
                KEY_EVENT_HANDLED : KEY_EVENT_NOT_HANDLED;
    }

    /**