This is required for the final corrected word to be learned,
as learning only occurs when suggestions are active.
Note: This is already happening when backspacing into a non-reverted
word
Bug: 19619907
Bug: 18465402
Change-Id: I99a1d4f0ca0d62a2cdfa24cc0833ce89391715d9
UserManager#getUserProfiles > 1 implies managed
profile.
Workflow:
- Disable sync prefs
- Execute an async task to check for managed profile; if
managed profile is found, remove the sync prefs. If not, enable
the preference;
- Move the logging pref from Advanced to Account & Privacy.
Bug:19230544
Change-Id: I4dbd1fe8433b3263ccc74c35dc0ee0bb371122b3
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
Add API to ExpandableBinaryDictionary to dump content
from a given dictionary. We use this for dumping data
for sync process.
Refactored UserHistoryDictionaryTests to scrap out the util
methods for testing. These utility methods would be used
for testing sync + user dictionary code in LatinIMEGoogleTests
Bug:18106539
Change-Id: I357f9192ea1bd69a526d0b620c25616a2e8e9d5b
When there isn't a close word in another language of the
current multi-language set, we allow whitelist entries
to take force even if we are not confident in the current
language.
Bug: 18063142
Bug: 18130489
Bug: 18132240
Bug: 18136721
Bug: 18200415
Change-Id: I044674ba7b70aa86ab2a48d2e4d53a1c8007b62c
With this the most obvious problem is fixed. However there
are two remaining items : we should still enforce whitelist
when there are no close candidates at all, and we should
start in confident mode when pressing the globe key.
Bug: 18063142
Bug: 18130489
Bug: 18132240
Bug: 18136721
Bug: 18200415
Change-Id: Ibc0571ae35fc28f8d13760aa86b25db1163d3e31
...when applicable of course. This will allow for informing the
language switching authorities that the typed word was a
specific language, instead of leaving them in the dark.
Bug: 18063142
Bug: 18130489
Bug: 18132240
Bug: 18136721
Bug: 18200415
Change-Id: Ice3e7026a68c3018f54d730ec84f6762bf55899b
UserHistoryDictionary currently uses locale to determine the
UserHistoryDictionary on the filesystem. With this change we
use the account name as well. Thus each UserHistoryDictionary
would following the following spec:
UserHistoryDictionary.<locale>.<account>.dict.
In case no account is selected, we default to the existing
spec:
UserHistoryDictionary.<locale>.dict
Example
UserHistoryDictionary.en_US.testaccount@example.com.dict
Bug: 18104749
Change-Id: Iab031e166b55cf2ded68275a7e9be22475737b37
Without personalization:
Total words: 1134774, Success Num: 899230, Success Percentage: 79.243%
Bad Failures, with auto-correction (typed word == expected word, output word != expected word): 1871, Bad Failure Percentage: 0.165%
Failures, with auto-correction (F-C): 29084, F-C Percentage: 2.563%
Max Keystrokes: 6072959, Min Keystrokes: 4436090, Keystroke Saving Percentage:26.953%
Before:
Total words: 1134646, Success Num: 925194, Success Percentage: 81.540%
Bad Failures, with auto-correction (typed word == expected word, output word != expected word): 1316, Bad Failure Percentage: 0.116%
Failures, with auto-correction (F-C): 28288, F-C Percentage: 2.493%
Max Keystrokes: 6072831, Min Keystrokes: 3946188, Keystroke Saving Percentage:35.019%
After
Total words: 1134659, Success Num: 944746, Success Percentage: 83.263%
Bad Failures, with auto-correction (typed word == expected word, output word != expected word): 1258, Bad Failure Percentage: 0.111%
Failures, with auto-correction (F-C): 28016, F-C Percentage: 2.469%
Max Keystrokes: 6072844, Min Keystrokes: 3387333, Keystroke Saving Percentage:44.222%
Change-Id: I3af42ec37a11847c0429c28616e726f6a339247f
(This is a cherrypick of http://ag/576739)
Also, modify the IllegalArgumentException to capture the
values passed for start, end, and array.length to make
debugging easier in the unlikely event that it is thrown.
Add corresponding tests for the exceptions.
Tested:
tapas LatinImeGoogle LatinImeGoogleTests userdebug
make -j30 && \
adb install -r \
out/target/product/generic/data/app/LatinImeGoogleTests/LatinImeGoogleTests.apk && \
adb install -r \
out/target/product/generic/system/app/LatinImeGoogle/LatinImeGoogle.apk && \
adb shell am instrument -w -e class \
com.android.inputmethod.latin.utils.CollectionUtilsTests \
com.google.android.inputmethod.latin.tests/android.support.test.runner.AndroidJUnitRunner
Change-Id: I0c579ca4f4f2a9b2575aa6f8fa75e3ee4a21cf8a
The keyboard height is controlled by a slider in the debug preferences.
Without access to debug preferences, this change is a no-op.
Bug: 6867494
Change-Id: I984064ed1cab752876615f5ed582818474d6041b
This CL consolidates similar methods in MainKeyboardView.
- startWhileTypingFadeinAnimation and startWhileTypingFadeoutAnimation
- showSlidingKeyInputPreview and dismissSlidingKeyInputPreview
Change-Id: I607ab74683820de2456af3e75663cf8cf358ab38