The method WordComposer.moveCursorByAndReturnIfInsideComposingWord() iterates
through all the code points in the word that's currently being composed, and
it tries to adjust the cursor position by a given amount (left or right).
It copies the code points to a new array while processing. But the code point
count comes from a member variable. If the member variable changes while the
method is processing the copy of the code points, it can run over the length
of the code point array.
Bug 18876474.
Change-Id: Ib3a2d90a4e82b76d381efa774e6b3d6bca99c869
- Show the opt-in text
- Show the account picker if user presses 'enable sync'. Previously
we disabled the sync pref which was confusing.
- Remove the debug tags from some prefs; and improve messaging overall
General rules;
- sync is turned ON : user checks 'enable sync' pref AND
accepts the opt-in AND chooses an account
- sync is turned OFF: when user signs out
Demo link
https://drive.google.com/a/google.com/file/d/0B9tNQOWdRuiWSUdVVE5rVDJudlk/view?usp=sharing
Change-Id: I2e7933796b15e47005ba9970a8c1294416ef31a0
When the LatinIME does not have an active InputConnection, it will not try
to toggle the Emoji keyboard.
Bug 19513415.
Change-Id: I31f928cd7db1cddd771c548cd3dc42f8af64d0e2
Currently, the Delight3DictionaryFacilitator sets a boolean flag when the top
suggestion score exceeds the auto-correction threshold. This flag is used to
trigger auto-correction of the typed word. Also, the existing logic assumes
that if allowsToBeAutoCorrected then the word is invalid, which is no longer
true after we stopped using whitelists.
Bug 19518376.
Change-Id: Ifa7f6a09c07d25ac68c6cf3aec91f358bd88689f
Simplify interfaces by passing Keyboard instead of
KeyboardLayout and ProximityInfo directly. Also require
the Keyboard passed be non-null and change the SpellChecker
to bail out if there is no keyboard for the locale.
Change-Id: I960f15ff60171f55d3e0a96fd6469b7dc3a045e2
hasn't been called yet. This breaks the AOSP SpellChecker. This seems
to be a bug introduced recently, when the
DictionaryFacilitatorLruCache was turned into a "cache" of 1 element.
Change-Id: I55f6c18b274c9a33fd62cb25bcd02f64788d5ff0
The objective is to show an app icon when the user installs the keyboard from
the Play Store, but not show the icon when it comes from the system image.
The latter rule applies to AOSP keyboards and to the Google Keyboard on a
Nexus device.
This change partially reverts ag/613096.
Bug 19001197.
Change-Id: Icb202deffe9f1ab2bde9b3c9d221347da6793a19
There should be 1 executor each for static and dynamic language models.
This prevents too many dynamic LM updates from running in parallel,
competing for resources.
Change-Id: I8ec439e0ea2d92fba275bc20a0b8c9193346a0c1
Unfortunately, our Locale objects don't always have a script code.
But we can get almost the same functionality by specifying script
codes for some languages, and defaulting the rest to Latin.
Change-Id: Id81ff67bf44c84f44707a2e167c2787c60c6ecee
Break contacts binary dictionary into two parts
- one that talks to contacts content provider and maintains
local state. Includes a manager class and a content observer
- other one that just manages the dict code.
Change-Id: Ie8f89ac9ce174c803ff3168ee0bee5cbe7721d5b
When committing a span after a revert, the offset logic was such that it
split a surrogate unicode pair used to express an emoji.
Checking the last character of the span lets us avoid this problem.
Fix for bug 19255233.
Change-Id: I07d18d9002b5075f7925319dd05962011656c311
Removes the feature that adds strings to the user dictionary,
aka the "green highlight with a plus sign".
Bug 19237189.
Change-Id: I2387129a3add2d69d625f2ff16ed8cab3f10a735
implementation DictionaryFacilitatorImpl.java and add a java-overridable
factory DictionaryFacilitatorProvider.java used to create a
DictionaryFacilitator.
Change-Id: Id4a58ae31feaa4d12a048a772c8d76ff82fdee45
This change deletes a bunch of code that was used to conditionally show/hide
the keyboard app icon given system states and user preferences.
Bug 19001197.
Change-Id: I69a57aa21872a571af87a193b3e52b7f985e5168
This is apparently called only once for every unique word, so repeated instances
of the same word are not handled separately. Upon changing orientation of the
device, however, all invalid words in the textbox are underlined again and this
method is called for each unique instance in order.
Change-Id: Ic57e4b9e5675bd7abd723644aa318d964f7f875f
Attempt to use dictionary facilitor without invoking
preference manager. Instead use account from settings only when
things are being reset/changed. Discussion forked from ag/591663
Overall, the idea here is to maintain an account information
inside dictionary groups. Reset the dictionary groups if
account changes (the way we do for locale). Since only user
history dictionary is currently affected, the check to reset user
history dictionary also includes the check to verify the account.
For other things remain the same.
SettingsValues holds the current account (and is updated if prefs change
due to change in account settings). The updated settings are then
propagated to dictionary facilitator via LatinIME#loadSettings.
Bug:18104749,18469539
Change-Id: I553e776e7ea125d0fb7a1fe70a4c7eb0b2277fb8