Commit Graph

242 Commits

Author SHA1 Message Date
Mike Cleron
ad97c1b128 Merge "Remove MeasuredText debug messages" into honeycomb 2011-01-31 23:22:36 -08:00
Kenny Root
fbc8630736 Remove MeasuredText debug messages
MeasuredText debug messages were left in the tree. Remove them before
shipping.

Bug: 3408963
Change-Id: Ia220eae5835d1325bb6053de0025d8016a1edcad
2011-01-31 13:54:58 -08:00
Gilles Debunne
0a4db3c527 Pixel were missing on the last line of text when using MaxLines.
Bug 3295544

Only the last line of text includes the bottomPadding (extra line
spacing below the characters' descent. When The text is clipped using
maxLines, the desired height correctly added this value, but getLineTop
and getLineDescent are also used when the layout is drawn.

The fix is to make the layout aware of its clipping so that these
values are correctly updated.

Change-Id: I703656cf45022d34a90f55f0ed8fc5e4b30f80b1
2011-01-30 18:23:13 -08:00
Brian Muramatsu
4c8ad6eb62 Fix TextUtils#commaEllipsize
Bug 3400770

TextUtils#commaEllipsize creates a MeasuredText "mt" object with the
text to be ellipsized. It calls setPara which initializes mt's mPos
member to be 0. It then calls addStyleRun which moves mPos to the end
of the string. The loop back in commaEllipsize then calls mt addStyleRun
again and this causes IndexOutOfBoundsException, because the paint
object is trying to measure text past the text's length.

It seems this was a typo and that the tempMt variable should be used,
because the code is trying to measure the format string...not the
the string to be ellipsized. This makes the saner parts of CTS test
for this method pass now.

Change-Id: Ib6aa6e4bbd6afff4c95ad4c4d51a384cc1389875
2011-01-27 18:13:39 -08:00
Gilles Debunne
47fc854ae9 Merge "Fix for a call to startActivity from outside of an app." into honeycomb 2011-01-25 14:20:09 -08:00
Gilles Debunne
d9ed795ca5 Fix for a call to startActivity from outside of an app.
Bug 3246715

Regression introduced by https://android-git.corp.google.com/g/#change,86174

Change-Id: Icba170746d196386bd9b0309582f724cb076d937
2011-01-25 13:40:06 -08:00
Gilles Debunne
2a32a39e9a Merge "Removed warnings in DynamicLayout" into honeycomb 2011-01-25 11:34:19 -08:00
Gilles Debunne
d6e568c4f3 Removed warnings in DynamicLayout
Change-Id: Ied1c330795412d0bdcac1236b466951112fabc7d
2011-01-25 10:14:43 -08:00
Gilles Debunne
f902d7bc49 TextLine cache is used, even for long lines of text.
Bug 3381368

The 250 characters limit is passed for long URLs. There are only 3
TextLine objects, so their total size is not an issue. Recycle long
lines as well to make sure we fill the cache and avoid object creation.

Change-Id: I843bf623594312a0fcf0edbb13b7cd64cce0ddd1
2011-01-25 09:09:46 -08:00
Leon Scroggins
d5188657dc Do a better job of lining up text with page text.
Bug:3085564
Bug:3196224
Bug:3321608

Remove Touch.getMaxScrollX(), which is incorrect for my
purpose, and is not used anywhere else.  Instead use the
layout to determine the maximum horizontal scroll of a
textfield.

Now that textareas use layers, scroll the layer's picture
in the UI thread for vertical movement.  When passing a
click to webcore, also pass a message to scroll the actual
textarea so the click will be in the correct place.

Lastly, do not override bringPointIntoView, which allows
moving the insertion handler beyond the edge of a field to
scroll it.  Instead, override requestRectangleOnScreen to
do nothing, since my actual goal is to prevent the TextView
from changing the scroll of the WebView, which is done by
webkit.

Requires a change to external/webkit.

Change-Id: Ib91907599b792287c373d3678cb04e0cb5e34471
2011-01-21 15:42:03 -05:00
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