This change introduces the following features to Keyboard XML format.
* "keyXPos" can specify the key X coordinate directly.
* "keyXPos" can be negative. The X coordinate will be calcluated from
the right edge of the keyboard toward left.
* "keyWidth" can be zero to be filled up to the right side.
* "keyWidth can be negative. The key will be filled up to both sides.
* Spacer's horizontalGap is renamed as keyWidth, and can be inherited
from key-style.
* Spacer can have keyXPos attribute.
Using these syntax, all keyboard layouts have been re-written.
Bug: 4442045
Change-Id: I314b2e8ca2aa145ff9506cbf927140a15685af42
This change introduces new keyboard mode "webEmail" to honor
InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS. In this mode, both
'@' key and TAB key appear on the keyboard.
The keyboard layouts will be modified with other change.
Bug: 4490948
Change-Id: I66f9bda4907da448db097e9c900199dfa700b16a
This change reduces the number of layout files and make these
theme-generic. This might be very helpful to re-design suggestion
strip.
Bug: 4175031
Change-Id: Idca10a4aa0bf7ac496eedd1879311e59780a423b
When keyboard theme has been switched, input view will be replaced
with new theme one and current CandidateView will get stale. The
CandidateView must be reseted in setInputView.
Change-Id: I36fd14280572d2d367cfef549d7705b3b321ba3e
One of the two methods for getting a dictionary from the dictionary
pack had a bug and would not tolerate not getting an actual dictionary.
This change fixes that.
Change-Id: Id58bb27258494fb3aa60ec07a4eb27cfb5cc7279
Also add an option for popup dismissal delay so as to inaugurate the
new screen. Besides, remove a path for options to escape from
LatinIME and replace with a direct read from the settings.
Change-Id: I7ec6e724262871fa6523506ecc39f65c5fbe34da
Fix a bug where the "Touch again to save" message would not stay
on screen, following a wrong fix for a problem where Gingerbread-
would not display punctuation in the suggestion strip in
WebTextView.
Change-Id: I3556f83f867240ed7f16753450e6c975853208e5
Split symbols into:
- Symbols that should swap themselves with a magic space.
- Symbols that should remove the magic space.
- Symbols that should transform the magic space into a real space.
Also, have symbols inserted from the suggestion strip always consider
the space before them to be magic.
Also, do minor refactoring to remove useless variables or make clearer
how to carry some symbol-related information.
Bug: 4391347
Change-Id: Ie2308a62c8fef55e3610897c0f58943acb7aa8c9
This change considers that the point is on the key while sorting in
proximity key detection.
This change is the cherry-pick of I3ee91367.
Bug: 4353949
Change-Id: I04fa0acf4d32c18bea9640b39a5c770466a37803
Picking a suggestion inserts a space after the word. This change makes
this space a magic space.
Incidentally, do some minor cleanup: add CODE_DASH, CODE_SINGLE_QUOTE
and CODE_DOUBLE_QUOTE to Keyboard and use them throughout the code,
and remove a useless import directive in some unrelated file.
Bug: 4319740
Change-Id: I245f396c34dd0af820bca91edc4ec363238a4ae4
This change also reverts I8f6102d6 and considers that the point is on
the key while sorting in proximity key detection.
Bug: 4348994
Change-Id: I3ee913675e28da7e7b164805a7a683f0814b38b9
This change fixes a bug where there would be pixels on the keyboard
that would not return a key although it's between two keys - or even
right on top of one.
This change makes it so that the closest key to the touch - within a
certain threshold - is always returned, regardless of whether the
touch is inside or not.
Bug: 4348994
Change-Id: I8f6102d6787eb025cc3c50a26d3a475aeafc4b64
This change enables the interface to get multiple dictionaries from a
dictionary pack. It only implements it to the end in the case of the
proprietary method, as the open method needs still some working out,
and the "inside the package" method does not need it.
This change goes together with Iaa95bf36, and breaks the build
without it.
Bug: 1752028
Change-Id: I3ccfd696e8ef083ef9c074e1c3e4bb0bf2fcfd23
The change list that introduced this code was created at the same
time as the one that introduced the Utils.setSystemLocale method
and didn't use it yet. Fix this.
Change-Id: Ifdd2ad9f7dbb7f300bc255bc2e035ae893a9d410
The dictionary collection is a class complying to the Dictionary
interface that acts as a front end to a collection of arbitrarily many
dictionaries of any type.
The dictionary factory is a helper class for creating various
dictionaries and get some meta information about them.
At the same time, this change makes the BinaryDictionary class
not a singleton any more.
This also needs I9afe61a9 to not break the build.
Change-Id: I61fdcc4867fcda18342807bf1865e6e46979e5d5
Add a setLocale method to Utils that returns the previous locale.
Also unify all calls through the code.
Change-Id: Ic850dc5df19fba00ed3601835652859b4321b544
This change
* Allows snap back from symbols shifted to symbol layout.
* Add "left single", "right single", "single low" and "single high
reversed" quotation marks to popup characters of "single quote".
* Add "double low" and "double high reversed" quatation marks to popup
characters of "double quote".
* Add "prime" and "double prime" to popup characters of "degree".
* Disable non-ASCII key of symbol more layout on passowrd input.
Bug: 4345054
Bug: 4347045
Change-Id: I8168ce6a74a9536e4966f7f9d1099ac0132925c7
This change is only there to fix warning issued by Eclipse.
It should have absolutely no impact on the program logic.
Change-Id: Ie0e242ac6c167297d33de19902340b0f6ecae9e1
This change also rename methods that should have been renamed in a
previous commit (namely, the
*SetBigramSuggestions family -> *UpdateBigramSuggestions)
Change-Id: I18cac17ba2b93fcc011ea133324f2c7f3532946c
This change adds the option for bigram prediction under the option
for bigram suggestion. The "prediction" option depends on the
"suggestion" option.
This change also reorders a tad bit the settings screen. Namely, it
sticks both bigram options under a "bigram" category, and groups the
options that did not have a group under a "other options", or misc,
category.
Finally this change also renames the internal name of the "text
corrections" option category to "correction_category" instead of
"prediction_category" which was misleading.
Change-Id: I2d8787c8a391fd8202ed3a686c613494b7260a1e
This also fixes a small inconsistency upon clicking on whitespace
twice in a row.
Also add some unit tests for an introduced and an existing method.
Change-Id: I1be2fb53c9624f4d0f5299009632cb4384fdfc15
Some flag settings used to be stored in a keyboard layout extravalue setting. This
change:
- Introduces the capability of setting such specific flags in values/config.xml
- Retains the ability to use extravalues (for layout-specific settings), though
there is no more any such setting at the moment.
- Fixes a bug where loading a dictionary from outside does not initialize the flags.
- Moves Flag to another class.
Note: this needs I705ec68c to avoid breaking the build
Change-Id: Ia7703aae3215b06c0b3cb792821649806e8998c1
This update is necessary to allow dictionary content providers to use
assets, which are part of their apk, as data to pass to the keyboard.
Using plain file descriptors doesn't allow for sections of files to
be correctly used.
Change-Id: Ia94c26d6387bce61c73d38f5c2821f20e50e54d4
Previously the key preview was implemented by PopupWindow. The key
preview popup window would be dismissed and shown each time the key
was released and pressed. It turned out that it was taking several
milliseconds.
This change implements the key preview by a simple TextView which will
be layout-ed at absolute coordinates within the screen FrameLayout.
And dismissing and showing the key preview is implemented by the
TextView's visibility.
This implementation needs careful coordination of candidates.xml
layout and LatinIME.onComputeInsets to control suggestion strip
visibility.
Bug: 4179964
Change-Id: Id6347cb35b91eb14ab20dd2f312e58b54b6625a7
Because handling shift locked state of alphabet keyboard is done by
KeyboardSwitcher, there is no need to change the "on" state of Key
when releasing the key. On the other hand, symbol and symbol shifted
keyboard has fixed "on" state "ALT/MORE" key.
This change also renames the attribute "isModifier" to "isFunctional".
Change-Id: I082885bd2376ae26bdfc378c14add2b5d6be1d4e
When user starts sliding key input, sliding through successive
modifier key will be ignored.
Bug: 4181843
Depends: I082885bd2376ae26bdfc378c14add2b5d6be1d4e
Change-Id: Ibe890b9cc1183dbe9f68a421650fcd97e7ff221c
- Have user-history based bigrams used as soon as they are entered,
not after 6 times.
- Limit bigram frequency to 255 (this limits the multiplier to 1.8, and
has no effect on main dict bigrams which already have this limit)
- Some TODO resolving
bug: 4192129
Change-Id: I4777f1a58c43dd55381c4b01252d722ab3a70547
- VoiceConnector to VoiceProxy
- VoiceInputConnector to VoiceInputWrapper
- VoiceLoggerConnector to VoiceLoggerWrapper
Change-Id: I908ddc590c8846cf5cbd80b9c0257cb65c638bde
Background:
Both SubtypeSwitcher and VoiceConnector have an instance of VoiceInput.
And VoiceConnector has a responsivity for setting VoiceInput to SubtypeSwitcher.
But in case that VoiceInputConnector already has an instance of VoiceInput
VoiceInputConnector doesn't set VoiceInput to SubtypeSwitcher.
Change-Id: I42d0220e7d84a08e03f143213cc6eff87e7e79a6
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 introduces,
- new attribute keyboardHeight to specify default keyboard height.
- new attribute maxKeyboardHeight to specify maximum keyboard height,
usually specified by percentage to the screen height.
- keyHeight attribute is obsoleted
- new attribute rowHeight to specify a row height, can be specifed as
percentage of the keyboard height. And verticalGap is included to
the row height (row height = key height + vertical gap).
Change-Id: I48a2f2661e8a91a998503a847437c1baf1de9b9c
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
bug: 3035228 This change will reduce the number of times VoiceSearch app
is called to log IME events. This is because it 1) only
flushes the logs when there is relevant logging information
available and 2) sets a flag in UserHappinessSignals so
that other apps (eg: gmail/sms) can know if there is
relevant logging information before sending the logging
intent to voice search.
Change-Id: I708fea5a38f854091f1101e4f6a3db46296f3e92
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
Merge commit '0ea7e504887702bace7b2e765704d08e737ab1b5'
* commit '0ea7e504887702bace7b2e765704d08e737ab1b5':
Fixed key code and key coordinates when move debounce has been in action
This change refactors a key index and pointer position variables into
a separate static inner class KeyState . This change also disables
time debouncing.
Bug: 3033737
Change-Id: Ie4fc37316c260330d8f0861e0771ea903a99cfce
Merge commit '7f2a6a056b67efa2a1fb623ca4cf73f7fb6c7d8c'
* commit '7f2a6a056b67efa2a1fb623ca4cf73f7fb6c7d8c':
Capitalize the displayed text in the suggestion bar when all of the user typed chars are upper case
This keyboard layout is tentative for UX study.
This change added xlarge keyboard layouts only for "regular text",
"symbol/number mode" and "symbol/number mode shifted".
TODO other text mode variants should have dedicated layout.
Change-Id: I36077efcec4b57c3b5cada0a851e1409a289eeb9
Merge commit 'ca2fba71086b3832998ee9039723b66cce3be300'
* commit 'ca2fba71086b3832998ee9039723b66cce3be300':
Keep addWordToDictionary from doing disk I/O on main thread
Merge commit 'bf03559f7e38cd51cb5fd6b0afa937982cbffc67'
* commit 'bf03559f7e38cd51cb5fd6b0afa937982cbffc67':
Add enter/exit animation style to prevew and mini keyboard
TODO This animation style API of PopupWindow can be called only in
Gingrebread or later. We should refactor this using reflection to be
able to be compatible with Froyo.
Bug: 3004787
Bug: 2973989
Change-Id: I2abfcc853b1a0af2bccee7bdf5fbd723456b7d34
Merge commit '27bddbe67f00953dc82a8543fe610c9010f7077c'
* commit '27bddbe67f00953dc82a8543fe610c9010f7077c':
Move RingCharBuffer as a singleton in Util
Merge commit 'ec8b7360161f37d00d178bef37c30352982cd007'
* commit 'ec8b7360161f37d00d178bef37c30352982cd007':
Tune left and right padding of popup mini keyboard
Merge commit '1241be7e8498b8cca348d74363ece68b3ade730c'
* commit '1241be7e8498b8cca348d74363ece68b3ade730c':
Use SystemClock.uptimeMillis() for event time
Merge commit '8957296f066b1f624dc4fae71d3eeb5a0fec1b4f'
* commit '8957296f066b1f624dc4fae71d3eeb5a0fec1b4f':
Choose smaller or shorter language name for space bar
To fit a language name to the space bar or the language switcher, this
change chooses smaller text size or shorter language name
appropriately.
This change also tunes the vertical position of a language name in the
space bar by parameter SPACEBAR_LANGUAGE_BASELINE.
Bug: 3004640
Bug: 3001021
Change-Id: Idb3adcb6fac1a23836510912d35312fa11b4f259
Merge commit '7c120ce4872398ea4f61a67aba1d069e45f1c012'
* commit '7c120ce4872398ea4f61a67aba1d069e45f1c012':
Fix issue space key preview remains on screen and would not dismiss
The space key preview should be displayed one of the following case.
- Popup preview is enabled
- Language switcher is in action, whether popup preview is enabled or
not.
For phone number keyboard, popup preview is never displayed even if
popup preview is enabled.
Bug: 3006612
Bug: 3021091
Change-Id: I5385c776d0e8e3981fc8d8851db9140d92599ce5
This change adds lightweight visual hints of alternate numeric characters on the top row - e.g. having a light gray '1' on the upper right corner of letter 'q'
Note that MDPI resources are tentative (the same as HDPI for now, until we get fixed MDPI visual assets).
bug: 3004632
Change-Id: I7a25cf90b702433a844c88f5c47bf914706af9bc
Merge commit 'c01d978f56f90425f070d57a66968aa77ef69a7d'
* commit 'c01d978f56f90425f070d57a66968aa77ef69a7d':
Draw language label on space key of symbol+alt mode
Merge commit '9c822ec48de0e6839a861212d8b7143f70b29fd1'
* commit '9c822ec48de0e6839a861212d8b7143f70b29fd1':
Fix mini keyboard display position when preview is disabled
The residual time was formerly 150ms by
Ia63662a549481d18046a46ef8292c0a4438b5588, and originally was 70ms.
Bug: 3004787
Change-Id: If60a74c51e9a68f008711cca2423094e8204755f
Merge commit '300362f20982974d07876dee01b4550b8e54d449'
* commit '300362f20982974d07876dee01b4550b8e54d449':
Use the phone keyboard for NUMBER and DATETIME until we get a dedicated number entry keypad.
Merge commit '8ef27577da17f4203db00d5df96c3d2ed32ac713'
* commit '8ef27577da17f4203db00d5df96c3d2ed32ac713':
Default puctuation suggestions have same color
Merge commit '13a6c8c1f8691b753cd1a6b7a77d99af4f7d78ac'
* commit '13a6c8c1f8691b753cd1a6b7a77d99af4f7d78ac':
Add a new preference item to show/hide the settings key.
Merge commit 'b9705959df5d7de38df5dea53270bf702b87716d'
* commit 'b9705959df5d7de38df5dea53270bf702b87716d':
All keys should be processed before processing modifier key
Merge commit '4b813f56bbe11210835a31de7fd73bfe5a566ead'
* commit '4b813f56bbe11210835a31de7fd73bfe5a566ead':
Fix bug that upper case mini-keyboard does not work
Bug: 2996887
Override the methods in InputMethodService that hide the candidates view, since
it was just an optimization to show more lines of text when editing, which
conflicts with the re-correct feature.
Change-Id: Ibfed5ccd9efa048d0b69297a5cf8a638a0d00c72
This change also introduces MiniKeyboardKeyDetector and
mini_keyboad_slide_allowance parameter to tune the key detection
behavior.
Bug: 2993769
Change-Id: I1932b0a382e172cb77b9e098ae182049c834dfe0
The newly added SharedPreferencesCompat adapter class does apply() when available (Gingerbread+), else do commit().
This change incorporates I4eca20fb and I39f6aa04.
bug: 2983837
Change-Id: Iec4e8b69840ad71dbbd6098eeba349934d8248ff
Merge commit '65dab9078dd0c77adcc49d08c46039dad2a950f6'
* commit '65dab9078dd0c77adcc49d08c46039dad2a950f6':
Fix a bug in y-axis offset for sliding finger key detection for mini popup keyboard.
Also, tentatively added key detection allowance for below of the keys in mini popup keyboard.
bug: 2979407
Change-Id: I84794969facd929c84df23e0120d46dff71c6efb
Merge commit 'd73d267f34efb131467d9103bb9a56c18f9623b7'
* commit 'd73d267f34efb131467d9103bb9a56c18f9623b7':
Mini popup keyboard adjustment: Have the leftmost number right above the key.
Also fixed an issue when the mini popup keyboard hits the right edge of the view.
A few code cleanups as well.
bug: 2980864
Change-Id: I95f8392521e57560907d54b662e3483ebaf6f7ce
On a device that has distinct multi-touch panel, pressing '123?' key
will change keyboard layout to symbol mode. While pressing '123?'
key, you can press other symbol key to input. Then releasing '123?'
key will change keyboard layout back to alphabet mode.
Bug: 2973383
Change-Id: I3b069fb19141820def8060db4766a08c7c0a6ff0
Merge commit 'dacc927a57b0c7adfbdf244441b9b2495c959980'
* commit 'dacc927a57b0c7adfbdf244441b9b2495c959980':
Update strings for the settings access - based on the latest GB IME spec (ver 03).
Merge commit 'e5abf25d4b57ecdfc01ca3ddf94753d5bcb07fea'
* commit 'e5abf25d4b57ecdfc01ca3ddf94753d5bcb07fea':
Dismiss mini keyboard when finger is released outside mini keyboard
Merge commit 'bc1a0354ef1cac0319cab63822c66203f1fa2c24'
* commit 'bc1a0354ef1cac0319cab63822c66203f1fa2c24':
Fixed extra periods when chording with shift and space
Actually it was caused by canceling repeat key (space and delete) when
multiple pointer are touching.
Bug: 2975041
Change-Id: If82183b9225efdace7b5418860b9664f1705b7ec
This change also disable the special behavior of long press a key that
has only one digit alternate. If the visual design of both the pop-up
preview and the mini keyboard will look like same, I think that
showing mini keyboard is enough for the key that has one digit
alternate.
Bug: 2973546
Change-Id: I04f138c120aa58526fe054626dac856171fb7a58
Merge commit 'd5bcbf8156fdba8199452b8f95ed1940b7e96d31'
* commit 'd5bcbf8156fdba8199452b8f95ed1940b7e96d31':
Support multi-touch only when device has distinct multi-touch panel
Merge commit '232b039496ef95c543bac5128e6378b38760de21'
* commit '232b039496ef95c543bac5128e6378b38760de21':
One alternate is treated as key action, not open mini keyboard
Merge commit 'c93ac9db7129f935425f79d5a460e7b926cb4a22'
* commit 'c93ac9db7129f935425f79d5a460e7b926cb4a22':
Move inflating mini keyboard code into separate method
Merge commit '6654653562d0ec5d46a74f8c49eab2488e273cf2'
* commit '6654653562d0ec5d46a74f8c49eab2488e273cf2':
Change symbol on space bar when autocompletion is activated
This change also refactors some mini-keyboard related methods in
LatinKeyboardBaseView and PointerTracker class.
Bug: 2973236
Change-Id: I3190fe89ea3ac3c6d351ed4b6d77de98a0aa65db
TODO:
- Remove close button on mini-keyboard
- Dismiss mini-keyboard when finger leave the screen while no key is selected
This change also renames some instance variables to have more meaningful name.
Bug: 2959169
Change-Id: I9fd79116a647d7be82415c6e9e7cdaf6edcb2bf6
Merge commit 'a4397ce38af2e1ac3a8284bc078bd1e9cb4fecf4'
* commit 'a4397ce38af2e1ac3a8284bc078bd1e9cb4fecf4':
Add PointerTracker argument to long press related methods
Merge commit 'd0457eae17d10535023a02579d16ede7bfcc6bec'
* commit 'd0457eae17d10535023a02579d16ede7bfcc6bec':
Queuing PointerTracker to support n-key roll-over and shift modifier.
Merge commit 'c5363012b846733e9a3b7ce7de5b04e58644bedc'
* commit 'c5363012b846733e9a3b7ce7de5b04e58644bedc':
Change the preference name for a theme and remove a preference settings
Merge commit '308acfa714a3a0aae073871e76e753b5a98096d1'
* commit '308acfa714a3a0aae073871e76e753b5a98096d1':
Change background color for functional keys in LatinIME
Merge commit 'c354167c84b06b572067efaddfbd3667ffdadb98'
* commit 'c354167c84b06b572067efaddfbd3667ffdadb98':
Correction improvements - use the new InputConnection APIs for underlining and
fetching the selected text.
Bug: 2950652
Some refinements to correction behavior, such as retaining the tap-to-save
when in correction mode.
Use reflection to access the new InputConnection APIs with fallbacks, in case
we run on older OS versions.
Some refactoring to separate lookup for voice alternatives and typed alternatives.
Change-Id: I7c4178bf7e6b47ee274c49fa7a694f8c2d50cea7
Merge commit '2c7583f6c3c24202492b9404955b1aee2dc5ce94'
* commit '2c7583f6c3c24202492b9404955b1aee2dc5ce94':
Add new public attribute mPointerId to PointerTracker
The KeyDetector abstracts key detection algorithm. The
ProximityKeyDetector is one of its concrete implementations. Another
one that might be called XAxisKeyDetector will follow to realize the
pop-up mini-keyboard behavior described in bug#2959169.
Bug: 2959169
Change-Id: Idd3fc53282e6b721ec7a4ce500af8aba21ce07a3
- Add a layout for popup for new theme
- Change the color of language bar
- Fix a drawable for settings feedback
Change-Id: I7c0c9e238c8223554a62f7b0c8092d074cf9743f
Merge commit 'ad60fe2e80878e1b1caa2c9207d8f601e203560f'
* commit 'ad60fe2e80878e1b1caa2c9207d8f601e203560f':
Make KeyDebounce class a top-level class and rename it to PointerTracker
This change moves the following methods into KeyDebounce class.
- MotionEvent handling methods (onDownEvent etc.).
- Keyboard action event generator method (detectAndSendKey).
- Multi-tap key support methods (resetMultiTap etc.).
- Key preview text generator method (getPreviewText).
The change that makes KeyDebounce a top-level class will follow.
Bug: 2910379
Change-Id: I1526c0461e247d97f0c4b3bd580330f137c787be
Extract key press and release handling out of previewKey() to
KeyDebouncer class. And pass Key object as argument of previewKey()
instead of key index.
Bug: 2910379
Change-Id: Ifec39cfc4845bd92da2f62eba2b26ac6a5cbb341
Log which voice-based alternates were selected, and what
word in the recognition results were replaced.
Change-Id: I1527dc794902a18a226ca45e186ecf84841094c8
Conflicts:
java/src/com/android/inputmethod/latin/LatinIME.java
These three conditions assign true to the mAbortKey flag.
1. setKeyboard() sets the new keyboard layout.
2. long press shows the pop-up mini keyboard.
3. ACTION_CANCEL event is occurred.
In the case 1, in LatinIME so far, only "symbol key" and "language
switch" cause keyboard layout change. In both cases, the event is
occurred in onUpEvent(), so we do not need to worry about aborting
event.
In the case 2, long press is used only to pop-up mini-keyboard and at that
time mMiniKeyboardOnScreen could be used as a flag.
In the case 3, though I'm not sure when this case occurs, in
onCancelEvent() all the things that should be canceled are canceled
in onCancelEvent().
Bug: 2910379
Change-Id: I12377c5f3e808f1c017ce980e12b1513895047bc
This change will display the key board preview instantaneously when
the key is pressed. Dismissing the key preview will be delayed
slightly after the key is released, as we do now.
Because in multi touch mode, we should instantaneously change keyboard
layout when modifier key, such as shit and symbol, is pressed.
Change-Id: I49348d563ca0f40f5a0a236bdcd0bb07eedd599b
Long-press on shift and symbol keys will conflict with press-and-hold
these keys and press normal key (a.k.a. multi touch support).
Bug: 2910379
Change-Id: I27007b55a30a3699bf63fd8f64d58c4b23d97d9f
This change eliminates the need of extra MotionEvent allocation. Also
this will lead to the easy way to handle multi touch events.
Bug: 2910379
Change-Id: Ibcfcba554b732c13105f91877b41b553ee6928ba
This change moves SwipeTracker out from LatinKeyboardBaseView. Also
this introduces EventBuffer class for swipe tracking buffer.
Bug: 2910379
Change-Id: I48ff714226a248ca063cbaf9755cf45e458f7402
GestureDetector listener's onFling method will not call detectAndSendKey
anymore.
Make gesture detector be ignoring multitouch. Refactoring
GestureDetector out of LatinKeyboardBaseView class change will follow.
Bug: 2910379
Change-Id: I0b2a9c4cf7d432f89f9085f3c2bdf3a3757a8903
This change encapsulates mInKeyRepeat (former mRepeatKeyIndex) into
UIHandler class. Also this eliminates mCurrentKey and mLastTapTime
dependency from repeatKey method.
Bug: 2910379
Change-Id: I9351a558be2ebc04de4ebb0d323af4be33bd470c
This change simplifies onModifierTouchEvent to focus on handling
motion event related to a key event.
Other refactoring will follow in order to support multi touch.
Bug: 2910379
Change-Id: I036be64168d951a535600a7910b36bc109f88490
Merge commit '6558253160e2039c87f424bd814f402ecd31de3b' into gingerbread
* commit '6558253160e2039c87f424bd814f402ecd31de3b':
Fix a bug in backspace handling for the "Tap again to save"
Merge commit 'f02964264f196447b03a88591a2964b67c318718' into froyo-plus-aosp
* commit 'f02964264f196447b03a88591a2964b67c318718':
Don't auto-select the system language in IME language selection screen.
Fixes http://b/2650378
On entering the selection screen, don't add the system language in addition
to other selected languages.
Change-Id: Id7a3b45df39a8493d17be668029eee139bf00ff3
Sometimes the only motion event that is above the keyboard is the UP
event. In that case we can't expect one more event to come that will
dismiss the extension. So don't show the extension if the only Y < 0
event is an UP event.
Change-Id: I04a8b742dea03cd700006dc5df740ac7d9620c0b
Merge commit 'f9d0f3a81ad4220672f90a8799a79e63e53c46d3' into froyo-plus-aosp
* commit 'f9d0f3a81ad4220672f90a8799a79e63e53c46d3':
Fix for: For Voice IME busy circle displayed below waveform
bugfix for: http://b/issue?id=2568048
[Sapphire] ]For Voice IME busy circle displayed below waveform.
STEPS TO REPRODUCE:
1. launch Calendar . -> Select menu -> New Event.
2. Switch soft keyboard to Number view.
3. Tap on mic symbol of to speak
4. Speak any word to enter in Text field .
5. Verify busy icon ( circular icon ) displayed in "working " screen.
EXPECTED RESULTS:
Busy circle should be displayed in center of waveform
OBSERVED RESULTS:
Busy circle displayed below waveform
ADDITIONAL INFORMATION:
Spoken word is enetering in text field correctly.
Change-Id: I043ce6a985f526cade0e9f63525619a92d918485
Merge commit 'c2b8c16bdf392c81785031483d21740c5e883046' into froyo-plus-aosp
* commit 'c2b8c16bdf392c81785031483d21740c5e883046':
Possible fix for monkey bug: 2529350
Merge commit '3e0c82ec80a69c4adbd60546c3c56c83c43ec7eb' into froyo-plus-aosp
* commit '3e0c82ec80a69c4adbd60546c3c56c83c43ec7eb':
Fix for 2568664 : Slide gesture on spacebar is not reliable anymore
This was due to the multi-touch error correction code that was recently
added. Make sure that one of the move points is in the upper 3 rows
to allow for fast swipe on spacebar.
Change-Id: I420bdb83a4cd8833c4158bc37a2d806b8c83b948
Detect sudden moves that have a large delta that would not be a typical drag
by the user when hunting for a key. Drop move events until the user releases
the touch and register both starting and ending keys instead of only the
ending key. This reduces the frequency of dropped keys on touch hardware that
isn't able to detect multi-touch reliably.
This also takes into account diagonal moves or right angled moves due to
pseudo-multi-touch.
It weakens the swipe gestures (to swipe, you'll need to swipe slowly and fully,
otherwise it will trigger 2 keys)
Change-Id: Ieba3a0bef4c8910f0f17aa20baedb3581d1de12b
Keep a reference to the openhelper around across locale and input language
changes. Also, share the openhelper between the queries and updates. Creating
a new one in a separate thread could cause it to be closed at the wrong time.
Monkey bugs, probably dupes.
Bug: 2560471
Bug: 2544169
Change-Id: I6eb39145de7191732ddde455728bf147a2d1ba31
Also don't highlight quickfixes when in suggest-only mode
In general, reduce the situations where words are auto-added. It was
too eagerly adding even words that were in the dictionary.
This might also fix the keyboard closing suddenly when using the extension.
Re-enable bubble for landscape extension keyboard, since the framework can
now display it to the side.
Also add a summary text in the input language list for languages with
a dictionary so that users don't feel cheated when they pick a language
that doesn't happen to have a dictionary. Remove greek as it isn't an
extension of the QWERTY keyboard.
We were overlogging the TextMoified action because the old
implementation would log a cursor change as a text
modification. This CL logs 4 specific actions (choose
suggestion, delete text, insert text, insert punctuation)
as a text modification rather than any action in the textbox
I also add in logging of the length of the recognition result
so that we can get some more context around the scope of the
editing of the ime result.
Change-Id: I172df24ddc0a7b62bcc5ed806fd70ef7e1c42310
Bug: 2513996
The array of adjacent letters did not have the primary code in the first
position. Swap the codes around to make the primary the first one.
Change-Id: Id753254c88d440d3d76dbc048d123dfc78edf58d
This is to avoid ANRs during bootup, as some of the providers
may not have been initialized yet.
Refactored the ContactsDictionary and moved the async loading
code to ExpandableDictionary to share with the other dicts.
Bug: 2501133
Change-Id: I20393edb6fdf5df2f54ebac8dd04419a592177a2
Move java code to a different directory so that the unbundled
version doesn't try to compile the native code again.
Change-Id: I05cf9e643824ddc448821f69805ccb0240c5b986