This CL adds ACTION_CLICK or ACTION_LONG_CLICK actions to a key node
info. But report a node info without these actions for the same key
while hovering to avoid announcement "double tap to select and double
tap and hold to long press".
Bug: 15727335
Change-Id: I1e9333c94c819d049bda81ad410299f5a509d29c
Partially reverting Ie033d21ef8 to populate root node info.
This CL also fixes the bounds in screen of virtual node info.
Bug: 15746768
Bug: 15582251
Change-Id: I3a82f904270adf138036ef462fd70b349a3cd33e
It should be disabled when it is empty. But should be enabled even
when it is empty with accessibility exploration on to avoid announcing
"disabled".
Note that this CL may not be able to handle "suspending talk back"
state correctly. It should be handled by registering
TouchExplorationStateChangeListener that is available from API 19.
Bug: 15738513
Bug: 14849593
Change-Id: Id9ad89f770840f74a106f53833060407b20c1e24
We need to update them after separator-space, and also when
the user presses shift and they are displayed.
Bug: 15554503
Change-Id: I5596163d5cd94d3cc5f6af10a1ab2cc74b6d4279
Because EmojiPageKeyboardView doesn't use PointerTracker to handle
MotionEvent, a dedicated accessibility delegate is needed. Then the
recent tab can be updated even with accessibility mode on.
Bug: 15582599
Change-Id: I63d75b9aca21ec44f1f77d2eaaf2ba7813992183
Because a keyboard handling hover events and determining a virtual
node by itself, there is no need to supply whole virtual nodes info
for the keyboard. Just returning an empty accessibility node info
supresses annoucements of all keys.
This CL also fixes the undefined virtual id value.
Bug: 15582251
Change-Id: Ie033d21ef878d272417cf2b20f8eec1e516587f6
A more keys keyboard may have a divider on it. The MoreKeysDetector
should be used even with accessibility mode on to be able to handle a
divider.
Bug: 15583354
Change-Id: Ife2cf8304496c4c330127fde8ca1f34c2f0838e2
This reverts commit 1690992d1b.
Build.VERSION.SDK_INT is bumped with I4716e71d72b2526fe635079d1b.
We no longer need this workaround.
Change-Id: I75a1c2a7055af17a7d40291aadd62ae9bb42e056
With accessibility mode on, hover events for a more keys keyboard are
handled among MoreKeysKeyboardAccessibilityDelegate and
MoreKeysKeyboardView. But the more keys keyboard is shown by
MainKeyboardAccessibilityDelegate that uses PointerTracker to handle
hover events. Thus we need to clear PointerTracker state when the more
keys keyboard is dismissed.
This is a workaround to resolve the issue. We should reconsider the
structure of those views and accessibility delegates in the future.
Bug: 15583751
Change-Id: Ida8c3e55194c59bdaa5bc4ff06068e699b888ced
Special case <valid word>.<valid word> to send as a suggestion
the same string where the periods is replaced by a space.
Bug: 10780091
Change-Id: I43c94675977f9ab5d7ee5671486cb742b39f3974
This member has outlived its usefulness. It's not clear now that it
makes things really faster, but it does bring a lot of complexity
that we can avoid by removing it.
Change-Id: Ifbc8094a45b56b958fe165b1930f4cc358a97721
We don't need the optimization of storing the old words now
that the RichInputConnection can supply it without IPC.
Bug: 13703802
Change-Id: I37ccb8d5fba879fb04b4f23d33571849736d897c
The framework's default split is not suitable for all
languages. Also it does not perform very well when space
is mistyped as period.
Bug: 9063355
Bug: 10780091
Change-Id: I400d790ff1c29f221697fd94d79bbf67c61c7b8a
A keyboard accessibility delegate object should be a singleton for
each keyboard view.
Bug: 15437933
Bug: 15419386
Change-Id: Ia70853c644d950ea6130c1f209b89929b1cb1ee5
The logic to determine when the suggestions strip (a.k.a. the
contextual strip) should be shown is already complex. In addition to
that the voice input key get shown on the strip as well. There are a
several factors to be considered and a few things to control.
- The password input field shouldn't have the strip.
- Show voice input key on the strip or not.
- User preference settings "Show Voice Input Key".
- A voice IME exists and is enabled.
- The input field may have a private IME option to prevent the voice
input key from being displayed.
- Application can specify auto completions.
- Full screen mode or not.
- User preference settings "Show correction suggestions".
- Always show, Show in portrait mode, Always hide.
- The input field may have flags to prevent showing suggestions or
auto corrections.
- Suggestions is empty or not.
- An important notice may be shown.
Bug: 14981852
Bug: 15436479
Change-Id: I3050fd53ee6271fc64a8f17b6b12d9581d37b750
This change also includes a fix that has suggestions re-computed
when the typed word is included but no prior suggestions were
found in spans.
Bug: 2349475
Change-Id: Ic06e6ac492507126ffc1e96a5f396c971b567272
The symptom : when text is selected and the device is rotated,
sometimes the keyboard sets the word as being composed around
the start of the selection. Upon the next rotation this ends up
with the keyboard committing some text in place of the selection.
The cause : another bug in the framework with rotation >.>
The keyboard receives a call to startInput with a wrong cursor
position, namely one that does not represent a selection. The
keyboard sets a composition according to this wrong data. When
the keyboard is rotated again, it commits the text, which takes
the place of the selection.
The solution : actually when restarting input the keyboard
realizes that the cursor position is wrong. We cancel composition
at that time.
For robustness, this change also implements two other defensive
changes : upon call to onUpdateSelection, we actually realize
that the previous values were wrong, so we also fix it at that
time, and in addition, when rotating, we finishComposingText()
instead of commitText() which is less dangerous. Implementing
this later change also allows us to let less internal variables
from InputLogic escape to LatinIME, so it's also a good change
for design.
Bug: 14140799
Change-Id: Ib10de18e53e376ac1bbc8487e13d969828483346
Rename `initialize' to `start' and `deactivate' to `stop' for ease
of understanding. It's completely bizarre that you can "deactivate"
a recapitalization and that will just restart a new one the next time
you press shift. Start and stop are easier to understand.
Change-Id: I455175aebfcfe11198c6c61bf2c6b19efc3f82df
This CL reorders keys around the spacebar.
- On phone's symbols and symbols shift layout, the comma key is moved
to the left of the spacebar to aligned with main layout.
- On tablet's layout, the comma key is moved to the left of the
spacebar on all layout to aligned with the same layout of
phone's. Also the comma key has "settings" as more keys.
- In Arabic and Perisan, the comma key of tablet already has some more keys
This CL remove "/" and add "settings" instead.
Bug: 15281451
Change-Id: I6e0e75e4d4abfb1f356e7499be91424c7c57c58b
KeyboardAccessibilityDelegate.synthesizeTouchEvent() wrongly passed
pointer's id as a 6th argument of MotionEvent.obtain method that
should be metaState.
Change-Id: I822f9647a1ba27ee8cee39f373f6a1c003ebf665