Commit graph

64 commits

Author SHA1 Message Date
Jean Chalard
a7d0ab80a0 Fix an off-by-one error.
These variables were meant to represent the (x,y) coordinate of the
last pixel of the grid, to avoid going one pixel too far. But the last
pixel of the grid, of course, has coord (width - 1, height - 1).

This bug only ever happens in a rare case because to reproduce,
it needs the right (resp. bottom) coordinate of the rightmost
(resp. bottommost) plus the threshold plus half the grid width
(resp. height) to be exactly the number of pixels of the grid,
which is pretty unlikely... unless there are more tiles in the
grid than pixels on the screen, in which case the grid width is
1 and this becomes likely.

This fixes the fencepost error and renames the variables to
clarify their meaning.

Bug: 10537485
Change-Id: Iecfe2c0f29ee17776ee2cceaa4b1db722276b1f3
2013-09-19 13:43:09 +09:00
Satoshi Kataoka
4994e1f2ba Workaround for AIOOB exception in ProximityInfo
Bug: 10537485
Change-Id: I185f17dcb2cd9e3af17a1eafefaa487804d5cce9
2013-08-29 15:47:47 +09:00
Tadashi G. Takaoka
7dc60f9db7 Add getters and copy constructor to Key class
Change-Id: I78eb96dcc26378926dc63acbfeb4828cbd44435d
2013-08-15 20:12:46 +09:00
Ken Wakasa
e28eba5074 Move util classes to the latin/utils directory
Change-Id: I1c5b27c8edf231680edb8d96f63b9d04cfc6a6fa
2013-06-24 17:04:40 +09:00
Jean Chalard
d55baf06d9 Optimize ProximityInfo#computeNearestNeighbors()
This cuts the time spent in computeNearestNeigbors by
a factor of 6 to 20, with an average at about 8.
This method representing about 25% of the total time
spent when switching keyboards, this change is a
20% improvement in layout switching time.

Bug: 8689779
Change-Id: Icb465f6010b317c7156057891c3341e51a198688
2013-06-18 20:33:52 +09:00
Satoshi Kataoka
244a24e368 Consolidate dummy proximity info to the spell checker info
Bug: 8783170

Change-Id: I067486e5ec1ae7cdef8e2121392464ba71ee8add
2013-05-08 11:49:12 +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
6e3f307266 Refactor SpellCheckerProximityInfo as extending ProximityInfo
Change-Id: I544eec9d661796d57749dbaa2163bc1e2a891353
2013-04-02 19:06:32 +09:00
Ken Wakasa
6c22439bf8 Remove MAX_PROXIMITY_CHARS_SIZE_INTERNAL
Change-Id: I18a997503de4033b5341b564145bca862a872098
2013-01-22 13:18:49 +09:00
Tadashi G. Takaoka
8aa9963a89 Fix Apache license comment
Change-Id: Ic56167f952a7f4449da366e1e81610e72c966086
2013-01-21 22:23:37 +09:00
Ken Wakasa
5db594abba Remove MAX_WORD_LENGTH_INTERNAL
Change-Id: Ie11ff000675601acff5fbb00e9e9f48eb32c5071
2013-01-15 12:39:08 +09:00
Tadashi G. Takaoka
308aaff80c Get rid of special keys from ProximityInfo
Bug: 7601672
Change-Id: I15faa4829b98f7b4dd07013fdd58bc2c527bcd6f
2012-12-03 18:50:58 +09:00
Tadashi G. Takaoka
240871ecaf Move code point constants from Keyboard to Constants class
Change-Id: Iee01d4d2b916d0b584531104ac865ae6e6370a3d
2012-10-29 16:04:20 +09:00
Tadashi G. Takaoka
f9aa99c1c9 Disable touch position correction of MoreKeysKeyboard
Change-Id: Ieec33894a348602fd71d6fe473142b43eb2551b6
2012-10-09 19:20:28 +09:00
Tadashi G. Takaoka
1775201671 Calculate default touch position correction data for keys on 4th row
This change also disables touch position correction for Phone/Dvorak
keyboard.

Bug: 7243101
Change-Id: Idfcc7ad1feabbe6a81635dceba5be087401fa18b
2012-09-27 17:55:58 +09:00
Tadashi G. Takaoka
6ca50d9920 Fix touch position correction data passing
Bug: 7225811
Change-Id: I3dcc0385ed633585d6810fdb742e0f88c2efbbd2
2012-09-25 14:24:15 +09:00
Tadashi G. Takaoka
35ff94547c Separate inner classes of keyboard package out under internal package
Change-Id: Ia3969bd5ddec5aa5d81d05ad4cf676d818587922
2012-08-30 15:37:55 +09:00
Tadashi G. Takaoka
ac78633be2 Rename and consolidate some constants
Change-Id: I7863936cca18b28bf0117afcbcf544a5fd7f185d
2012-08-21 17:54:53 +09:00
Ken Wakasa
bcec82de66 Clean up constructors
And, use C++ style casts and use float math functions rather than double ones to save memory space.

Also, stop using FloatMath and NativeUtils as standard Math methods are faster now.
See http://code.google.com/p/android/issues/detail?id=36199 and https://android-review.googlesource.com/40700

multi-project commit with I4259fb5ab8a15ac5760a7f04fc8f4c860529f04a

Change-Id: I0b81cff8c91769f7559a59b9528c75a5aabb4211
2012-08-13 10:48:37 +09:00
Tadashi G. Takaoka
56853c1e48 Use SparseArray<E> instead of HashMap<Integer,E>
Change-Id: Id962e670ee1a5164e6c69deb84625139bf5e7974
2012-06-29 17:56:31 +09:00
Tadashi G. Takaoka
9f42140ae2 Remove useless copy constructor of ProximityInfo
Change-Id: I56b4a99f670ad38708ad83d76b93a631295e3333
2012-06-12 15:13:07 -07:00
Satoshi Kataoka
3e8c58f68d Separate state from proximity_info step1
Bug: 6548943

Change-Id: I7b4fbe20615a28151a74875be43b9f4a20e0dce9
2012-06-07 13:35:34 +09:00
Tadashi G. Takaoka
60ee192b07 Utilize Rect's method
Change-Id: Ia3df1baae4b92eca828c53c17f68ff26b25e525c
2012-05-31 14:05:34 +09:00
Tadashi G. Takaoka
2866da88a7 Make ProximityInfo copy constructor for test
Change-Id: I94a29784591208af1849d4941a3b4789b93782de
2012-05-23 17:45:19 +09:00
satok
0028ed3627 Use "float" instead of "double"
Change-Id: I93ed4d88ede4058f081dd8d634b00dfff4e96d07
2012-05-16 20:45:05 +09:00
Ken Wakasa
88794b24c0 Remove the dependency to SpellCheckerProximityInfo from ProximityInfo.
In conjunction with I596b2deb

Change-Id: I42f059158ae78e1c1c807ed4d3688edbcf18c006
2012-05-11 17:03:06 +09:00
satok
209dd09e5a Come back the proximity correction to ExpandableDictionary
Bug: 6242539
Change-Id: Ic0467d54c9d85d0653812d4e127328878ef15b94
2012-04-02 15:01:21 +09:00
Jean Chalard
081616cd2f Send correct coordinates for the spell checker
This results in the computation being done in native code
and the correct proximity being used.
Bug: 6181080

Change-Id: I08fa05c781d607e4feca2caeda353ec19c133a3d
2012-03-23 13:02:58 +09:00
Jean Chalard
330cd291fa Make some constants more explicit.
This wasn't very obvious, but the actual values are critical, so
make it more readable
Bug: 6181080

Change-Id: I07461d2df4c796dad0cb6f5283e41a28036d023c
2012-03-22 14:28:05 +09:00
satok
728d1c884e Cleanup proximity related code
Bug: 4343280
Change-Id: I57c0f9e20d9d8911009ea97057251a7f7a81512f
2012-03-19 18:33:59 +09:00
satok
2d5c40d873 Send key information even when the touch position correction is not triggered.
Bug: 4343280
Change-Id: Id24935f9f0f66ebaa799bb92537d842033427c4c
2012-03-14 19:01:08 +09:00
Tadashi G. Takaoka
b4fbbe57f5 Avoid using collection interface, using array instead
Change-Id: Ie0554362b73967bfcbbab6ad19c24683066a608e
2012-03-13 20:53:15 +09:00
satok
7ef1dabd92 Pass the locale to the native code
Change-Id: I8f73b9b33cca56b3fa44ec6259c0896be22f4a47
2012-03-13 19:16:33 +09:00
satok
552c3c27f0 Implement additional proximity characters in the native code
Bug: 4343280

Change-Id: I9bbc5cab2fef1ee80c1fe32017df811ef8af10bc
2012-03-13 17:38:50 +09:00
Tadashi G. Takaoka
f686211183 Merge "Split Utils class to StringUtils, SubtypeUtils, and JniUtils" 2012-03-08 03:59:59 -08:00
Tadashi G. Takaoka
cc8c8b99bd Split Utils class to StringUtils, SubtypeUtils, and JniUtils
Change-Id: I09e91675fe7d573dad8c933ad513b21d7e409144
2012-03-08 20:30:38 +09:00
satok
a70ee6e3b3 Add functions to calculate proximity characters in the native code
Bug: 4343280

Change-Id: I17f8f6295b01900948b98680d0267753f33a46cf
2012-03-08 12:55:15 +09:00
satok
370674422a Refactor to suppress null worning
Change-Id: I4b4dc6f86d659491d8b9a74ed120092eab964345
2012-03-05 18:15:29 +09:00
Tadashi G. Takaoka
2affaf91a0 Rename mini keyboard to more keys keyboard
Change-Id: Ie4c85e8ca5a1f41a420aae5c1cd9c1cb07e237e5
2012-02-08 16:12:31 +09:00
satok
e05b3f4b3a Support additional proximity characters
Change-Id: Ifbe0d7e4eafea1926bbce968eae4724dd5769689
2012-02-02 16:07:16 +09:00
Tadashi G. Takaoka
4e1dab8cfa Move KeyboardBuilder and KeyboardParams classes into Keyboard class
This change also moves XmlParseUtils to com.android.inputmethod.latin package.

Bug: 5778201
Change-Id: I7d9faa344460753ce178ad4048e0fadb65c75614
2011-12-18 20:19:16 +09:00
Tadashi G. Takaoka
4a019a9c96 Use Set to group Keys in Keyboard instead of List
In deriving various shift stated alphabet keyboards from base/main
keyboard, almost all keys should be shared among variants.  Grouping
keys in Set instead of List is a essential refactor to have.

Bug: 5002108
Bug: 5679585
Change-Id: Idd5644d1c45a3276a24b61c984619c03d4e4c54c
2011-12-16 21:04:04 +09:00
Tadashi G. Takaoka
0c0ca874fe Get rid of key index from ProxymityInfo
Change-Id: I9bee0a643d09cdd89e42ae913285c9e78d875c1c
2011-12-16 21:03:36 +09:00
Tadashi G. Takaoka
6cb72b0f36 Cleanup ProximityInfo.calulateSweetSpot
Change-Id: I98238359dffd76a620d3b0e73b3b22dd82c56c93
2011-12-16 14:59:24 +09:00
Jean Chalard
1830cd1dc8 Add proximity for Russian.
This also tries to make the code as easy to extend as possible
for future developments.

Bug: 5701241
Change-Id: I1ed48e6a5cc7aab94c5d6e309930cc004247d7e7
2011-12-08 19:00:52 +09:00
Tadashi G. Takaoka
5fdcd7d5cd Fix JNI as 64bit ready
Change-Id: I7a3ed2cee3b20744869aa5cf89ff9fd95f5ab8fe
2011-10-31 20:44:01 +09:00
Tadashi G. Takaoka
ab72a97d7c Cleanup unused import
This change also gets rid of several compiler warnings.

Change-Id: I23962edaadad18a6e0395d528af17b909dcf5dad
2011-10-04 12:46:20 +09:00
Yusuke Nojima
294e1b4a5a Pass the touch position correction flag from KeyboardSwitcher.
Change-Id: Ia242a9fa2fa71f7fdf8f974071a2df7acc4aa51f
2011-10-03 20:41:03 +09:00
Yusuke Nojima
258bfe66e0 Classify touches into three types.
Change-Id: I7c1d42835e0c15d596a1b66d421b0aa514ec0890
2011-09-30 17:22:22 +09:00
Yusuke Nojima
ad35835bac Pass the touch position correction data to native.
Change-Id: I92958779377a530410d1682100f9d0a2ba267dea
2011-09-29 17:00:49 +09:00