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

Commit b24cc640 authored by Ken Wakasa's avatar Ken Wakasa
Browse files

Fix ArrayIndexOutOfBoundsException.

bug: 2964045
Change-Id: I97d95181e1a6838ace9c135aa92e7f20034e821f
parent ca4e4278
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -500,18 +500,20 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
            if (!wasInKeyRepeat && !mProxy.isMiniKeyboardOnScreen()) {
                detectAndSendKey(mCurrentKey, touchX, touchY, eventTime);
            }
            if (keyIndex != NOT_A_KEY)
            if (keyIndex != NOT_A_KEY && keyIndex < mKeys.length) {
                mProxy.invalidateKey(mKeys[keyIndex]);
            }
        }

        public void onCancelEvent(int touchX, int touchY, long eventTime) {
            mHandler.cancelKeyTimers();
            mHandler.cancelPopupPreview();
            mProxy.dismissPopupKeyboard();
            showKeyPreviewAndUpdateKey(NOT_A_KEY);
            if (mCurrentKey != NOT_A_KEY)
            if (mCurrentKey != NOT_A_KEY && mCurrentKey < mKeys.length) {
               mProxy.invalidateKey(mKeys[mCurrentKey]);
            }
        }

        public void repeatKey(int keyIndex) {
            Key key = mKeys[keyIndex];
@@ -670,7 +672,7 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
        }

        private void checkMultiTap(long eventTime, int keyIndex) {
            if (keyIndex == NOT_A_KEY) return;
            if (keyIndex == NOT_A_KEY || keyIndex >= mKeys.length) return;
            Key key = mKeys[keyIndex];
            if (key.codes.length > 1) {
                mInMultiTap = true;