Before starting input on new TextView, we must clear the CandidateView
because it may hold the suggestion of previous TextView or even worse
the suggestions pane has been expanded and keyboard has been hidden.
Bug: 4995414
Change-Id: If848320c1a510e7018d36ed8ac61291be2fc6ce5
This change also rename static inner class to more readable name and
get rid of unnecessary object reference from PointerTracker.
Bug: 4768084
Change-Id: Ie4e2b940d66b47d41efcae7eeac853cdae2e4d38
To sort out the issue, main keyboard and mini keyboard have to share
the pointer trackers.
In order to prepare for that, KeyboardView needs to be refactored as
two separate classes. KeyboardView is responsible for drawing keyboard
visual. And LatinKeyboardBaseView is responsible for handling key
event and mini keyboard as well.
Bug: 4768084
Change-Id: I5643e333b9bdfde0c939a0693cea76bd22f38897
To keep unit test simple, instead of specifying top padding in
the constructor, make separate setter for it.
Change-Id: I8870622cc1bd97420637b8c465bdb6c9dd366062
Because Key only has bottom padding, to make mini keyboard vertically
symmetric and looks nicer, we should add mini keyboard top padding
that equals to Key bottom padding (a.k.a. vertical gap).
Change-Id: Icceb687d50edfa48e0f0830a60a1e230836c982f
This change also removes non-ASCII comment from strings.xml to
suppress resource compiler warning.
Change-Id: I96d3e8e2c7072816f32a15564745f8cdc3f91ee9
This change also modifies 9-patch drawables to fix the following
issues. In order to draw key background drawable just on the
coordinates we want, we have to know where an actual "visible" part is
in the drawable. The only clue we can use is "padding" of the
drawable. To achieve this, the 9-patch drawable must have its
"visible" part marked as "content". Please refer the Bug: 4948171 for
more detailed explanation.
This change also reverts the following "black" drawables back from
Gingerbread because recent change broke these (I70019a91).
* drawable-hdpi/sym_bkeyboard_*.png
* drawable-hdpi/btn_keyboard_key_*_stone.9.png
Bug: 4948171
Change-Id: I6e4d03b3144caa95c793aac97af22df34c5f454f
This change introduces:
* New KeyboardView attribute
* keyLargeLetterRatio to specify large letter text size.
* keyHintLabelRatio to specify hint label text size.
* keyHintLabelColor to specify hint label text color.
* keyPreviewTextRatio to specify key preview text size.
* New Key.keyLabelOption flags
* alignLeftOfCenter, align the key label slightly left of the key center.
* largeLetter, use keyLargeLetterRatio to draw key letter.
* hasHintLabel, draw keyHintLabel at the right of key letter.
* followKeyHintLabelRatio, draw the key label following keyHintLabelRatio size.
* Renames
* Key.keyHintLetter to keyHintLabel.
* Key.keylLabelOption fontFixedWidth to fontMonoSpace.
* Key.keylLabelOption popupHint to hasPopupHint.
* Removes
* number icon releted attributes and declarations.
Change-Id: I2f456737e3a46209e5f48b5155951b2b21a33859
This change instroduces new IceCreamSandwich assets and renames
Honeycomb theme to IceCreamSandwich. Though checked only on
hdpi-phone and mdpi-10"-tablet.
File another bug (Bug: 4852048) to fine tune keyboard layout for all
possible combination of devices and themes.
Bug: 4436327
Change-Id: I4f8dc1dd6b798a39204702bbcbebf17a199dc82f
Up to version 10 (Gingerbread) of the API, FrameLayout doesn't handle
margin properly. This change inserts RelativeLayout to FrameLayout as
placer to set margin and place children views absolutely.
Change-Id: Iee785bc2da77677738caf456bcd2bbf57b89f007
To maintain backward compatibility back to Froyo, we can't call
3-argument constructor of LinearLayout.
Change-Id: I35310704f92812d2748d32f35820a5058fa2bf31
I left TODOs in Suggest.java because we must pay attention to locale
when changing character's case. Filed another Bug: 4769095 to track
that.
Bug: 4768050
Change-Id: I1ae2c4ffd2208403a8c2a25dd3a56b71dcefc826
The dictionary that extends ExpandableDictionary must be closed when
it becomes unused.
Bug: 4725930
Change-Id: Ib5d2c39771fb7010d303a26d1ea1c8e237c0101f
When using the sliding spacebar language switch on ICS, both
LatinIME.toggleLanguage() and
InputMethodService.onCurrentInputMethodSubtypeChanged() invoke
LatinIME.onRefreshKeyboard(). This change eliminates the first one if
it isn't necessary.
This change also cleans up the followings.
* reuse theme Context when the keyboard theme hasn't been changed.
* clear the Keyboard cache when theme has been switched.
* eliminates unnecessary Context reference from LatinKeyboard and
SlidingLocaleDrawable.
* recycle Bitmap and reuse Canvas in KeyboardView.
Bug: 4725930
Change-Id: I87366e9304879d94d12b7345adea768d86d43519
Basically Croatian keyboard is QWERTZ layout with extra letters such
as č, ć, đ, ž and š. This change just introduces Croatian keyboard
subtype and QWERTZ layout which has the extra letters as popup mini
keyboard of base letter.
It might be great if we could have dedidated table layout.
Bug: 4309160
Change-Id: I0fc227295defa56029ca06e406f73833b992be0e
There are already both languages keyboard layout. Finnish is based on
Scandinavian layout and Hungarian is based on QWERTZ.
Change-Id: I6c804495bf1ae56661bc5c714e0c500132cd55a8
Previously tab key is shown only when the input type variant says that
it is web input. In addition to that, this change also shows tab key
when the IME option includes editor action (next and/or previous)
flag.
Bug: 3094312
Change-Id: I3f8841fdbcee918a0f93f3259090f24e70d96471
This change also removes manualTemporaryUpperCaseCode and
manualTemporaryUpperCaseHintIcon. Instead of these keyLabelOption now
has hasUppercaseLetter flag value.
Bug: 4436327
Change-Id: I88fdac1e888a7123735296f5ef45f5fdd565cd2e
This change is needed to introduce new theme easily. As a starter this
change introduces Keyboard.popupHintIcon attribute and
Key.keyLabelOption.popupHint flag to show popup hint icon that is
previously specified by Key.keyHintIcon attribute.
Bug: 4436327
Change-Id: I6b1c5c1b88eece541141b2d2cedd164ee02e5c2a
This change just prevents crashing. The another bug#4646271 has been
opened to support chording and long pressing key.
Bug: 4463909
Change-Id: I50e42656fe111e6b261310c899e672b8ba001e5d
This change removes horizontal scroll from candidates strip. Instead
of that this change introduces "fixed 3 items candidates strip" and
"expandable candidates pane".
Bug: 4175031
Change-Id: Ia367d9074436fdea76d3b653d81798ce2749170e
This change is a back port from Master.
Cherry-pick: I413062c759a1d91c66fcbf5dd04050dfbf15094f
Bug: 3319295
Change-Id: I461942fde05d91519775d260410356dfcbe7f7c0
This change is a back port from Master.
Cherry-pick: Ie0cad06c7b1afac0f33af76128303517e9e7bddc
Bug: 3319295
Change-Id: I4bc294161cb8bc4edfdcb1afc0c66b3812667bf3
Unfortunately current Master seems have bugs in resource
selection. The xml-en/kbd_qwerty.xml is added to avoide those issue as
work around, and must be removed if the issue is fixed.
Bug: 4442045
Change-Id: Ic43d66e8669fb63e2c3f0b8b9aae9178ca3c32b5
This change adjusts popup mini keyboard X-coordinate not to be clipped
out of the display.
Bug: 4442045
Cherry-Pick: Ibdf4e2d0a79cddbeb89ed8ded81a2db9af9797b8
Change-Id: I1c3ce7b1c6a6d247b796a1cdcd821bf88321ddef
This change removes Russian keyboard layout exceptions and make it
compatible with other Latin's.
Also tweaks some locales' keyboard layout to match with standard PC's
keyboard layout at most.
Change-Id: I305201fb850b4f94ae7e746ab4c039473d09da70
This prepares the way for spell checking, which is to be done
without context so without proximity info.
Bug: 4176026
Change-Id: I1b4bfaefe2611e1b484acdf3c33598cb80f81ff4
This change adjusts popup mini keyboard X-coordinate not to be clipped
out of the display.
Bug: 4442045
Change-Id: Ibdf4e2d0a79cddbeb89ed8ded81a2db9af9797b8
This change syncs all drawables from Honeycomb-MR2 into Master.
Bug: 4442045
Change-Id: Ia539aa62bfc355ccc742cf5aa600463c7b604187
Cherry-pick: I98664b0c954be82eeda00c69e712da2e20ca606a
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.
Cherry-Pick: I314b2e8ca2aa145ff9506cbf927140a15685af42
Bug: 4442045
Change-Id: I048fe5eaef020d8472ab577e9d326042bae2f3fa
This change fixes a bug that prevented to choose a prediction
several times in a row because the predictions would be replaced
right away by punctuations.
Please note several things about this change:
- Recorrection is pretty much in the middle of being refactored.
This change has no effect on recorrection itself, but may make
existing strange behavior more obvious when moving the cursor
for example.
- The part of this change in Recorrection.java is not used in
master at the moment because ongoing changes on recorrection
result in the control never landing there, but would have been
needed in the past and may be needed in the future.
- This change may have adverse effects on performance which need
to be evaluated. A comment in the code has also been written
to this effect.
- This does not fix bug 4466199, only addresses a pinpoint case
of it to help evaluating the bigram predictions feature.
Bug: 4466199
Change-Id: I7219e5aeb74dff9251d12b2a72f94448dbb3e63f
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 only changes QWERTY layout. The phone/number and
AZERTY/QWERTZ/Russian/Scandinavia layouts will be fixed soon.
Bug: 4442045
Change-Id: Ib42c84e1d05fee513b1b7680ef0dcf755298d444
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
Because the holo theme drawables have "holo" effect around 9-patch as
fixed size image, so we need dedicated drawables for each sw600dp-mdpi
and sw768dp-mdpi resolutions for visual designers.
* drawable-mdpi (fallback resources)
* drawable-sw600dp-mdpi (7" tablet, phone style keyboard, placeholder for now)
* drawable-sw768dp-mdpi (10" tablet, tablet style keybaord)
Note that:
* Eventually sw600dp drawables will be updated by designers.
* We need sw768dp drawable copies because, without these, 10" tablet
will use updated sw600dp drawables wrongly.
* We have to keep drawable-mdpi as final fallback resources.
Bug: 4436327
Change-Id: I93db87ee99c2abb8d18e869e5411e3cb5bec1020