Commit graph

5785 commits

Author SHA1 Message Date
Dan Zivkovic
3aad142435 Load metadata.json from resources on DB reset.
This will ensure that a new (or upgraded) keyboard instance will know which
dictionaries are available for download so it requests missing dictionaries.
In addition, we increment the database version number to ensure upgrades of
existing Fava instances start with a clean slate.

Bug 22069694.

Change-Id: Id71310412682543a3931f9c5c03cb0369fa7b9ac
2015-06-24 18:40:34 -07:00
Tom Ouyang
c32389ce11 Merge "Small optimization to eliminate a >0 check in RichInputConnection." into jb-ub-latinimegoogle 2015-06-24 19:44:37 +00:00
Tom Ouyang
96640a110b Small optimization to eliminate a >0 check in RichInputConnection.
Change-Id: Ibdf97726008c1f94c970461196ba445ce328a8cb
2015-06-24 12:00:04 -07:00
Dan Zivkovic
563d7935a9 Extend laggy connection timeout for initial load.
The initial reloadTextCache() operation needs to read 1k characters, and it
could be slow on low-end devices. Also, the initial load is not blocking key
strokes, so it can take a little longer.

Bug 22062102.

Change-Id: I134424e8910c0d6131c311a862bdc87eccd3af44
2015-06-24 11:57:59 -07:00
Dan Zivkovic
ecea6a6113 Merge changes Iaed8abfb,I8e55b57c into jb-ub-latinimegoogle
* changes:
  LatinIME portion of StatsUtil change.
  Do not decorate committed spans.
2015-06-23 20:55:23 +00:00
Tom Ouyang
67eaf613f7 Merge "Workaround for preserving responsiveness on a slow InputConnection." into jb-ub-latinimegoogle 2015-06-23 20:35:09 +00:00
Tom Ouyang
912016b69f Workaround for preserving responsiveness on a slow InputConnection.
1. Add mechanism to detect a slow or non-resonsive InputConnection (IC)
2. When IC slowness is detected, skip certain IC calls that are known
   to be expensive (e.g., getTextAfterCursor).
3. Similarly, disables learning / unlearning on a slow IC.
4. IC slowness flag is reset when starting input on a new TextView or
   when a fixed amount of time has passed.

Note: These are mostly temporary workarounds. The permanent solution is
to refactor RichInputConnection so that it is less sensitive to IC
slowness in general.

Bug: 21926256
Change-Id: I383fab0516d3f3a8e0f71e5d760a8336a7730f7c
2015-06-23 10:34:44 -07:00
Dan Zivkovic
ee6de1466b Do not decorate committed spans.
Users rarely tap on committed words, and the cost of sending the spans back
through the input connection, back and forth to the target app, is too high.

Bug 21926256.

Change-Id: I8e55b57ce2148ed313dc927425b6d9c958634958
2015-06-23 10:25:58 -07:00
Dan Zivkovic
4e9d260826 Do not force downloads on package replace.
This is causing issues we can't deal with in a safe and timely manner.
Furthermore, users who need downloaded dictionaries already have them by now.

Bug 21797386.

Change-Id: I97e5fd84edcf2b16f04db57b7ae4a13fa9ce993f
2015-06-23 10:15:34 -07:00
Mohammadinamul Sheik
bf7c0106b0 Fix the previous downloads logic to not missing any downloads.
Bug: 21797386
Change-Id: Ic09698b28e31b4f16831898d7cb08853f4e5df4a
2015-06-22 20:23:27 -07:00
Dan Zivkovic
73aaf68337 Detection and logging of slow input connections.
Also adds a hook to log using StatsUtils.
Proto change is coming in a separate CL.

Bug 22010482.

Change-Id: I08065fc7a5cd116e50ff84cb14bbbc44c4f14bc7
2015-06-22 17:36:53 -07:00
Mohammadinamul Sheik
5a51e4a0a8 Clear/remove all the scheduled downloads in Download Manager
Bug: 21797386
Change-Id: I60f50a2fe890af46f5e847c34df2edf719d40ac4
2015-06-22 12:57:31 -07:00
Dan Zivkovic
0232e73dfa Cleanup before fixing getTextAfterCursor().
We never delete text after the cursor, so constrain the API accordingly.
Define the number of characters to read before and after.
Set them to reasonable values.
The next CL will start caching text after the cursor.

Bug 21926256.

Change-Id: Idd58daf68614de4a69344aa3c8a4323720c5d3a0
2015-06-19 12:06:18 -07:00
Dan Zivkovic
764a18cd92 Revert "Remove "Personal dictionary" link from settings."
This reverts commit 76de0a8f52.

Bug 21881199.

Change-Id: I53f42a1e8f25d214de97264f4d25813bc637cafa
2015-06-16 18:26:02 -07:00
Dan Zivkovic
7891733c73 Remove dogfood history reset.
Change-Id: I1d7ebe5962fc3176c376e1ce34c7ac98cdf41373
2015-05-21 10:24:15 -07:00
Dan Zivkovic
0e15ff6b48 Fix on-commit bug in AOSP keyboard.
Bug 21272977.

Change-Id: Id561040c29a7f2576cd9ef0514c31751a4360ef8
2015-05-19 10:45:19 -07:00
Mohammadinamul Sheik
142294a9fe clean up debug tags.
Change-Id: I2ca37bd691abcc036ead8071045d37d72b2d088d
2015-05-12 10:46:12 -07:00
Jatin Matani
e09da0aeb9 Set syncAutomatically for sync users
Note: this doesn't mean that sync would happen.
It only unblocks users who are already opted into
cloud sync

Change-Id: I91836efadac89d0429d7f2e9c9190a873a638743
2015-05-07 20:52:34 -07:00
Dan Zivkovic
9bad1ac33f Look up thresholds during decoder reset.
Bug 20701628.

Change-Id: I4de89587776a0859aeda5d2ed76ab1eb4f918458
2015-05-04 14:48:28 -07:00
Mohammadinamul Sheik
f01cd568f0 Merge "Make the DictionaryService stage the downloaded files" 2015-05-04 19:04:15 +00:00
Mohammadinamul Sheik
a0d9c82921 Make the DictionaryService stage the downloaded files
Bug: 20641948
Change-Id: I6639c995b12c033bc30241cd219201dd483ee516
2015-05-04 11:57:31 -07:00
Dan Zivkovic
f22571e2d9 Delete history on upgrade in LatinIME.
Bug 20733902.

Change-Id: Ibe27e6cafe4db87ba62d7df708229e0d8564ffa8
2015-05-01 12:45:07 -07:00
Tom Ouyang
89f9070264 Do not learn from cursor corrections when autocorrection is disabled.
Bug: 20681528
Change-Id: I80e7095b70a151f3ccc36856d7e0837613a35972
2015-04-30 15:10:50 -07:00
Dan Zivkovic
459b4f353e Spelling cannot cache words across invocations.
We want to let the facilitator decide if a word is valid or invalid, and cache
the answer in the facilitator's cache. The spell checker session doesn't need
its own word cache, except as a crutch to communicate suggestions to the code
that populates the suggestion drop-down. We leave that in place.

Bug 20018546.

Change-Id: I3c3c53e0c1d709fa2f64a2952a232acd7380b57a
2015-04-29 14:30:49 -07:00
Chieu Nguyen
767c0bf71b Restore preference change update to show app icon setting.
Bug: 20544640
Change-Id: I6e2a26a8a5e43360dfefcc85bb46eae28f5e3867
2015-04-27 13:53:17 -07:00
Dan Zivkovic
784233dbc6 Specify fileName argument as Nullable.
Bug 20526371.

Change-Id: If53a81f925fbb1b29ad945ba0ec2192d92ae1eff
2015-04-23 14:12:33 -07:00
Chieu Nguyen
a2376cd2b4 Restore switch for showing app icon.
Bug: 20307420
Change-Id: I95969de40936d2ea992669324d0c4df7e8de2bd9
2015-04-22 15:46:40 -07:00
Yohei Yukaw
490fa47a46 Always specify non-null Locale object to SuggestionSpan
Confusingly, specifying a null Locale object to the constructor
of SuggestionSpan does not necessarily mean that
SuggestionSpan#getLocale() returns null.  The constructor in
question also receives Context object, and Context's locale can
be used as a fallback locale to initialize locale of
SuggestionSpan.

With this CL, LatinIME always specify non-null Locale object
when instantiating SuggestionSpan object.  It basically
corresponds to the active main dictionary, but can be
Locale#ROOT when one locale is not determined for some reasons.

BUG: 20435013
Change-Id: I2c152466410327300e7dba4d7ed9a22f57c17c4f
2015-04-20 20:29:44 -07:00
Martin Paraskevov
54e891e2bd Merge "Fix bug in regular expression stripping quotes." 2015-04-21 03:04:13 +00:00
Martin Paraskevov
ab8482a34b Fix bug in regular expression stripping quotes.
Change-Id: Iaf84a9a1f00b31daf7225991c4cfc5f17b578028
2015-04-20 19:58:45 -07:00
Tom Ouyang
cdfe8b93ec Merge "Add affinity model for contact names." 2015-04-17 01:05:44 +00:00
Martin Paraskevov
c155f7f5fd Merge "Strip quotes from begining/end of a word before checking its validity." 2015-04-16 23:46:40 +00:00
Tom Ouyang
44a175732d Add affinity model for contact names.
This allows us to:
1. Rank contacts and only add the top N names to the keyboard LM.
2. Avoid adding duplicate names.

Note: The affinity calcualuation is limited by the fact that some apps
currently do not update the TIMES_CONTACTED counter. To better handle
this case, the new measure also takes into account whether or not a
name is in the visible contacts group.

Bug: 20053274
Change-Id: I2741cb8958667d4a294aba8c437a45cec4b42dc7
2015-04-16 11:33:54 -07:00
Martin Paraskevov
8ff42d1581 Strip quotes from begining/end of a word before checking its validity.
Bug: 20142633

Change-Id: Ia0f3661ac3028473c00f83df72dcb9e1fd134247
2015-04-15 19:00:45 -07:00
Mohammadinamul Sheik
3a5de64110 Do not re-download the unused dictionaries.
Does the following
1. Uses dictionaries from the files/ directory while populating the
   entries into the pendingUpdates table. So that a download happens only
   if the metadata.json says so.
2. Delete an unusable dictionaries from the files/ directory.

Bug: 20142708
Change-Id: Ibd738793585c39735868e324b8ad682dff0eba34
2015-04-15 11:12:40 -07:00
Jatin Matani
bf732e7001 Merge "Store raw strings for personal dictionary" 2015-04-14 18:03:56 +00:00
Mohammadinamul Sheik
db96122787 Fix the NPE on selection string on unlearnWord
Bug: 20150386
Change-Id: I2ed69aba7b1fdaba1e2ac07b8218a265dfe23e09
2015-04-13 16:30:22 -07:00
Jatin Matani
1bfd7be208 Store raw strings for personal dictionary
The raw strings would be sent to personal LM for decoding.
Earlier lowercased strings were being used with the purpose
of isValid checks (spelling does not consider casing for spell
checking calls). But for showing these in suggestion, we need the
raw strings.

Note: PersonalDictionaryLookup#getWordsForLocale is used to feed
the personal LM in PersonalLanguageModelHelper.

Bug:20152986
Change-Id: I9d796fa57bf2073036bf11d86b143ff205a6199c
2015-04-13 16:28:26 -07:00
Dan Zivkovic
40f0f61bb3 Merge "Personal dictionary feeds a personal LM." 2015-04-10 01:43:35 +00:00
Dan Zivkovic
541ef56e05 Personal dictionary feeds a personal LM.
Bug 20043003.

Change-Id: I5ccac344c089855474263d1cdc547da1e6779301
2015-04-09 18:35:57 -07:00
Tom Ouyang
3952078a91 Extract fewer characters in getWordRangeAtCursor().
Use LOOKBACK_CHARACTER_NUM = 80 instead of the previous
EDITOR_CONTENTS_CACHE_SIZE = 1024 (which was overkill).

This speeds up many InputLogic operations.

Bug: 19987461
Change-Id: I62b6a589f87e5daab33376b3e48f1c615a66dcfb
2015-04-09 11:45:55 -07:00
Dan Zivkovic
7f386acdd1 Make logs less spammy.
Bug 19987461.

Change-Id: Ibf58f2b26c2d01f765ef32abb47c84be49e2ba9f
2015-04-07 11:43:18 -07:00
Dan Zivkovic
6bb7011559 Read less data from the input connection.
Currently, we read 256 (max word size) * 5 (max N-gram size + 1) characters
from the input connection when building our context. This is overkill. We
don't need more than 80 characters, regardless of which decoder we use.

Bug 19987461.

Change-Id: Ie3a321cf2482adbacd8006d9d86e6601097c15ed
2015-04-07 11:18:58 -07:00
Dan Zivkovic
3e66c6357d Skip decoding for in-vocabulary words.
The spell checker is decoding, and getting multiple sets of suggestions, for
every word it encounters. It even does that for in-vocabulary words, though
it will not underline or show suggestions for in-vocabulary words.

Bug 19987461.

Change-Id: Ie61101fa8ab8917f3f49c77768dbcffd96c1685e
2015-04-07 10:48:36 -07:00
Dan Zivkovic
ec2891b007 Define stats for UserDictionaryLookup.
Bug 20071513.

Change-Id: Iaab909575da29bfe6e17bb3865ce51d1e7720e7c
2015-04-06 11:10:55 -07:00
Tom Ouyang
e1b13a4550 Log timing for performUpdateSuggestionStripSync.
Change-Id: Id08daf7c06e874b43deed77a49b65969dadb1565
2015-04-03 15:23:52 -07:00
Dan Zivkovic
4c326c66e9 Merge "Log timing of commitChosenWord()" 2015-04-02 22:57:12 +00:00
Dan Zivkovic
5d2314fea0 Log timing of commitChosenWord()
Bug 19987461.

Change-Id: If5bb798a350e9083ee8b67a84af132c100f0a7eb
2015-04-02 15:54:28 -07:00
Dan Zivkovic
3350f70371 Merge "Log timing of commitChosenWord()" 2015-04-02 22:46:57 +00:00
Dan Zivkovic
9731fadcb4 Log timing of commitChosenWord()
Bug 19987461.

Change-Id: Ibeebb9f1b1c4f3a9ed988c9e20209a9c83b5a359
2015-04-02 15:43:11 -07:00