Ensure no multiple capital letters appear without using delay

This fixes the issue of capitalizing two letters when SHIFT is active,
but it does not use delay. It instead always updates shift state right
right after a key press, to ensure it is in the right state as soon as
next key is typed. This removes the delay added in #210.
This commit is contained in:
Ensar Sarajčić 2023-08-31 13:36:39 +02:00
parent 25918d4660
commit e0fa3fd919
2 changed files with 7 additions and 10 deletions

View File

@ -260,14 +260,13 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
}
}
inputConnection.commitText(codeChar.toString(), 1)
updateShiftKeyState()
}
}
else -> {
inputConnection.commitText(codeChar.toString(), 1)
if (originalText == null) {
updateShiftKeyState()
}
updateShiftKeyState()
}
}
}

View File

@ -1218,14 +1218,12 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
val secondKeyIndex = getPressedKeyIndex(newPointerX, newPointerY)
showPreview(secondKeyIndex)
mHandler!!.postDelayed({
detectAndSendKey(secondKeyIndex, newPointerX, newPointerY, eventTime)
detectAndSendKey(secondKeyIndex, newPointerX, newPointerY, eventTime)
val secondKeyCode = mKeys.getOrNull(secondKeyIndex)?.code
if (secondKeyCode != null) {
mOnKeyboardActionListener!!.onPress(secondKeyCode)
}
}, REPEAT_INTERVAL.toLong())
val secondKeyCode = mKeys.getOrNull(secondKeyIndex)?.code
if (secondKeyCode != null) {
mOnKeyboardActionListener!!.onPress(secondKeyCode)
}
showPreview(NOT_A_KEY)
invalidateKey(mCurrentKey)