This change adds basic support for an external dictionary provider.
It adds methods for reading the dictionary itself from an asset in
the dictionary provider package directly, obtaining the file name
through the ContentProvider interface; it also adds a way of getting
the data through an InputStream and copying the file locally.
Incidentally this change also adds the code needed to listen for
updating the dictionary provider package and reloading it in time.
This change also goes hand-in-hand with Iab31db6e, which implements
the small closed part of this.
Issue: 3414944
Change-Id: I5e4fff99a59bb99dbdb002102db6c90e6cb41c8a
This changes:
* Flag initialization code in BinaryDictionary to be more unit test friendly.
* Removing unnecessary class hierarchy of LatinIME inner class WordAlternatives.
* Formatting normalized score neatly.
Change-Id: I9f10c093d4f36258fe883cf3fb10cbbda2770497
This change also corrects usage of "frequency", "priority" and "score"
* Frequency is the relative probability in dictionary.
* Score is the relative probability in suggestions.
* Priority is kind a sorted score.
Change-Id: Iafb135a4ecdb401cc505014a07c74dfcac44d699
It used to be the case that the scoring system turns up the same word
that was entered with a different capitalization, but with a lower
score than some other, more frequent word. To cope with this, there
was code that would order such candidates in the first slot no matter
what. This processing is now useless because fully matching words now
have a huge boost that ensures they will get to the top of the list,
before any non-fully matching word (which means, differing only by
capitalization or accents).
The bug that did happen with this was, if a fully-matching word got
matched by several processing passes, and the (chronologically) later
score affected to this word was weaker, it would result in the
duplicate removal pass removing the stronger score. This in turn would
mess with autocorrect.
In an effort to keep the risk at a minimum for MR1, this change does
not actually remove the useless code, but adds a check in the odd case
to avoid the bad situation. Another change will remove the code for
ICS release.
bug: 4100269
Change-Id: I18c0575332981ffec0e257e26a360995838d521e
Words that matched user input with skipped characters used to be demoted
in BinaryDictionary by a constant factor and not at all in those dictionaries
implemented in java code. To represent the fact that the impact of a skipped
character gets larger as the word is shorter, this change will implement a
demotion that gets larger as the typed word is shorter. The demotion rate
is (n - 2) / (n - 1) where n is the length of the typed word for n >= 2.
It implements it for both BinaryDictionary and java dictionaries.
Bug: 3340731
Change-Id: I3a18be80a9708981d56a950dc25fe08f018b5b89
For German : handle "ae", "oe" and "ue" to be alternate forms for
umlaut-bearing versions of "a", "o" and "u".
Issue: 3275926
Change-Id: I056c707cdacc464ceab63be56c016c7f8439196c
This change removes the boolean flag mJustReverted. Because we
preserve separator after canceling auto-correction according to
bug#3230708, there is no need for this flag now.
Bug: 3193810
Change-Id: Icea06ece569774b494ffa4ca4a899c898661cc19
At the moment, if there is no binary dictionary, even when pressing the
word in the suggestion strip the option to save in the user dictionary
is not displayed. This change addresses that.
Bug: 3363756
Change-Id: I4993a7f81ed15ab948a3098cdc49663e0f109e4a
This change deprecates "nm" private IME options and introduces new
private option, <package name>.noMicrophone, instead.
Change-Id: I9d5e3daaead2cdd42e017cd29f5f786ef3ba3649
When entering a word without accents the user expects the system to
add accents automatically if there is no other matching word. This
patch ensures the accented version is promoted accordingly and
autocorrection really takes place.
Issue: 3400015
Change-Id: I8cd3db5bf131ec6844b26abecc1ecbd1d6269df4
This change also introduces number password (a.k.a. PIN) layout. The
text password layout will follow.
Bug: 3384942
Change-Id: I50b5e413e47a28d5285fd0468115e11ce46c7f18
It appears it is not useful to listen to this change, because in any
case, settings will be reloaded when the view is shown again or when
IME is changed.
Change-Id: I08dddccc630b01718da7fab011ce14f189dd31c3
Also change the name of the default value for re-correction for
consistency with other constant names.
Bug: 3426884
Change-Id: I615ba640fb17e6d7514b8a0e4f52028eb0e23908
Move and rename KeyboardView.computeProximityThreshold to
KeyDetector.getMostCommonKeyWidth. And make it public for unit test
use.
This is a part of multi-project change (If751659a, Idb18f362)
Bug: 3414081
Change-Id: If751659a53c7412f836d6d28866760ffe84b179b
Change the default value when retrieving the PREF_SOUND_ON property
from the Settings from false to true.
Change-Id: I871cfaaf1f33b5e0301c84ee9c94f1c429901021
Killing the process allows for some settings that are read only on
service start up to be correctly read again.
Change-Id: Ia48f2ca4760a530ac47b727f290d606715cb6bde
If the configuration says the device should not display the "Pop up
on key press" setting, then do not read the preference and always
use the default setting.
bug: 3406181
Change-Id: Ice2989760cda1d40387ed88311144cbf2c114b93
Bug: 3374359
Bug: 3278422
"zbe" will be auto corrected to "be" by fixing s-line
"teh" will be auto corrected to "the" by promotion of full matched words
Change-Id: I314c632820e4e0b1501edeca60ada205d291451f
This reverts commit de59a84029 (Ie8d4469b).
The requested feature has been implemented by I92d98bed.
Bug: 3238092
Change-Id: I9d53030b3d5c9a0f24883292a93576a3231813aa
This change aslo eliminates duplicate suggestion from past
suggestions. And call setTypedWordVaild to past suggestions.
Bug: 3367722
Change-Id: I7ffaa2f7e4e30b3951b6c2df002d269671c9d654
Conditionally remove the "Quick fixes", "Bigram suggestions" and
"Usability study mode" options, depending on configuration.
When disabled, have the quick fixes and bigram option become
false if autocorrect is off, and true otherwise.
Also reorder options to bring "Auto correction" above "Show
suggestions".
bug: 3282448
Change-Id: Ib7fd928be417a816ef9e21423a531773069b7468
Add a "General" category to enclose general settings, and rename
"Word suggestion settings" to "Text correction".
bug: 3282448
Change-Id: Ie695683af0646974da82e29e11d1c3a785ef46c7
There has been a bit of refactoring in RecognitionView in particular to fix the portrait layout.
The main issues found were:
- the size of the keyboard is specified in inches, and
(cm)(inches + inches) != ((cm) inches) + ((cm) inches))
- the height of keyboard background is high as the landscape keyboard, but it higher than
the portrait keyboard. This is not an issue on LatinKeyboard, as it overwrite the
onMeasure method. However, if I use the same image background in RelativeLayout
the Relative layout height is set to the height of the background, thus higher than the keyboard
- the change configuration was not propageted correctly
Change-Id: Id5dca425826997c573ccae7a085d5ddc9719733b
Do not show the recorrection option on xlarge terminals,
and make it true by default. Also, bring the Auto-capitalization
at the top of the settings page.
Issue: 3282448
Change-Id: I51a9ae6c7e496be2970107277f0a4ac65b12821e
Add an option to mask the sound on keypress preference, and
make it false on xlarge terminals by default.
bug: 3282448
Change-Id: I747272d9edf854dc229aa620836cfa35a437d13f
This change also draws the language name in light gray on spacebar
without fading out even when the keyboard locale has not been changed.
Bug: 3362369
Bug: 3361915
Change-Id: I66538b03ce2e48c3441091319d0377176f8118ec
This change reverts removing SubtypeSwitcher.onConfigurationChanged by careless in I432be8f7.
Bug: 3290290
Change-Id: I796ea01877d61eb750dabdeb3fdbf87666646c56
This change also introduces the following.
* space bar language switcher is enabled for phone device.
* get rid of spcae key icon from number keyboard of tablet.
* slightly lower the position of language name on space bar of tablet.
Bug: 3290290
Change-Id: I432be8f757bcc84c257770112ff1f6fa7970c584
ApplicationInfo.sourceDir may or may not be apk file name. It can be a directory as well.
The spec just says it's "Full path to the location of this package".
Also, added error handling in loadDictionary().
Change-Id: I5e64d0aba4b1ec7634f4b3ac5537e7a774433ece
This change is a preparation for upcoming optimizations on dictionary file loading.
* We can consolidate dictionary files because we are no longer relying on Asset Manager.
* Stopping compressing dictionary files as planning to use mmap() on the region in the apk file.
* Probably we won't rely on Asset Manager. Instead we'll probably use offset and size obtained from AssetFileDescriptor.
Change-Id: Id57dce512fd3d2397a58628f8264bd824194da76
This change also fixes auto snap back behavior of key which has output
text, such as smiley key.
Bug: 3297825
Change-Id: Ia06e1abc0fbdff2a26504ddcce1dc7f933b45453
This change
- introduces the popupKeyboardTemplate attribute of Keyboard to
specify XML Keyboard file for popup mini keyboard.
- introduces the maxPopupKeyboardColumn attribute of Keyboard to
specify the maximum column of popup mini keyboard.
- changes the content format of the popupCharacters attribute of Key.
It now represents keyLabel, codes and keyTextOutput of each key of
popup mini keyboard using CSV format.
Bug: 2214959
Change-Id: I539e310f7e38a049ee193de0b4ad5d7afdce37b1
This change re-implements CandidateView using HorizontalScrollView and
customized Button, so that the candidate strip can be flingable.
This change also introduces the following features.
- Highlighting candidate strip and space bar is configurable by
@bool/config_candidate_highlight_enabled.
- Candidate strip can be centered with left/right padding if
@dimen/candidate_strip_padding size is greater than 0.
- Candidate text size is configurable by @dimen/candidate_text_size.
Bug: 1575885
Bug: 3230726
Change-Id: Iedf78ff31bc9f2f6291a8e8fb7faa0e6b961dd6d
This change,
- changes voice key code back to -102
- renames some key code names and method names
- adds mic_slash_holo to drawable-hdpi
Change-Id: I8be3a20921f472ece4298edad2d275f29a7e4955
This change also moves KeyboardSwitcher and related classes to
com.android.inputmethod.keyboard package.
Multi project change with Ib23017b2
Change-Id: Id7d54b24615fe22ebb540ca847549909e346ee24
This change introduces new package com.android.inputmethod.keyboard
which hosts keyboard related classes.
Also adds missing @Override and @SuppressWarning("unused") annotation
Change-Id: I0317f5cfa317e13f3c77815f48ffc69b5d1ade05
This change introduces,
- center align "More" key label
- remove drop shadow from key label
- darker key label color when manual temporary upper case
- narrower pop up mini keyboard
- remove unnecessary key background from pop up mini keyboard
- smaller key label in portrait
Bug: 3216592
Change-Id: I77e0733f467a88aa32e09fcbace56fe08f755229
This change introduces shiftedIcon attribute for Key which specifies
icon to draw the shift key while the key is in shifted state.
This change also intriduces new configurable dimension value
key_label_horizontal_alignment_padding which represents horizontal
padding for left or right alignment of key label.
Bug: 3216592
Bug: 3201839
Change-Id: I3aa7392227ce573c404517678e6340a8d1fcb328
This change also uses slightly larger font size for functional key
label according to the v4 keyboard design.
Bug: 3216592
Change-Id: I027f109b7748ade8564dc808487d9a6ce1da9761
This change is a followup of I948ef26f
Automatic Temporary Upper Case mode acts like Normal mode until shift
key is pressed. However, after shift key is pressed, it acts like
Manual Temporary Upper Case mode.
Bug: 3193390
Change-Id: Id3d7a38a1f5905322cd46ded36b1db26576d49af
With this change,
- Shift and Shift lock state of keyboard is maintained by
LatinKeyboard.ShiftState.
- Shift key state is maintained by ShiftKeyState object in
KeyboardSwitcher.
- LatinIME informs KeyboardSwitcher that shift key press, release and
long press and KeyboardSwitcher determines which state LatinKeyboard
and ShiftLeyState should be.
Bug: 3193390
Change-Id: I948ef26fda512eb1cb0ebddc89d322c4f4f4d670
This change partially implements the requested feature. The following
are not supported yet.
- Non-letter key handling on automatic temporary upper case layout.
- Non-letter key handling on shift chording in caps lock layout.
- Hint icons for manual temporary upper case layout are not final ones.
Bug: 3193390
Change-Id: I636da99d1be05b1337935d87c6f4d140661e1cc8
This change also eliminates KeyboardSwitcher.refreshKeyboardCache,
LatinIME.reloadKeyboards() and LanguageSwicther.getLocales().
Change-Id: I5fd4914660ea1c955ddfa0ca62b920f9bcd53e1b
This change defers determining which keyboard should be loaded and
holds the information in KeyboardId object as much as possible. At
keyboard loading time, the determination deferred will be made
depending on the information of KeyboardId.
Change-Id: Ice2455d9e5b21671a250c342c06c043e4baa5355
Because there may be very long key, such as space bar on tablet, we
should not use the distance between the touch point and the center of
key as proximity detection. Instead of that, this change uses the
distance between the point and the nearest edge of key as proximity
detection.
Also this change fixes the bug that space key (code 32) was not
counted in proximity detection.
Bug: 3164020
Bug: 3168138
Change-Id: I687f1ce94a8e944c3f6eea0fe00e18ed6e68e278
This change also fixes that the popup preview of ALT on symbol
keyboard is not showing.
Bug: 3122877
Bug: 3127255
Change-Id: I978cb30a0d05298274d8ab6541b91323a0fef211
Gesture detector, for closing keyboard by swiping down, must be
disabled not only when mini-keyboard is on the screen, but also in the
mini-keyboard itself.
Bug: 3105595
Change-Id: I548501f7117ca2310943cabb678c1e250e5012ce
Cherrypick I44f3b2eef8086d6e0b0db53d38f08487549060c6 from Gingerbread
This change also introduces the key background drawables which has no
fixed bottom padding. Instead of relying on bottom padding in
drawable, this change also specifies Keyboard.verticalGap with
physical unit. Other keyboard related length, distance and size are
also specified by physical unit.
Bug: 3066107
Change-Id: Ib38355ebfc2f8d5b1d26c4e90eba87196fbeddfa
LatinKeyboardBaseView should have removed "long pressed" pointer tracker from the multi-touch pointer queue.
bug: 3099130
Change-Id: I3d358a373b0de07558a204e9ff5a95e9ece38bcc
This is follow up change of I8b38e2803eb32469653484701882af35108eb69a
This change fixes the following when "Voice input on symbols keyboard"
option is selected.
- LatinIME.onCreateInputView fails to show "123mic" icon.
- Email and URL variation keyboard fails to show "123mic" icon.
Bug: 3084022
Change-Id: Ia3929bb0cc5c5c8651af816718c21d1f20e8f016
This change also introduces the key background drawables which has no
fixed bottom padding. Instead of relying on bottom padding in
drawable, this change also specifies Keyboard.verticalGap with
physical unit. Other keyboard related length, distance and size are
also specified by physical unit.
Bug: 3066107
Change-Id: I44f3b2eef8086d6e0b0db53d38f08487549060c6
Merge commit '938c0a3722a9c597931e6f75408dc7ab636d7052'
* commit '938c0a3722a9c597931e6f75408dc7ab636d7052':
Fix - "Touch again to save" not working for manually picked suggestion when re-correction is enabled.
master was still using the deleted constants in different places and
Java 6 didn't like the imports.
Change-Id: If9472a2acb029e56790dc4d19ab62e608c970175
We'll merge this to master for now, but we should have new attr (such as popupCharWidth) to handle this reasonably in the newly created BaseKeyboard class.
bug: 3082178
Change-Id: I024b946aafbbeb07b865a09f489dacb56f0478d0
Merge commit '644445868f1023b3263a149f2faf617b88341d20'
* commit '644445868f1023b3263a149f2faf617b88341d20':
Addressed bug: 3058217 "-" key not working at beginning of line
To avoid a corner case of bug#3070963, in toggleShift() method of
KeyboardSwitcher, the shifted symbol keyboard will be set if current
keyboard is symbol keyboard or is not shifted symbol keyboard.
This change also implements mini keyboard cache with WeakHashMap.
Bug: 3070963
Change-Id: I868fc072e2f21bddded1622b800a53b9a6a43e91
Before this change, the delay was 500 ms that came from
ViewConfiguration.getLongPressTimeout(). This change reduces the
delay to 400 ms.
Bug: 3074984
Change-Id: Ia5af5e877a3c4bb29211ef4040c728ac09a9fe85
Keyboard XML file can include other keyboard XML file using directive
<include keyboardLayout="@xml/...">. The keyboard XML file which is
included must have <merge> tag as root element.
Change-Id: I06c35fe7b3db5232acdb33f73a79f38d31261b32
Also fixed related issues below:
* Punc suggestions list was sometimes not displayed after cursor move which follows re-correction
* Punc suggestions list was disappearing with words which contains certain punc chars (but not word separator) such as ' and -
Change-Id: I36faf679321782fa8eaf318411308a4a6b89cc25
Merge commit 'c0fc4bf9932caf536af5d5d86bb61ec6d8a44a99'
* commit 'c0fc4bf9932caf536af5d5d86bb61ec6d8a44a99':
Long press mic/comma key bring mini keyboard with settings
Merge commit '8e6a92703d1bdf530d32c8cdf90deefc6bc3a878'
* commit '8e6a92703d1bdf530d32c8cdf90deefc6bc3a878':
Dismiss orange highlight after suggestion has been selected
Merge commit '105f7c36b7fa1845b9edbf47ca55b4a6660303b6'
* commit '105f7c36b7fa1845b9edbf47ca55b4a6660303b6':
Long pressing mic/comma key will show settings menue
Merge commit '93176d869a496051344d80ef03573bc6bb99035a'
* commit '93176d869a496051344d80ef03573bc6bb99035a':
Display feedback popup for saving word while the word is pressing.
Merge commit '4d158dc2779ffff8c92a41f32e6885bd0f155fc3'
* commit '4d158dc2779ffff8c92a41f32e6885bd0f155fc3':
Check recorrection on focusing into a text field that has text already.
This change also fixes tha the touch slop value is applyed only for
initial movement of scrolling suggestion bar.
Bug: 3004920
Change-Id: I62afdedc210156e41e8c84c48cade442f9d5a1aa
Merge commit 'fcd5f2b9b4229c00a6589aad1fda9b727759d343'
* commit 'fcd5f2b9b4229c00a6589aad1fda9b727759d343':
Mini keyboard works even while shift is being pressed