Commit Graph

4603 Commits (dae357aa39fa50a5742948c8ff3e8e20e61e1246)

Author SHA1 Message Date
Jean Chalard d40f3f6bc1 Reject a previously user-refused suggestion.
If the user gestures a word, then hits backspace in
disapproval, and gestures about the same thing again,
make sure that we don't suggest the same thing again.

Bug: 7549311
Change-Id: I793bc4df7c3841fa8f2f4146707c26e873f374c1
2013-04-15 16:36:44 +09:00
Tadashi G. Takaoka 216fb6a042 Remove unnecessary harmful finish() from SettingsActivity
Bug: 8560722
Change-Id: I825b135bd13aca17e712330660978b834648dbc3
2013-04-15 16:26:40 +09:00
Tadashi G. Takaoka 1ec4c07a13 Merge "Ignore modifier key while sliding key input" 2013-04-15 06:19:10 +00:00
Tadashi G. Takaoka f224941c37 Merge "Suppress calling onPressKey and onReleaseKey while detecting gesture" 2013-04-15 06:18:48 +00:00
Tadashi G. Takaoka 29105a725d Add preference dependency to gesture input related options
Bug: 8613600
Change-Id: I279d3264080aede59203205c45763c7f8ff08ae6
2013-04-15 15:07:49 +09:00
Tadashi G. Takaoka 8dfbb740e1 Ignore modifier key while sliding key input
Bug: 8284624
Change-Id: I839d7a769d98f29be647dbe511ba3f73ca44446d
2013-04-15 14:39:02 +09:00
Tadashi G. Takaoka e2af9b7eb5 Merge "Reset vertical correction when more suggestions are in modal mode" 2013-04-15 04:57:33 +00:00
Tadashi G. Takaoka 51c38a441a Reset vertical correction when more suggestions are in modal mode
Bug: 8605150
Change-Id: Iadbebfb80e765c97e58e8524eb87419f2a9e41d4
2013-04-15 13:56:03 +09:00
Jean Chalard 03d1dff38d Merge "Fix Binary dict tests" 2013-04-15 03:53:54 +00:00
Jean Chalard c2e9c511cb Fix Binary dict tests
There are two problems here. The first one is the tests would send
an invalid unicode character. Although we could want dicttool to
handle this more gracefully, it's fine for now.

The second problem is much more serious. If a node has more than
128 children, then the java code will crash trying to read the
dictionary back because of a bug that this change fixes. In
theory, it's possible that happens when we try to load the user
history dictionary back from the disk - native code is not affected
so there is no other point that may cause a problem.
In the practice, that means you'd need to have 129 words with a
common prefix (including empty string) but all different after
this. It's almost impossible with Google Keyboard since there are
only so many keys on the keyboard that you can make a word out
of, and then again you'd have to do it repeatedly until it
actually enters the user history dictionary, wait for it to get
saved on the disk.
The bad news is, if you manage to get this far, the keyboard will
crash every time and won't be able to get up until you clear
data for the package.
The good news is, the dictionary itself is not corrupted and only
the reading code is wrong. So updating to a newer version would
actually even recover from this situation.

All in all, considering how almost-impossible this is to trigger,
I don't think even a single user actually did hit this bug.

Bug: 8583091
Change-Id: Iabb2a7f47cbd9ed3193d2a3487318d280753e071
2013-04-15 12:48:16 +09:00
Tadashi G. Takaoka a91da76683 Suppress calling onPressKey and onReleaseKey while detecting gesture
Bug: 8284624
Change-Id: I14470bb2373965aefa921b2c94948450bfa438e3
2013-04-15 10:59:54 +09:00
Kurt Partridge ededdc6a8b Merge "Avoid NPE" 2013-04-12 18:10:49 +00:00
Jean Chalard 2cd1136b8e Merge "Remove the dialog to insert words to the dictionary." 2013-04-12 12:33:24 +00:00
Jean Chalard 91bcf5eb5d Merge "Restart suggestions when the cursor moves." 2013-04-12 12:27:50 +00:00
Jean Chalard 02ce3dc2d1 Fix a bug with bad application completions
Bug: 8561056
Change-Id: I91fb0ac76dabfc841bafc0e2c0ea9f63e6f604f9
2013-04-12 20:53:06 +09:00
Jean Chalard 6a114fa700 Restart suggestions when the cursor moves.
This uses the old suggestions. It does not try to recompute
new suggestions if there are no old suggestions yet: this is
coming in a later change.
If there are no suggestions, this shows the word itself
as a suggestion.

Bug: 8084810
Change-Id: I4c2e25df0ff3673be1825f57a0c19a9d23d47a48
2013-04-12 20:49:03 +09:00
Jean Chalard d24f939712 Merge "Make shortcut-only user dict entry non-words." 2013-04-12 11:02:00 +00:00
Jean Chalard fb5869e9ff Merge "Add a class to encapsulate getting the metadata URI" 2013-04-12 11:01:36 +00:00
Jean Chalard 6a2a4b8e4d Make shortcut-only user dict entry non-words.
Bug: 7369456
Change-Id: Iecd6f6d617f31bd2aa6749516711aeb1f0549622
2013-04-12 16:17:09 +09:00
Jean Chalard 1a51833828 Remove the dialog to insert words to the dictionary.
Bug: 8562529
Change-Id: Ibd853f0cb995e7fb35f8730eafcef73ead58c869
2013-04-12 15:58:50 +09:00
Kurt Partridge 2927223edd Merge "Better isolate ResearchLogging data" 2013-04-11 21:56:01 +00:00
Jean Chalard 8987cccf89 Add a class to encapsulate getting the metadata URI
Bug: 8376173
Change-Id: Icaac8ad412e0180c44e6a955943e3b208981b2ea
2013-04-11 17:52:16 +09:00
Jean Chalard b5d5190deb Merge "Add some utility functions." 2013-04-11 07:35:22 +00:00
Jean Chalard 1cbb0b8f2a Add some utility functions.
Bug: 7657025
Change-Id: I4889721b5348c77ed56c5157557e9988dea48a02
2013-04-11 16:16:19 +09:00
Tadashi G. Takaoka bd8e92d843 Add debug message to detect unusual zero width condition
Bug: 8452013
Change-Id: I0169dc6b0d08d1b4d9e01a5fa2ad01e9db292bda
2013-04-11 15:08:36 +09:00
Tadashi G. Takaoka f67a388197 Merge "Add TypefaceUtils" 2013-04-11 05:32:58 +00:00
Tadashi G. Takaoka 08ae0d5ca0 Add TypefaceUtils
Change-Id: I2d939bc1e3279253902b28ff12bbf7861716b64d
2013-04-11 14:27:42 +09:00
Tadashi G. Takaoka 6d0027a46a Merge "Use SparseIntArray instead of TreeMap<Integer, Integer>" 2013-04-11 05:06:35 +00:00
Tadashi G. Takaoka cee512b63e Merge "More precise geometry checking for more keys keyboard" 2013-04-11 03:51:42 +00:00
Jean Chalard 3722f0877e Merge "Fix two bugs in dicttool" 2013-04-11 03:07:30 +00:00
Tadashi G. Takaoka a4463d7a9a More precise geometry checking for more keys keyboard
Bug: 8484528
Change-Id: I0dd09530a5262fee9c19bb0f11d5830b00306944
2013-04-11 10:44:54 +09:00
Kurt Partridge cdaee868a3 Merge "Preserve a class for testing" 2013-04-10 23:45:33 +00:00
Kurt Partridge 3684036eed Preserve a class for testing
Addresses b/8583091

Change-Id: I89605223784312d9572dfc7c8aaa7e5eba44c4f6
2013-04-10 16:40:17 -07:00
Kurt Partridge 6108624a00 Better isolate ResearchLogging data
Calls to LatinIME#onStartInputViewInternal log important information
about the context in which an IME is used.  This is reported as a
single LogStatement.  Previously, this was not placed into a separate
LogUnit, and was mixed in with general word data.  This change wraps
this LogStatement in its own LogUnit.

Change-Id: I0fecd41c8a1de622a764cc4b5d6902336697046c
2013-04-10 11:53:38 -07:00
Kurt Partridge dfa5628cd3 Better release build reporting
The ResearchLogger reports whether a build is a release build or not
to avoid polluting data with IME debugging work by developers.
Previously this was done by checking a constant flag, which was also
serving the dual purpose of masking out debug code in release builds.

This change introduces a heuristic to determine whether a build was
created by a developer (using the package versionName), and annotating
the data sent to the server appropriately.

Change-Id: Icbad17c66b703cabf6d23d05e2c7c41bcceaae45
2013-04-10 11:52:37 -07:00
Jean Chalard ca0fdbbe2e Fix two bugs in dicttool
Both bugs only affect debug mode. One has the wrong object tested
with equals, the other has the iteration failing in some cases.

Change-Id: Ie9100d257a3f9e3be340cf3e38116f63417bdc1a
2013-04-10 22:10:31 +09:00
Jean Chalard fb3e805722 Merge "Fix a bug where a space would not be inserted before a gesture" 2013-04-10 11:19:31 +00:00
Jean Chalard 30b8004b56 Fix a bug where a space would not be inserted before a gesture
Bug: 8583675
Change-Id: I14924fef5663f48481994c02c56be45f9f85be65
2013-04-10 20:10:28 +09:00
Tadashi G. Takaoka c7d4158979 Merge "Use private object as a lock instead of synchronized method" 2013-04-10 09:56:27 +00:00
Tadashi G. Takaoka 12e77de212 Merge "Use private lock object instead of synchronized method" 2013-04-10 09:35:12 +00:00
Tadashi G. Takaoka 1e256f5888 Merge "Protect simultaneously modifying gesture preview data" 2013-04-10 09:34:59 +00:00
Tadashi G. Takaoka 951ea3c06d Use private object as a lock instead of synchronized method
Change-Id: I0b9a935d8c97ddfb18ab7950a9d6bf542863072a
2013-04-10 18:34:01 +09:00
Tadashi G. Takaoka ce811f50d2 Use private lock object instead of synchronized method
Change-Id: Ifc62bacbd0583a7d102009681a94bdd9ccff7d47
2013-04-10 18:27:11 +09:00
Tadashi G. Takaoka ad205b2e3f Protect simultaneously modifying gesture preview data
Bug: 8556775
Change-Id: I83272e3adbfc0c9cc14f9e8b479e926aabf4fa2a
2013-04-10 18:18:54 +09:00
Jean Chalard 99b93d17d5 Fix a bug where autocorrection status would be wrong.
Change-Id: Ic220129dc59f585164dbf63591cd1c96de17fe6f
2013-04-10 17:49:19 +09:00
Tadashi G. Takaoka 262d5bd9f9 Don't override EXTRA_SHOW_FRAGMENT if exists
Bug: 8541190
Change-Id: I37d3de12558efd55f157389d2e0b51fc83dc5da1
2013-04-10 16:24:17 +09:00
Tadashi G. Takaoka 10af4b6e45 Merge "Separate StringUtils.capitalizeFirstCharacter" 2013-04-10 06:30:33 +00:00
Tadashi G. Takaoka d20c5a78e2 Separate StringUtils.capitalizeFirstCharacter
Bug: 8582061
Change-Id: Iac8f65defdd92d7df533bdf0e2937ad897d96363
2013-04-10 14:55:23 +09:00
Keisuke Kuroynagi 87fdde6ec4 Typing double letters via a 'circle' on the key.
Bug: 8550980
Change-Id: I5e432dea0e025ccea196f80e90a6bf945488e130
2013-04-10 12:43:13 +09:00
Tadashi G. Takaoka f606fd8554 Hide Setup Wizard icon for stock keyboard
Bug: 8581647
Change-Id: Id530f1a33a5c919f4a732ec0d545dfbe76e56316
2013-04-10 12:24:40 +09:00
Tadashi G. Takaoka 869ea1e555 Use SparseIntArray instead of TreeMap<Integer, Integer>
Change-Id: I56a64228a5fd85d440d0d08ac67cba8bf2e5690d
2013-04-10 10:15:26 +09:00
Tadashi G. Takaoka 4fdfce6dcc Merge "Refactor SpellCheckerProximityInfo as extending ProximityInfo" 2013-04-10 01:06:36 +00:00
Kurt Partridge 09ab6495a2 Merge "[FileEncap18] Clean up uploading scheduling" 2013-04-09 19:08:40 +00:00
Jean Chalard 19dcd15493 Merge "Offer to add any OOV typed word to the dictionary." 2013-04-09 10:28:47 +00:00
Jean Chalard ddafcf82dc Merge "Fix bugs and add tests" 2013-04-09 08:35:28 +00:00
Jean Chalard 9310f42a36 Offer to add any OOV typed word to the dictionary.
That includes gestures, which used not to work.

Bug: 8532637
Change-Id: I04606565d7000faadf954c4a806c39d4d162a2c1
2013-04-09 12:05:54 +09:00
Kurt Partridge 1f70a4d681 Merge "Allow logging while replaying" 2013-04-09 02:33:09 +00:00
Kurt Partridge d117c1a116 Merge "Do not record log split time when handling separator" 2013-04-09 02:31:48 +00:00
Ken Wakasa d17c8bd929 Update comments
Change-Id: I6aef328ec9041666cc168c8323bed04d39591b71
2013-04-08 23:05:45 +09:00
Jean Chalard c87449497c Fix bugs and add tests
Change-Id: I6b56b91ace57f4a49584b5dceb71b145859f839e
2013-04-05 12:11:19 +09:00
Jean Chalard 7d3836d63a Move a generic string utility to StringUtils
Change-Id: I9cc2e9a7ac0b3346af40bcb083f939333336cf09
2013-04-05 12:09:14 +09:00
Tadashi G. Takaoka 6e3f307266 Refactor SpellCheckerProximityInfo as extending ProximityInfo
Change-Id: I544eec9d661796d57749dbaa2163bc1e2a891353
2013-04-02 19:06:32 +09:00
Jean Chalard ecb59eff90 Revert "[DO NOT MERGE] Activate hardware keyboard handling"
This reverts commit c741f1f83b
DO NOT MERGE is ignored and this is merged anyway :(

Change-Id: Ie044cdfc6021933379ec97ad7346c5c8591f70bf
2013-04-02 16:08:48 +09:00
Jean Chalard c741f1f83b [DO NOT MERGE] Activate hardware keyboard handling
Change-Id: Ifdec9338a454291621b2b87c899f5d4301480b27
2013-04-02 15:38:13 +09:00
Kurt Partridge 30772c3758 Allow logging while replaying
Previously logging was disabled during replay.  This makes it impossible to use logged data as a
regression test, since the new log was unavailable.  This change corrects this problem.

Change-Id: I19dc31def2f2f87fd219dc561c739d18e4ab9c9c
2013-04-01 16:49:39 -07:00
Kurt Partridge 636b8c4231 Do not record log split time when handling separator
Previously handleSeparator() caused the ResearchLogger to mark the time at which a LogUnit should be
broken.  However, this causes the motion data associated with a separator to be associated with the
LogUnit of the previous word.  This change corrects this bug.

Change-Id: I8b4d4fa6de2a013de9e2a28bb668c446a07f1957
2013-04-01 16:48:15 -07:00
Kurt Partridge 5779bc91e6 Merge "Split LogUnits differently." 2013-04-01 23:08:21 +00:00
Kurt Partridge 0c0ab2b4d9 Merge "Reorder ResearchLogger call" 2013-04-01 15:19:45 +00:00
Jean Chalard 0745fe83d4 am b8869ec1: am 0fcc4960: Deactivate hardware keyboard handling.
* commit 'b8869ec1e39c1751825841e790d21fc854dca9ce':
  Deactivate hardware keyboard handling.
2013-04-01 05:42:42 -07:00
Jean Chalard 0fcc4960bc Deactivate hardware keyboard handling.
Bug: 8000119

Change-Id: I021481343d6d87efd8ff6110e9aa0906a1a3d11d
2013-04-01 21:35:45 +09:00
Tadashi G. Takaoka 75028af28c Interpolate gesture preview trails
There is the boolean flag to kill interpolation.

Bug: 7167303
Change-Id: Iac7e4cb88cf437c2ee77c003c9cddb92416025c7
2013-04-01 19:15:36 +09:00
Jean Chalard 43341ba042 Merge "Ask the client to make itself known when it's not" 2013-04-01 09:00:25 +00:00
Jean Chalard 76d5f512f9 Ask the client to make itself known when it's not
Upon invoking the settings of the dictionary pack with an unknown
client, we now launch an intent to ask the client to make itself known.
This change also includes the code that receives this intent and
acts upon it.

Bug: 8492879
Change-Id: I2c6496dea845646961ecafcf64e282cb93ee91dc
2013-04-01 17:37:22 +09:00
Jean Chalard 065f126f1d Merge "Fix two nasty bugs with surrogate pairs." 2013-04-01 08:28:08 +00:00
Jean Chalard a411595b16 Fix two nasty bugs with surrogate pairs.
The important bug is in findWordInTree. The problem, which is
not obvious, is that we were calling codePointAt() with the
code point index in the string, instead of the char index.
The other bug this change fixes was harmless in the practice,
because it's in the iteration which is only used for debug and
pretty printing purposes. It's very similar in that it would
substract a length in code point to a length in chars and
truncate a StringBuilder at that length, so it would fail in a
quite similar manner. This changes the meaning of the "length"
attribute in Position, but it's clearer this way anyway.

Bug: 8450145
Change-Id: If396f883a9e6449de39351553ba83f5be5bd30f0
2013-04-01 17:06:19 +09:00
Jean Chalard 740da0d8d0 Fix an NPE
Also remove an unused method and make 2 private variables
final.

Bug: 8461093
Change-Id: I676d93fda28e82eb5a6978f2e7ad5a0add2cbecf
2013-03-29 18:41:29 +09:00
Tadashi G. Takaoka 48d8d8d0ae Fix potential NPE in MainKeyboardView.KeyTimerHandler
Bug: 8469652
Change-Id: Ib7a548e6a24d2e02de85ab444c0ec99d8f6b82c3
2013-03-28 17:54:36 +09:00
Jean Chalard 2188cbae63 Merge "Fix an NPE" 2013-03-28 06:56:49 +00:00
Jean Chalard d555a0d77a Merge "Cleanup" 2013-03-28 06:16:40 +00:00
Jean Chalard 28d5f4577f Fix an NPE
The code was passing the wrong parameter.

Bug: 8492879
Change-Id: I091d62ca29601e3807eed287c7bdad38bf43a502
2013-03-28 15:08:05 +09:00
Jean Chalard dae90cfb01 Cleanup
Seems there was an unclosed cursor :o

Change-Id: I7616849ace5217d8c6f54465f7b3a634e3c14116
2013-03-28 14:43:32 +09:00
Satoshi Kataoka f463b45d8e Merge "Fix Possible NPE" 2013-03-27 04:51:48 +00:00
Satoshi Kataoka 2cdf5351aa Merge "Fix possible SIOOBE" 2013-03-27 03:28:49 +00:00
Satoshi Kataoka 33306acfa4 Fix possible SIOOBE
Bug: 8461021

Change-Id: I8b0385610b80b5a672ec380935c485a0e01ae984
2013-03-27 12:25:02 +09:00
Kurt Partridge 39cb0334d9 Avoid NPE
Initialize FeedbackLog earlier to avoid NPE

Change-Id: I646944c68a7d092345def16060b2a4edd8c7dbef
2013-03-26 16:46:43 -07:00
Kurt Partridge 189be5196a Split LogUnits differently.
Previously an autocorrection caused a new LogUnit to be started,
splitting off the previous LogUnit right at the autocorrection method
time.  This change causes the split to happen before the MotionEvents
that led to the autocorrection being called.

Change-Id: I2504df8eb47ee77e5f46bac34a8450636c03fd9f
2013-03-26 16:46:43 -07:00
Kurt Partridge cb25e1fe37 Reorder ResearchLogger call
Previously, ResearchLogger#onWordFinished() was called with an outdated parameter value for
isBatchMode, causing it to report false even for gestures.  This changes fixes this problem.

Change-Id: Ifcabee236ba5fe20376ad882155d3f3142cd7613
2013-03-26 14:37:57 -07:00
Kurt Partridge ef103e1f2e Merge "Close ResearchLogger upon onFinishInputView" 2013-03-26 19:23:00 +00:00
Tadashi G. Takaoka 73d00e68d8 Merge "Use XmlPullParser.getEventType()" 2013-03-26 05:38:18 +00:00
Satoshi Kataoka 435cccb2c5 Fix Possible NPE
Bug: 8448448
Change-Id: Ibe89c9abd24c4debb33a69c372eadf2afb09ea1c
2013-03-26 13:02:23 +09:00
Satoshi Kataoka 0b3271010f Merge "Fix possible NPE" 2013-03-26 03:49:06 +00:00
Tadashi G. Takaoka 52f4b04768 Use XmlPullParser.getEventType()
Change-Id: Ie423d3416639f81409cc920658c8088b7519b045
2013-03-26 12:13:56 +09:00
Tadashi G. Takaoka d17b69ec00 Clean up XmlParserUtils
Change-Id: I636e8f359d47f39e61a7f77e3e686f2721779b6f
2013-03-26 12:03:07 +09:00
Kurt Partridge 6d71d238e2 [FileEncap18] Clean up uploading scheduling
- Move scheduling logic from ResearchLogger.java to
  UploaderService.java
- Switch to a one-shot timer.  Previously the uploader was scheduled
  on an inexact repeating schedule.  It's better to reschedule the
  next upload after the current one is finished to reduce the chances
  of multiple uploads happening at the same time.
- Avoid double-execution
    - Previously a scheduled upload might run right after an explicit
      one if they occured at the same time.  This change reduces the
      chances of this.
- Some method extraction and naming

Change-Id: I9efda11be77d334c7f61bd40a36d65f0421ebde4
2013-03-25 17:50:26 -07:00
Kurt Partridge 87bc3a4a62 Close ResearchLogger upon onFinishInputView
Previously, ResearchLogger#stop() was called both in
LatinIME#onFinishInputView() and in LatinIME#onWindowHidden().  This
resulted in multiple logs being written.

Since onFinishInputView is the more reliable of the two (it is called
in InputMethodService#onDestroy; onWindowHidden is not), the code now
uses onFinishInputView as a stopping signal.

Change-Id: Iae4b8c3bdab226027624eeab19b3737367e4a108
2013-03-25 17:31:25 -07:00
Satoshi Kataoka a17dccbfc6 Fix possible NPE
Bug: 8457109
Change-Id: I321fbef53e20a7c36ef4bd9f544b50abe6a52be9
2013-03-25 19:00:38 +09:00
Tadashi G. Takaoka fb658d6c53 Fix possible ArrayIndexOutOfBoundsException
Bug: 8461864
Change-Id: Icd8f4f51ec064461c08d00c1c58bedf5fbae2553
2013-03-25 12:37:04 +09:00
Alan Viverette a7b4398c35 Don't announce changes for A11y within the same keyboard mode.
Bug: 8439108
Change-Id: If9f14bb65625468dcd399df47ad0d2123be30be7
2013-03-22 11:53:12 -07:00
Satoshi Kataoka 19a7008728 Merge "Fix appname" 2013-03-22 07:23:08 +00:00
Satoshi Kataoka 3c8117c88f Fix appname
Bug: 6789579
Change-Id: Ic4694e36e0846af95fa8dcdef919be251983b528
2013-03-22 16:19:44 +09:00