Merge commit '2703a42d16af0e62da1bba02b6c935d98debf936' into gingerbread-plus-aosp
* commit '2703a42d16af0e62da1bba02b6c935d98debf936':
When an EditText gains focus by tapping, move the insertion point where tapped.
Merge commit '3e05a0beb2fad0b21558019d2adf6805da70e10e' into gingerbread-plus-aosp
* commit '3e05a0beb2fad0b21558019d2adf6805da70e10e':
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
Merge commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c' into gingerbread-plus-aosp
* commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c':
Text selection without trackball.
Backported from HC.
Squashed commit of the following:
commit af214a595c7a9fdd11a2dc384f7d4665abf751c0
Fixes in TextView's selection.
commit eb9fd59ebe6500a66c2003d46b5802299970ae8d
TextView with Selection Contextual Mode
commit 4c4c338ef355b369ce4b57d6c6fba7ee8f9dddf4
Cosmetic changes around TextView.
commit d4b4b054e87480d984ad18766f5e76553e3080d8
Double and one and a half tap removed from TextView.
commit 897c2847ba1fca8ef01eadadd1bc3de007af3ee5
Selection handlers in TextView
commit 832be74a5394649e28927484d9a86c6d53b430e7
New cursor controller in TextViews.
Change-Id: I01cc64736e2abea605317ee53907a1713617fc17
When the text ends with an empty line, the getSpans() call to retrieve
styles for it would also retrieve the styles of the preceding line.
Add a special case to detect and prevent this.
Change-Id: I888131cacce6bf45e68c53c931ebe8d58db0b7a9
ClipboardManager was in android.text(!!) so it needed to be moved
up to android.content to have access to the richer data types we
now need.
ClippedData is the data representation. Still needs a lot of
fleshing out to allow holding more than one data type at a time
and perhaps conversions between them. (MIME-oriented interrogation
and conversion will be done through ContentProvider, which needs
to grow an ability to report multiple MIME types and accept a
desired MIME type when a stream is being opened.)
Change-Id: Ifa51bedcd084a677813b255d171804e8496b0cb5
Text selection is now triggered by a long press. This behavior should be shared
across applications and is already implemented in the browser.
New UI guidelines say that double tap should be used for zooming only.
Change-Id: I9fae692cf3f6e565350f666fa3d5a86884439349
Editable TextView now display a cursor controller under the insertion
point so that it can be precisely moved.
Change-Id: Ia2e6ddc57d249647ff6683e10e4226db3df27223
There was an issue in the Time.toMillis example.
Also removed some whitespaces so the file
applies to the Android coding Styleguide
Change-Id: Ic1383e506b30ff181c6e14a12f675b52e5c8ccbc
When auto-correction is used, the text is modified to underline the corrected word, which
modifies mGapLength and mGapStart. The mGapLength shift was not properly handled in getTextRunCursor.
Bug 2807595
Change-Id: I43ee216f6780270e452aa9199ffd892fe7ab6c3f
Merge commit '8b0d5bc3f858ae2b737ac654fa05c439344ad631'
* commit '8b0d5bc3f858ae2b737ac654fa05c439344ad631':
Fixing counting the number of days in call log screen.
Recent refactoring for bidi introduced an index shift in the getOffsetBeforeAfter
method. This problem appears for multi-line text input only, when the text line
mStart index is not 0.
As a result, moving the cursor using the trackball in a multi-line EditText crashes.
Change-Id: I1f121f0f9272ef7d338399f369ba6d77e1ca71c5
Add internal API (getTextRunAdvances) to Paint, use when measuring.
Add internal API (getTextRunCursor) to Paint, use when determining
valid cursor positions.
Remove java-level shaping code. Remove 'prep' code in TextLine
(except for replacement text) since shaping now is done on the fly as
needed in native.
Provide explicit shaping context bounds to internal text measuring,
cursor movement, and rendering APIs.
Update for to changes in external API in ushape.h.
Change-Id: I146958b624802ce8553125e5c3c6c03031bc9608
Also remove unused debugging code that depends on junit.
Remove trailing whitespace in changed code.
Change-Id: Ie02d1b8220c599a672ee6e91af0fba634e0f620c
Some line wrapping conditions caused the same style run to be measured
twice, incorrectly advancing the position in the width buffer and
occasionally causing measurement to run out of room. The fix is to
not remeasure the same style run.
Change-Id: Iceb29729c1c27bb602df20fdf83af1da28c82e11
The Javadoc had a missing close <code> tag and also failed to mention
the "start" parameter in the doc.
Change-Id: I861d6646e82e1d49f23a09de8b68a61f81689f83
Previous Canvas changes missed a @hide tag, so droiddoc was complaining
about a missing method since that was also hidden.
Change-Id: Ib70a9fa2e20fe32b74ba901bb289e77583164004
Adds drawTextRun as internal API on Canvas and GraphicsOperations.
Adds implementation to implementors of GraphicsOperations.
Adds state and API on Paint to control the bidi algorithm when used
by Canvas. This API is currently hidden.
The drawText changes are incomplete since shaping is not yet available
in the native code.
Change-Id: I4368048aef9545df0953a349381771603e04b619
Counting the number of days in call log screen when a
call was made/received within a week is not correct.
Issue 3132: Call Log Reporting Wrong
Change-Id: I99c3cb40267b4b5938ccc4225993b7aac7e2d018
Signed-off-by: David Sobreira Marques <dpsmarques@gmail.com>
This takes utility functions from Styled and a few other classes and
incorporates them into two new utility classes, TextLine and
MeasuredText. The main point of this is to support shaping by skia,
to experiment with how this will look, this also introduces
character-based Arabic shaping.
MeasuredText is used by code that determines line breaks by generating
and examining character widths in logical order. Factoring the code
in this way makes it usable by the ellipsize functions in TextUtils as
well as by StaticLayout. This class takes over the caching of widths
and chars arrays that was previously performed by StyledText. A small
number of MeasuredText objects are themselves cached by the class and
accesed using static obtain and recycle methods. Generally only these
few cached instances are ever created.
TextLine is used by code that draws or measures text on a line. This
unifies the line measuring and rendering code, and pushes assumptions
about how rtl text is treated closer to the points where skia code is
invoked. TextLine implements the functions that were previously
provided by Styled, working on member arrays rather than
explicitly-passed arguments. It implements the same kind of static
cache as MeasuredText.
TextLine and MeasureText simulate arabic glyph generation and shaping
by using ArabicShaping, ported with very minor changes from ICU4J's
ArabicShaping. This class generates shaped Arabic glyphs and Lam-Alef
ligatures using Unicode presentation forms. ArabicShaping is not
intended to be permanent, but to be replaced by real shaping from the
skia layer. It is introduced in order to emulate the behavior of real
shaping so that higher level code dealing with rendering shaped text
and cursor movement over ligatures can be developed and tested; it
also provides basic-level support for Arabic.
Since cursor movement depends on conjuncts whose formation is
font-dependent, cursor movement code that was formerly in Layout and
StaticLayout was moved into TextLine so that it can work on the shaped
text.
Other than these changes, the other major change is a rework of the
ellipsize utility functions to combine multiple branches into fewer
branches with additional state.
Updated copyright notices on new files.
Change-Id: I492cb58b51f5aaf6f14cb1419bdbed49eac5ba29
This is a fix for http://code.google.com/p/android/issues/detail?id=907. Note that
that issue was declined without comment, but the bug (while incredibly minor)
does exist. This can be seen on the facebook app, as well as many third party apps.
Change-Id: I8f1449c47228f5f757a5baf389656e51c817b150
Merge commit '0db37997366a4d781af48be758a9d90b6d07d7d5' into froyo-plus-aosp
* commit '0db37997366a4d781af48be758a9d90b6d07d7d5':
Revert to previous text selection behavior
There was a new behavior that starting "Select text" would allow you to
swipe from beginning to end and immediately copy that. This change
reverts to the previous behavior that "Select text" will start where
your cursor is currently and any tap will extend the selection from that
origin to the point of the tap.
Change-Id: Ib955cc8d62a652f518435953da2f54e810d9dfb0
Changes the internal representation of direction information in the Directions object to be a visually-ordered list of start/length+direction pairs instead of a list of directionality inversion offsets.
Rewrite Layout.getOffsetToLeft/RightOf to use run information instead of width metrics.
Remove java Bidi, use native. Switch bidi tests to test native, expect levels instead of dirs.
Add test of directionality. Leave in switch to turn new code off and restore previous behavior for now.
Change-Id: Iea8bb46c678a18820e237c90f76007a084c83051
This is a fix for http://code.google.com/p/android/issues/detail?id=907. Note that
that issue was declined without comment, but the bug (while incredibly minor)
does exist. This can be seen on the facebook app, as well as many third party apps.
Change-Id: I8f1449c47228f5f757a5baf389656e51c817b150