Commit Graph

232 Commits

Author SHA1 Message Date
Gilles Debunne
d434d2334d MaxLines is respected in TextViews, even when ellipsize is set to end.
Bug 3322607

Re-applying the revert that fixed the ANR (https://android-git.corp.google.com/g/#change,87129),
whith an updated here value that seems to fix the problem.

This layout code is pretty involved, with destabilizing variable names and
uses. Althought I tested it, this fix is not 100% garanteed.

Change-Id: I1f4b09b329fb8a328ae8ab26ae472e343453beda
2011-01-04 18:05:53 -08:00
Dianne Hackborn
87121accdb Some new API cleanup.
- Tweak Fragment docs to match new sample code.
- Make some new attributes public.
- Hide all of the XmlAdapter stuff, since it is not actually being used.

Change-Id: Iae2062f91d1ca0c6b1d656ae948417d3d048482f
2011-01-04 17:42:01 -08:00
Gilles Debunne
4cf435df2e Revert "Fix for ellipsized text that has two lines at maximum."
This reverts commit 32ea4ffdca.

This change introduces an ANR in AutoComplete text view. There is
an infinite loop when the suggestion TextView is measured.

Reverted to fix the ANR, opening a new bug for the ellipsize.

Bug 3315813, 3320375, 3318059

Change-Id: I1872116ca1f39324ed4500d338bafac7e0d195ec
2011-01-04 15:37:41 -08:00
Gilles Debunne
75b7a931bc Removed simple compilation warnings.
Change-Id: I471b8895db4321d49e324e7137a1f5cee08ff5d4
2011-01-04 13:36:17 -08:00
Ken Wakasa
82d731ac5d Add TYPE_NUMBER_VARIATION_PASSWORD for entering a numeric password.
Also, bug fix in EditoInfo.makeCompatible().

bug: 3296883
Change-Id: Icc663b375cffbe1f4506d1758d624a1acca3576b
2010-12-25 01:22:53 +09:00
Gilles Debunne
9a99244a95 Merge "Fix for ellipsized text that has two lines at maximum." 2010-12-23 11:20:48 -08:00
Jeff Brown
0099863155 Merge "Add support for forward delete key." 2010-12-21 18:12:33 -08:00
Jeff Brown
14d0ca1473 Add support for forward delete key.
Change-Id: Ib356abddd92db12d6b33e19234136c0d167f0e15
2010-12-21 18:04:26 -08:00
Jeff Brown
67b6ab72ae Add TextView support for Home, End, PageUp, PageDown.
Change-Id: If8aa2a63b5fc33528d54eef68e695082a129acce
2010-12-21 18:03:08 -08:00
Gilles Debunne
32ea4ffdca Fix for ellipsized text that has two lines at maximum.
The breakOnlyAtSpaces test did not include the reset at the end of the loop
which resets j and w (current position and width). As a result, the second line
was too long from the start and never cut again.

Hours a debug, a simple { change.

Bug 2969667

Change-Id: I1e5b4a37cd9e64d115e6343d7788db3a6ef881e0
2010-12-21 11:28:34 -08:00
Jeff Brown
52715a7c10 Fix a regression in clearMetaKeyState.
Bug: 3267519
Change-Id: Ibbc7d4e38ef3208b9ece09566e44e8421866ab95
2010-12-08 18:29:08 -08:00
Svetoslav Ganov
50f34d14f6 Adding DatePciker widget based on the Calednar team code. Updated DatePciker and DatePickerDialog as the second part of the Time/Date pciker refresh feature.
Change-Id: Id32c614bcd799463ca33bf08fb7d5cf44f8326a6
2010-12-07 13:34:23 -08:00
Gilles Debunne
0bb000931b Fix in vertical measurement in text lines with different text sizes
The last span of the TextLine was defining the FontMetrics, instead of
min/maxing the different values.

Bug 3220698

Change-Id: I7394b1699a15aeee4cc38462d561faf329d3e1f6
2010-12-02 16:18:54 -08:00
Gilles Debunne
0eb704ca7a Tap inside text selection dismisses selection.
Change-Id: I8ccc952940d3f1b3a52d506f750019a892380f40
2010-12-01 10:33:26 -08:00
Jeff Brown
47e6b1b5ee Support non-orientation aware keyboards and other devices.
Fixed a bug with dpad keys on external keyboards being rotated
according to the display orientation by adding a new input device
configuration property called "keyboard.orientationAware".

Added a mechanism for overriding the key layout and key character
map in the input device configuration file using the new
"keyboard.layout" and "keyboard.characterMap" properties.

Also added "trackball.orientationAware", "touch.orientationAware" and
"touch.deviceType" configuration properties.

Rewrote the configuration property reading code in native code
so that it can be used by EventHub and other components.

Added basic support for installable idc, kl, and kcm files
in /data/system/devices.  However, there is no provision for
copying files there yet.

Disabled long-press character pickers on full keyboards so that
key repeating works as expected.

Change-Id: I1bd9f0c3d344421db444e7d271eb09bc8bab4791
2010-11-30 17:15:49 -08:00
Gilles Debunne
a944828d3b Merge "Clean-up in StaticLayout" 2010-11-19 11:07:15 -08:00
Gilles Debunne
6611147383 Clean-up in StaticLayout
Change-Id: I81ac5d8bef7ce8f4f65e3a8c7da8393ce0a87558
2010-11-19 11:04:37 -08:00
Jeff Brown
6b53e8daa6 Added support for full PC-style keyboards.
BREAKING CHANGE: Redesigned the key character map format to
accomodate full keyboards with more comprehensive suite of modifiers.
Old key character maps will not work anymore and must be updated.
The new format is plain text only and it not compiled to a binary
file (so the "kcm" tool will be removed in a subsequent check-in).

Added FULL keyboard type to support full PC-style keyboards.

Added SPECIAL_FUNCTION keyboard type to support special function
keypads that do not have any printable keys suitable for typing
and only have keys like HOME and POWER

Added a special VIRTUAL_KEYBOARD device id convention that maps
to a virtual keyboard with a fixed known layout.  This is designed
to work around issues injecting input events on devices whose
built-in keyboard does not have a useful key character map (ie.
when the built-in keyboard is a special function keyboard only.)

Modified several places where events were being synthesized
to use the virtual keyboard.

Removed support for the "qwerty" default layout.
The new default layout is "Generic".  For the most part "qwerty"
was being used as a backstop in case the built-in keyboard did
not have a key character map (probably because it was a special
function keypad) and the framework needed to be able to inject
key events anyways.  The latter issue is resolved by using the
special VIRTUAL_KEYBOARD device instead of BUILT_IN_KEYBOARD.

Added the concept of a key modifier behavior so that
MetaKeyKeyListener can distinguish between keyboards that use
chorded vs. toggled modifiers.

Wrote more robust key layout and key character map parsers
to enable support for new keyboard features and user installable
key maps.

Fixed a bug in InputReader generating key ups when keys
are released out of sequence.

Updated tons of documentation.

Currently QwertyKeyListener is being used for full keyboards
with autotext and capitalization disabled.  This mostly works
but causes some problems with character pickers, etc.
These issues will be resolved in subsequent changes.

Change-Id: Ica48f6097a551141c215bc0d2c6f7b3fb634d354
2010-11-18 09:49:03 -08:00
Gilles Debunne
162bf0f1b9 Fix for IOOBoundsExc in SpannableStringBuilder
Bug 3182953

Change-Id: Idc7faa86b8250bf325e2547d7d4c094300a06686
2010-11-16 16:23:55 -08:00
Dianne Hackborn
dea3ef7967 Add new resize mode to not resize, new web input types.
Change-Id: Ib098c03793d08532c3c099b59d0cc6b567e54900
2010-10-29 16:59:15 -07:00
Gilles Debunne
d040f95190 Temporarily removed call to drawCircle in BulletSpan.
Replaced by a drawPath. drawCircle is not supported by openGL for now.

Bug: 3101235

Change-Id: I0c050097e3cb87f9d4c703062d4250d08247c99e
2010-10-18 15:29:02 -07:00
Jeff Brown
497a92cc5b Add keycodes and meta-key modifiers to support external keyboards.
Added new key maps for external keyboards.  These maps are intended to
be shared across devices by inheriting the "keyboards.mk" product
makefile as part of the device's product definition.

One of the trickier changes here was to unwind some code in
MetaKeyKeyListener that assumed that only the low 8 bits of the meta key
state were actually used.  The new code abandons bitshifts in favor
of simple conditionals that are probably easier to read anyways.
The special meta key state constants used by MetaKeyKeyListener
are now (@hide) defined in KeyEvent now so as to make it clearer that they
share the same code space even if those codes are not valid for KeyEvents.

The EventHub now takes care of detecting the appropriate key layout
map and key character map when the device is added and sets system
properties accordingly.  This avoids having duplicate code in
KeyCharacterMap to probe for the appropriate key character map
although the current probing mechanism has been preserved for legacy
reasons just in case.

Added support for tracking caps lock, num lock and scroll lock and
turning their corresponding LEDs on and off as needed.

The key character map format will need to be updated to correctly support
PC style external keyboard semantics related to modifier keys.
That will come in a later change so caps lock doesn't actually do
anything right now except turn the shiny LEDs on and off...

Added a list of symbolic key names to KeyEvent and improved the toString()
output for debug diagnosis.  Having this list in a central place in the
framework also allows us to remove it from Monkey so there is one less
thing to maintain when we add new keycodes.

Bug: 2912307
Change-Id: If8c25e8d50a7c29bbf5d663c94284f5f86de5da4
2010-10-15 16:00:07 -07:00
Jeff Brown
464fb74e28 am 9785bf0f: am 14a288da: Merge "Add suuport for splitting touch events across windows." into gingerbread
Merge commit '9785bf0f2b6b8758aed7ded3b996a2ef0be89919'

* commit '9785bf0f2b6b8758aed7ded3b996a2ef0be89919':
  Add suuport for splitting touch events across windows.
2010-09-27 14:40:38 -07:00
Jeff Brown
9785bf0f2b am 14a288da: Merge "Add suuport for splitting touch events across windows." into gingerbread
Merge commit '14a288da6a372230d9af41da12241fe500eec837' into gingerbread-plus-aosp

* commit '14a288da6a372230d9af41da12241fe500eec837':
  Add suuport for splitting touch events across windows.
2010-09-27 12:37:03 -07:00
Jeff Brown
01ce2e9eee Add suuport for splitting touch events across windows.
This feature is currently used to enable dragging the start and end
selection handles of a TextView at the same time.  Could be used for
other things later.

Deleted some dead code in ArrowKeyMovementMethod and CursorControllers.

Change-Id: I930accd97ca1ca1917aab8a807db2c950fc7b409
2010-09-26 22:20:12 -07:00
Adam Powell
879fb6b5d6 Text selection anchors changed to use windows
Manually cherry-picked

Change-Id: Id080dfad0e2f324fef3a5175abc78f76c8bad4c8
2010-09-21 17:56:48 -07:00
Adam Powell
770a681b2f am 9aed3002: Text selection anchors changed to use windows
Merge commit '9aed300279db6953356aed5ef24a42291f5829cb' into gingerbread-plus-aosp

* commit '9aed300279db6953356aed5ef24a42291f5829cb':
  Text selection anchors changed to use windows
2010-09-21 17:20:40 -07:00
Adam Powell
9aed300279 Text selection anchors changed to use windows
Change-Id: I14f138039f5e3175a8c07f21985715b8447708e5
2010-09-21 17:11:41 -07:00
Brad Fitzpatrick
42a5ed2015 resolved conflicts for merge of 171c83f4 to master
Change-Id: I56a4c1838b17cf40d96763f95df3c84fc86359eb
2010-09-12 13:55:18 -07:00
Brad Fitzpatrick
171c83f47d am 11fe181e: Add faster TextUtil function for searching delimited lists.
Merge commit '11fe181e16501103d7c0f70344661ea2ef5d3df9' into gingerbread-plus-aosp

* commit '11fe181e16501103d7c0f70344661ea2ef5d3df9':
  Add faster TextUtil function for searching delimited lists.
2010-09-12 11:03:48 -07:00
Brad Fitzpatrick
11fe181e16 Add faster TextUtil function for searching delimited lists.
The previous version in Settings allocated memory.

Change-Id: I0f821112dc8f830689489f201ce268195f9e6cbd
2010-09-12 10:58:38 -07:00
Gilles Debunne
fd1a8945be am de5cfcb6: am d9c80ab3: Merge "Fix for a memory leak in TextKeyListener." into gingerbread
Merge commit 'de5cfcb608f3432d98ae17e0febb6e726df79e90'

* commit 'de5cfcb608f3432d98ae17e0febb6e726df79e90':
  Fix for a memory leak in TextKeyListener.
2010-09-08 15:50:50 -07:00
Gilles Debunne
de5cfcb608 am d9c80ab3: Merge "Fix for a memory leak in TextKeyListener." into gingerbread
Merge commit 'd9c80ab31ac3755141765e2c030bd1404ff0b050' into gingerbread-plus-aosp

* commit 'd9c80ab31ac3755141765e2c030bd1404ff0b050':
  Fix for a memory leak in TextKeyListener.
2010-09-08 15:02:20 -07:00
Gilles Debunne
d35180cf52 Fix for a memory leak in TextKeyListener.
Open source contribution https://review.source.android.com/#change,16985

Change-Id: Iebf09e147dd26575ca1a3f02180a678583671a68
2010-09-08 11:26:55 -07:00
Erik
d41b037c6b am c4f628a1: am c0b4f6d3: Merge "Adds a time zone parameter to formatDateRange" into gingerbread
Merge commit 'c4f628a1ba359926cf53ed7652d9abba6ea29123'

* commit 'c4f628a1ba359926cf53ed7652d9abba6ea29123':
  Adds a time zone parameter to formatDateRange
2010-09-08 11:04:41 -07:00
Erik
c4f628a1ba am c0b4f6d3: Merge "Adds a time zone parameter to formatDateRange" into gingerbread
Merge commit 'c0b4f6d30d962d75125628317b5f5ea622531dfe' into gingerbread-plus-aosp

* commit 'c0b4f6d30d962d75125628317b5f5ea622531dfe':
  Adds a time zone parameter to formatDateRange
2010-09-08 11:01:27 -07:00
Erik
577ec9eb3a Adds a time zone parameter to formatDateRange
For a critical feature request in Calendar we need the ability
to format a date range in a time zone other than the local tz.
This adds a new method signature to formatDateRange to allow for
a tz to be specified and maintains the old behavior if the parameter
is not used. Also deprecates the FORMAT_UTC flag.

Change-Id: I16b3e939760ec86c954b51a318d01b7bbf86acc9
2010-09-08 10:53:40 -07:00
Gilles Debunne
5c69544826 am cf86bc1d: am 883bbb72: Merge "Hide mCursorController field in ArrowKeyMovementMethod." into gingerbread
Merge commit 'cf86bc1d92128455c06ed8b0a338e7b3145d11a7'

* commit 'cf86bc1d92128455c06ed8b0a338e7b3145d11a7':
  Hide mCursorController field in ArrowKeyMovementMethod.
2010-09-07 19:05:18 -07:00
Gilles Debunne
cf86bc1d92 am 883bbb72: Merge "Hide mCursorController field in ArrowKeyMovementMethod." into gingerbread
Merge commit '883bbb72284736b5601f9e96d1116969c51b75de' into gingerbread-plus-aosp

* commit '883bbb72284736b5601f9e96d1116969c51b75de':
  Hide mCursorController field in ArrowKeyMovementMethod.
2010-09-07 18:59:22 -07:00
Gilles Debunne
49271c941e Hide mCursorController field in ArrowKeyMovementMethod.
Made the field private and added a description of its use.

Bug http://b/issue?id=2975284

Change-Id: Id8acf756218915cb2ae756789b62cfe7201a5c67
2010-09-07 18:32:28 -07:00
Jean-Baptiste Queru
9773cd73b6 am f470ed86: Merge "Support surrogate pairs when layouting text"
Merge commit 'f470ed8630e9e648727443b065b9f1c69fee34d6' into gingerbread-plus-aosp

* commit 'f470ed8630e9e648727443b065b9f1c69fee34d6':
  Support surrogate pairs when layouting text
2010-08-30 13:20:41 -07:00
Takako Ishibashi
12122bf792 Support surrogate pairs when layouting text
The current framework does not consider surrogate pairs
when getting the index of the character. This bug becomes
visible when creating the text including Emojis. For
example cursor breaks up when it moves around the Emojis.

Our proposed solution will consider the surrogate pairs
when calculating the index. It will fix not only the Emoji
case, but also the letters that use surrogate pairs.

Change-Id: I4983f2e4df933c8af9d5f0cc27df871e8e10fed4
2010-08-26 08:15:47 +02:00
Chet Haase
673e42fafd Fix for end events from Sequencer objects
Change-Id: I8947d8b016b880f9f54f2bf6ab22b4e188cdb29a
2010-08-25 17:32:27 -07:00
Gilles Debunne
925f2f9096 resolved conflicts for merge of 9765b2a0 to master
Change-Id: Ic37a443fff0425e9d7c8395f71665d56c38d7e53
2010-08-24 15:14:12 -07:00
Kenny Root
8db59adccf resolved conflicts for merge of b037da40 to master
Change-Id: I591f80f613870a4b1557f17d1c8574f661ed8121
2010-08-24 11:48:37 -07:00
Gilles Debunne
9765b2a01d am 2703a42d: When an EditText gains focus by tapping, move the insertion point where tapped.
Merge commit '2703a42d16af0e62da1bba02b6c935d98debf936' into gingerbread-plus-aosp

* commit '2703a42d16af0e62da1bba02b6c935d98debf936':
  When an EditText gains focus by tapping, move the insertion point where tapped.
2010-08-24 10:30:09 -07:00
Gilles Debunne
2703a42d16 When an EditText gains focus by tapping, move the insertion point where tapped.
The previous behavior was to move cursor at the end of the first line,
which feels weird.

Change-Id: I5a72f9871ed79ee2c521698ea642ba126537f4f9
2010-08-24 10:18:31 -07:00
Gilles Debunne
b037da401a am 3e05a0be: Hysteresis effect in Text selection.
Merge commit '3e05a0beb2fad0b21558019d2adf6805da70e10e' into gingerbread-plus-aosp

* commit '3e05a0beb2fad0b21558019d2adf6805da70e10e':
  Hysteresis effect in Text selection.
2010-08-23 15:26:51 -07:00
Gilles Debunne
3e05a0beb2 Hysteresis effect in Text selection.
Vertical movement requires going over a given threshold to change line.
Makes it easier to move down without changing line, so that one can see the
cursor better. Also simplifies long line selection.

Change-Id: I791da500232c6e510af64c637ed994c5da9a4fea
2010-08-23 15:20:53 -07:00
Gilles Debunne
a842d143d2 am d018a0ce: Merge "Text selection without trackball." into gingerbread
Merge commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c' into gingerbread-plus-aosp

* commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c':
  Text selection without trackball.
2010-08-19 18:01:20 -07:00