• Home
  • History
  • Annotate
  • only in /frameworks/base/core/java/android/text/
History log of /frameworks/base/core/java/android/text/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3de110bbb7f30090b4eae0e4edbf97c5819c4658 04-May-2017 Abodunrinwa Toki <toki@google.com> Remove redundant TextClassificationService

Text classification is now being done entirely in the app's proccess.
See android.view.textclassifier.TextClassificationManager
Reverts Ic428d00f291e268211866b3fc6b7acbc3eb04e1e

Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Fixes: 36852122
Change-Id: Iffff3ab6e7d3b761576eb6bdcd5032db34b7a1b2
TextClassificationService.aidl
4972daf9923f3f60538b67be690dcb7e72cf7f6b 06-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't crash in TextUtil.concat() with paragraph spans" into oc-dev
e57886e659031b2400038d9cf00e48ab423e66f8 03-May-2017 Roozbeh Pournader <roozbeh@google.com> Don't crash in TextUtil.concat() with paragraph spans

This switches TextUtils.concat() to use SpannableStringBuilder
if there are any spans in the input strings. As a result, we can
avoid crashes when concatenating two CharSequences can result in
paragraph spans that now don't happen to be at paragraph boundaries.

Also document the exact behavior of the method for edge cases based
on the previous implementation.

Change-Id: I9caffbe95ed729b9c10d63a9e7d22b1e8c7185a3
Fixes: 28271770
Test: CTS tests added and old CTS tests continue to pass.
Test: cts-tradefed run cts-dev --module CtsTextTestCases --test android.text.cts.TextUtilsTest
extUtils.java
a8fce3b29eff8ed452ee20a1938268b837a105ad 04-Apr-2017 Felipe Leme <felipeal@google.com> Don't copy NoCopySpans for assist and autofill

For AssistStructure, and AutofillValue, create a copy of the text in
setText and forText methods if it is a Spanned.

Fixes: 36838999
Test: cts-tradefed run cts -m CtsAutoFillServiceTestCases
Test: cts-tradefed run cts -m CtsAssistTestCases
Test: cts-tradefed run cts --test android.widget.cts.TextViewTest -m \
CtsWidgetTestCases

Change-Id: I52e780fa9baa17c375d3945dc714171f41fd7db5
extUtils.java
ea6cb1215e97232bf96da02e35b6b8e938572eaa 28-Apr-2017 Abodunrinwa Toki <toki@google.com> Add "Paste as plain text" in TextView's toolbar.

Test: bit FrameworksCoreTests:android.widget.TextViewActivityTest
Bug: 36179795
Change-Id: Iee0502678adcfb9de58c107b9247a528718b2c40
extUtils.java
3f3354e087d3b0df568f53faef1d5bdf800d3be6 21-Apr-2017 Abodunrinwa Toki <toki@google.com> Undeprecate WebView.findAddress

Reverts I772961bd20bff4817a060f14a843abeceb55ac92
Until we bring back TextClassifier.getLinks
See I275a9d055ef0ab68f3ca339c37ee939257c4bd54

Test: none
Bug: 22362008
Bug: 37565246
Change-Id: I2948f22cf4c3462491f47376af48624697703969
til/Linkify.java
23161e7170ec2493ec830d04205f5696be159026 19-Apr-2017 Phil Weaver <pweaver@google.com> Make a11y clickable span work after node recycle

Services recycle nodes when gathering possible actions
for users to take. It's very confusing for them if they
can't recycle the node without breaking their ability
to activate a clickable span inside it.

Making ClickableSpans used for accessibility independent
of their parent nodes.

Also adjusting the value used for invalid window ids to
come from AccessibilityWindowInfo. I must have missed this
in an earlier cleanup. I needed the value for the spans,
so I figured I might as well use the correct one.

Bug: 37004527
Test: Now recycling the node in the a11y cts test.
Change-Id: I6de4e98a182dd43c4fcd0430a3c082fcc8e458c7
tyle/AccessibilityClickableSpan.java
tyle/AccessibilityURLSpan.java
d39388219f0d8f0fc2ec1b61a8b339684c610182 13-Apr-2017 Roozbeh Pournader <roozbeh@google.com> Merge "Revert "Make selection end handle stick to selection at line end."" into oc-dev
c68b1a8aefdd7275b60d49f2a8fc1c188aa6a5f6 12-Apr-2017 Selim Gurun <sgurun@google.com> Merge "Deprecate findAddress() method" into oc-dev
37bfd57ead03276ea1c50b28a11e6116afe0e32b 12-Apr-2017 Siyamed Sinir <siyamed@google.com> Merge "Do not enforce paragraph constraint for copy ctr" into oc-dev
feaa8b0f0156b33524d4f2e93c0aa71a9ea1d235 12-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unused public APIs." into oc-dev
7557a5a090204dccfd32096af4a6ded1f9bb5b17 12-Apr-2017 Roozbeh Pournader <roozbeh@google.com> Revert "Make selection end handle stick to selection at line end."

This reverts commit 7c263ddd582abacbbe9c71341a6ef4c704d12100.

Fixes: 35944608
Bug: 21305922
Test: Manual
Test: Updated CTS and core tests pass.
Change-Id: Ic840f8771c3d5850f4f6f44ea199b144cac740c0
ayout.java
b2d00340fd7b2e8301e7d85e1225c9aa68dd3440 06-Apr-2017 Roozbeh Pournader <roozbeh@google.com> Keep spans while transforming to uppercase

We now use ICU's new functionality for casing edits to preserve
the spans while applying AllCapsTransformationMethod.

Test: Manual
Test: CTS tests added and pass
Bug: 7198872
Bug: 19047649
Bug: 19713814
Bug: 34853618
Bug: https://code.google.com/p/android/issues/detail?id=67509
Change-Id: I0df388e79894961efb272d497f1dcc0570a6c085
ethod/AllCapsTransformationMethod.java
042741ce4f80f6a19c15252e447e66a0f3a891ec 11-Apr-2017 Seigo Nonaka <nona@google.com> Remove unused public APIs.

By I9ccafe7a53935960566243e2856e166878ca59ae, FontManager was gone.
So FontConfig is no longer need to be parcelable.
We can drop Parcel interface from FontVariationAxis.

Bug: N/A
Test: N/A
Change-Id: I33e92abf1e1063af312f0b7d9d6b8bd938d09c0e
ontConfig.java
9858e5372a3a88586932d8dbf032f82179b5de75 11-Apr-2017 Selim Gurun <sgurun@google.com> Deprecate findAddress() method

FindAddress method only ever worked on US addresses and being a part
of WebView API, it required the users that did not use WebView otherwise
to pay a heavy penalty. Further, it was also used by Linkify.

The new way to find addresses is using TextClassifier.

Bug: 22362008
Test: WebView.findAddress.

Change-Id: I772961bd20bff4817a060f14a843abeceb55ac92
til/Linkify.java
a6284a20b590be2be52e207174d3d0a980c77180 11-Apr-2017 Siyamed Sinir <siyamed@google.com> Do not enforce paragraph constraint for copy ctr

Update SpannableStringBuilder, SpannedString and SpannableString classes
so that they don’t enforce paragraph constraint for copy constructors.
If a paragraph constraint is not satisfied for a span, that span is not
copied. Before this change it would throw an exception.

Test: New tests added for SpannableStringBuilder and SpannableString
cts-tradefed run cts -m CtsTextTestCases
Bug: 36511794

Change-Id: I62abf08a8d4fe7e342ed97b8e8c3a577a9397e39
pannableStringBuilder.java
pannableStringInternal.java
9fe1c121272a469f69fb36766dc762e85a2052e1 06-Apr-2017 Roozbeh Pournader <roozbeh@google.com> Special-case English for DateTime and Time key listeners

Because English time patterns use uppercase letters by default (and a
comma to separate date and time when both are represented), we were
concluding they need internationalized input. Although they
literally do, let's keep the world simple and assume they don't need
internationalized input.

Compared to Nougat, we will now accept uppercase AM and PM and comma
for English if the IME allows them, we just continue to not signal
that an internationalized layout is needed.

Test: CTS tests pass
Bug: https://code.google.com/p/android/issues/detail?id=2626
Bug: https://code.google.com/p/android/issues/detail?id=82993
Bug: 8319249
Bug: 33276673
Bug: 34394455
Bug: 37079150
Change-Id: I82bfde323ba49ae1a27ff5c2e729063b7d81dcc8
ethod/DateTimeKeyListener.java
ethod/TimeKeyListener.java
94b6b532c09aa2dc9f31c0158c04a75072106c32 06-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Use text input for various internationalized listeners" into oc-dev
889c6503a1764d6dbc1f7f4e23e3b392daab330b 16-Feb-2017 Roozbeh Pournader <roozbeh@google.com> Use text input for various internationalized listeners

Since the characters that need to be entered for an internationalized
input type may not be available on the old non-internationalized
layouts, switch to the full text layout if there are any such
characters.

TextView is also modified to call the locale-aware listeners if
the target SDK is set to O or later.

Test: Manual
Bug: https://code.google.com/p/android/issues/detail?id=2626
Bug: https://code.google.com/p/android/issues/detail?id=82993
Bug: 8319249
Bug: 33276673
Bug: 34394455
Change-Id: I544bf0cc893a475ab5bf88cbad01cb981c6fef91
ethod/DateKeyListener.java
ethod/DateTimeKeyListener.java
ethod/DigitsKeyListener.java
ethod/TimeKeyListener.java
04fc05cd6688b33e4041da65e63c00d9bd177494 04-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Change justification parameter from boolean to int." into oc-dev
4b4730d90eef9dd4140cf750e2feba61acae9044 31-Mar-2017 Seigo Nonaka <nona@google.com> Change justification parameter from boolean to int.

Bug: 35766005
Bug: 35764323
Test: Manually done
Change-Id: Ic6d78bb9a3213160cd013f1ca8294307872bf0d0
ynamicLayout.java
ayout.java
taticLayout.java
ff55115121a7a2753ba2265cb3201a3a14c0874d 29-Mar-2017 Seigo Nonaka <nona@google.com> Reorganize font enumeration API.

This CL cleans up APIs around font variation settings.
- Remove FontConfig and FontManager public API.
- Remove FontManagerService from system service.
- Extract inner class FontConfig.Axis as top-level class FontVariationAxis.
This is used by Typeface.Builder public API to create new Typeface.
- Introduce and expose FontVariationAxis utility functions from/to string.
- Throws if the invalid font variation settings is passed.

Test: android.text.cts.FontVariationAxisTest passes
Test: android.graphics.cts.TypefaceTest passes
Test: android.graphics.cts.PaintTest passes
Change-Id: I9ccafe7a53935960566243e2856e166878ca59ae
ontConfig.java
ontManager.java
ontVariationAxis.aidl
ce93f31035169fd81096cfc84fce63881ca79315 01-Apr-2017 Roozbeh Pournader <roozbeh@google.com> Override bidi property of new emojis

In BidiFormatter and AndroidBidi, treat emojis new to
Unicode 10.0/Emoji 5 as bidi class ON.

Test: Manual
Bug: 32952475
Change-Id: I1a40c6ee2b6e9d91c9d1e5b64faca6d16301fe93
idiFormatter.java
moji.java
c0cf4f09f4c520b2aaafbe8a0cb0feb530c2e021 28-Mar-2017 Seigo Nonaka <nona@google.com> Do not use many FDs in FontManagerService.

Currently there are over 170 font files are installed in system directory.
Opening 170+ files and keep them is not unacceptable. Pass URI instead.

At the same time, this CL hides full font path from FontConfig since
/system/fonts directory will be deprecated in future.

Bug: 36660849
Test: android.text.cts.FontManagerTest passed
Change-Id: I1d216dc9c6dec702a4ce3b946bfda6dcbe12b7fe
(cherry picked from commit 455f1bfc05bf972ee4fe8cd5fa135ed232126bb7)
ontConfig.java
3e2936413d45a1c496a9c7d847a83f32b8b40dcd 23-Mar-2017 Seigo Nonaka <nona@google.com> Update setJustify API reference.

Bug: 35766005
Bug: 35764323
Test: N/A
Change-Id: I2d4b398479cdb3ac87257de95eb6a02f03c639bf
taticLayout.java
b2c20d880dea55f5657be08859950fc8eea96708 22-Mar-2017 Seigo Nonaka <nona@google.com> Unhide Typeface construction APIs.

These APIs are necessary to construct Typeface from various combination
TTC index, variation settings, etc.

Bug: 33062398
Test: android.graphics.cts.TypefaceTest passes
Change-Id: Ie069700ed4f67efbec55331bef867f94d58e2a61
ontConfig.java
20e5d91739fb88a02afb4888bf9f938308bc9b7b 18-Jan-2017 Seigo Nonaka <nona@google.com> Expose Typeface creation APIs with ttc and font variation.

Introduce Builder class for creating Typeface from various
sources with optional TTC index and font variation settings.

Bug: 33062398
Test: Manually verified new Builder create Typeface.
Change-Id: Ia23ee6a73516707d854c7387fe75fbb22f80673d
ontConfig.java
1bf3ee56f02cf0f5746f3cf5423da3b48bce32cf 17-Mar-2017 Roozbeh Pournader <roozbeh@google.com> Update Emoji.java to use ICU

Overrides have been added to update the data to Emoji 5.0, since our
version of ICU only supports Emoji 4.0.

Test: CTS tests continue to pass.
Bug: 27365282
Bug: 30874706
Change-Id: I7c791e1e75ea3510b36f258c1e1c7184051d6d3a
moji.java
16a8f3762c395dc9b04fa2cdf66ebe0ce570e711 17-Mar-2017 Roozbeh Pournader <roozbeh@google.com> Remove U+1F93B MODERN PENATHLON and U+1F946 RIFLE from emoji

These had remained in Emoji.java although they were removed from Unicode
emoji. The data still needs to be updated to Emoji 5.0, but that will be
done in another CL.

Test: not needed
Bug: 28678294
Change-Id: I491c4bba107b960fb1efccbe19630ab274aa6e29
moji.java
ac873c9f25d2a687c9195226b9d680f51c91fa30 08-Mar-2017 Seigo Nonaka <nona@google.com> Clean up public FontConfig APIs

This CL contains following clean up:

- Hide unnecessary constructors.
- Change List<XX> to XX[] since actually all fields are immutable.
- Change font's variant type from String to int.
- Decouple resource related members to FontResourcesParser.
- Add NonNull/Nullable to all fields.

Test: ran android.content.res.FontResourcesParserTest

Change-Id: If456266ffff86d41342572a19662cc8f3cd13181
ontConfig.java
b18296c88f6def0f912a237bc5b1eb127c6e3022 14-Mar-2017 Selim Cinek <cinek@google.com> Merge "Fixed that indents on an ellipsis of a staticlayout were dropped"
365ec09695a82be6adb98f466911fa82f7691b32 09-Mar-2017 Selim Cinek <cinek@google.com> Fixed that indents on an ellipsis of a staticlayout were dropped

If a layout had an ellipsis and in addition also indents,
the indents were ignored and the text would go over the indents.

Test: runtest -x cts/tests/tests/text/src/android/text/cts/StaticLayoutTest.java
Test: runtest -x cts/tests/tests/text/src/android/text/cts/DynamicLayoutTest.java
Test: runtest -x cts/tests/tests/widget/src/android/widget/cts/TextViewTest.java
Change-Id: I4cc89dad8301f6b1bb46a479395fd72c8476e477
Fixes: 36081667
taticLayout.java
2ffca8390f18195437fb27870e74c0bf52dc818d 13-Mar-2017 Roozbeh Pournader <roozbeh@google.com> Merge "Check for existance of hyphenation pattern files first"
36e866b8e0ec08e45b5e7fbc65aeeb3a9bb7b11e 24-Feb-2017 Eugene Susla <eugenesusla@google.com> Support multiple filters per association request

By supporting multiple filters per one request we should be able to cover
multiple kinds of use cases such as:
- Letting the user select from a list of devices of more then one medium
type (e.g. Bluetooth and BLE)
- Allowing to provide multiple criteria for any field (e.g. filtering by
more than one service UUID)

Bug: 30932767
Test: Provide multiple filters and ensure that devices matching either are
shown in the list to choose from.
Ensure wifi SSIDs are shown in the list if wifi filter is provided

Change-Id: I0a978787551a1ee5750ec5544b241d3bbfed5a7c
extUtils.java
94a8acba754e70c463848f7f62414f6ad9e1dcdf 10-Mar-2017 Roozbeh Pournader <roozbeh@google.com> Check for existance of hyphenation pattern files first

This CL checks for existance (and readability) of hyphenation pattern
files before trying to read them. The main impact is reducing the
spam in the log due to the failure of calling RandomAccessFile() with
non-existing paths.

Test: Manual
Bug: 31727175
Bug: 36023892
Change-Id: I6963790fa205ab16d4ece548e4cbb0c15e279a14
yphenator.java
d66c95fa907dc9eb3d7238fbbf3dc6dbd4b243a0 09-Mar-2017 Hector Tellez <htellez@google.com> Revert "Support multiple filters per association request"

This reverts commit e70e6aa62c6f3a9a79624a4f9d97df95edda0364.

Change-Id: I12857cbbea0a0c74521191ab5e3713db230626ab
extUtils.java
e70e6aa62c6f3a9a79624a4f9d97df95edda0364 24-Feb-2017 Eugene Susla <eugenesusla@google.com> Support multiple filters per association request

By supporting multiple filters per one request we should be able to cover
multiple kinds of use cases such as:
- Letting the user select from a list of devices of more then one medium
type (e.g. Bluetooth and BLE)
- Allowing to provide multiple criteria for any field (e.g. filtering by
more than one service UUID)

Bug: 30932767
Test: Provide multiple filters and ensure that devices matching either are
shown in the list to choose from.
Ensure wifi SSIDs are shown in the list if wifi filter is provided
Change-Id: I6621da388e2bf4ed97c5af2692629a321d0b63c7
extUtils.java
3c4be77db95ea716889568bde853be082e764da9 07-Feb-2017 Clara Bayarri <clarabayarri@google.com> Support non-system Font Providers

To do this, the developer must specify the set of certificate
hashes that represent the authority's app. This allows us to
verify that the authority we find is indeed the one intended
by the developer.

Bug: 35025705
Test: runtest --path frameworks/base/core/tests/coretests/src/android/provider/FontsContractTest.java
runtest --path frameworks/base/core/tests/coretests/src/android/content/res/FontResourcesParserTest.java
CTS attached to topic
Change-Id: I605f9a93bbca8705936ead08efb4a5b4fdcc4882
ontConfig.java
a59c3feb8dca564a0afe290c9c717ca63047bcee 27-Feb-2017 Roozbeh Pournader <roozbeh@google.com> Customizable minimum suffix/prefix length for hyphenation

With this change, different languages can have a different minimum
length for suffix and prefixes when hyphenating. Previously, the
defaults used for English, 2 and 3, were used for every language.

Bug: 35712376
Test: Manual: German text can now break after two characters
Change-Id: Ia12d448a42bf2fab7c0bf5e85f8e27a4fb7f77d8
yphenator.java
taticLayout.java
46c6f4c5ea7846fee4e6ef40c035ef2bee1adcbb 21-Feb-2017 Roozbeh Pournader <roozbeh@google.com> Frameworks support for hyphenation for various complex cases

This adds better support for Arabic script languages, Armenian,
Catalan, Hebrew, Kannada, Malayalam, Polish, Tamil, and Telugu by
adding various hyphenation types and edits appropriate for the
locales.

The actual implementations are in Minikin. This CL takes care of the
changes needed in frameworks, to support different end-of-line and
start-of-line hyphen edits.

Two bugs in TextLine.java are also fixed:

1. Where hyphen edits on non-spanned texts were not eliminated in
handleRun() when they should have. This had manifested itself in
double hyphenation in some bidi paragraphs.

2. Some no op assignments and comparions around the change for the
above bug are removed.

Test: thorough manual testing for various cases
Bug: 19756624
Bug: 19950445
Bug: 19955011
Bug: 25623243
Bug: 26154469
Bug: 26154471
Bug: 33387871
Bug: 33560754
Bug: 33752592
Bug: 33754204
Change-Id: I48c047d1f6a75c39a78a6ea38a0a3282f63326ec
extLine.java
033b2226babcaeeb28cc08de6e2c2304a581bd9f 23-Feb-2017 Roozbeh Pournader <roozbeh@google.com> Load hyphenation patterns for Bulgarian and Church Slavonic

Patterns for Bulgarian (bg) and Church Slavonic (cu) are now loaded
too.

Also make changes to fontchain_lint.py, so it knows the script for Bulgarian
and Church Slavonic is Cyrillic.

Test: make -j works and creates .hyb files for bg and cu
Change-Id: I0586f6c49380279ef88fe952b5cfd2d3594c5524
yphenator.java
e09e529085118106f61aab725a04ad69e27c9e55 22-Feb-2017 Siyamed Sinir <siyamed@google.com> Merge "Revert "Don't copy NoCopySpans in SpannableStringInternal""
fa4a02c13f29a6d378e02015c2407eba283827c0 22-Feb-2017 Siyamed Sinir <siyamed@google.com> Revert "Don't copy NoCopySpans in SpannableStringInternal"

This reverts commit 5de4fb641adbf4f139c08e3b2504fb0545342402.

Bug: 34712634
Fixes: 35363881

Change-Id: I7311e1201152bde052511869c60a0d0c1c5b3242
pannableStringInternal.java
5653fb10a78f21b6bb27ce781cc6284d9ce03bc2 16-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Introduce Backspace implemenation for flag emoji sequence."
302fe9098b26c95ba3c5e98b88ffc56158d4a677 15-Feb-2017 Andrei Stingaceanu <stg@google.com> Merge "TextView/LinkMovementMethod/ClickableSpan - touch up revert"
02761acc674ae9b13d5bbda493ac794ecc4c1c6e 14-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Declarative downloadable fonts"
4b5a4d221f377686a730182a3bffb8c6f190e313 27-Jan-2017 Clara Bayarri <clarabayarri@google.com> Declarative downloadable fonts

Implement support for downloadable font requests in xml. Given the
xml fonts feature in O, this adds support to not only declare
local font files as font resources, but also Downloadable fonts
from a fonts provider.

A provider returns a font family (of one or more files) given a
query, so the new attributes are added to the font-family tag.

Additionally, add support to pre-declare downloadable font resources
in the Android Manifest. These will then be fetched at app startup
time so they are available to use from the Typeface cache asap.

When retrieving downloadable fonts via resources, the cache is
checked to see if the font is already there and is used, otherwise
a request is sent to the provider and the default font is returned
as we need a result synchronously.

To do this, the developer declares an additional fonts xml resource
file with the list of fonts to preload and links it in the manifest
with a meta-data tag.

E.g.:

res/font/mydownloadedfont.xml

<font-family xmlns:android="http://schemas.android.com/apk/res/android"
android:fontProviderAuthority="com.example.test.fontprovider"
android:fontProviderQuery="myrequestedfont">
</font-family>

res/font/preloaded_fonts.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font android:font="@font/mydownloadedfont" />
</font-family>

and in the AndroidManifest.xml

<meta-data android:name="preloaded_fonts"
android:resource="@font/preloaded_fonts" />

Bug: 34660500, 34658116
Test: WIP, need to add more
Change-Id: I1d92555e115e241bf23b59e6f5c6cca6c7361de7
ontConfig.java
60bcd2485d5807c10ea644bee7475c78e4cd9a4a 13-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Internationalize subclasses of NumberKeyListener"
d834c58252dda7d92890dfd491d0cfe4d2504113 10-Feb-2017 Andrei Stingaceanu <stg@google.com> TextView/LinkMovementMethod/ClickableSpan - touch up revert

Reverts the change which adds a gesture detector in
TextView for detecting clicks on ClickableSpans. A click
is considered MotionEvent.ACTION_UP. Revert needed because
the singleTapUp refactoring has a potential to break
existing apps.

Bug: 23692690
Test: attached in the same topic
Change-Id: Ife47fd0608480130123091bc60a7e9dd1efe8785
ethod/LinkMovementMethod.java
d5eff80a7721123f2170ff9a983db9f06535d5b4 03-Feb-2017 Seigo Nonaka <nona@google.com> Introduce Backspace implemenation for flag emoji sequence.

Also introduce some test cases to CoreTest.

Test: ran FrameworksCoreTest
Change-Id: I4e237155a6fa7567937c8d089459c0780f868ffc
moji.java
ethod/BaseKeyListener.java
3484ba8fdc8f5c91937af23e6d59025081c02367 19-Jan-2017 Roozbeh Pournader <roozbeh@google.com> Internationalize subclasses of NumberKeyListener

The previous implementation assumed ASCII digits, and a fixed set of
separators and signs.

The following classes have been internationalized: DigitsKeyListener,
DateKeyListener, TimeKeyListener, and DateTimeKeyListener.
DialerKeyListener is not modified yet, due to concerns about the
handling of non-ASCII digits by dialing-related parts of Android.

Even with this CL, characters outside BMP and multi-character signs
and decimal separators are still not supported, due to limitations in
android.view.KeyEvent and android.view.KeyCharacterMap.

Test: cts-tradefed run cts-dev --module CtsTextTestCases --test android.text.method.cts.*KeyListenerTest
Bug: https://code.google.com/p/android/issues/detail?id=2626
Bug: https://code.google.com/p/android/issues/detail?id=82993
Bug: 8319249
Bug: 33276673
Bug: 33643035
Bug: 34394455
Change-Id: I1cf87d0d9d1b383f5265c07ecd63b5767f9a68ca
ethod/DateKeyListener.java
ethod/DateTimeKeyListener.java
ethod/DigitsKeyListener.java
ethod/NumberKeyListener.java
ethod/TimeKeyListener.java
f67f0a584e6dad90a3c6dabff208c3a01fcd51e6 09-Feb-2017 Abodunrinwa Toki <toki@google.com> Change package for LangId and SmartSelection.

Package change from android.text to android.view.textclassifier.
This change was delayed until the native library code was updated
to reflect this package change.

Test: cts-tradefed run cts-dev -m CtsViewTestCases -t android.view.textclassifier.cts.TextClassificationManagerTest
Bug: 34777495
Change-Id: I723aaf79f8fbed4758bb4ee6727dfb6a8e35bf99
angId.java
martSelection.java
c534f4ca8a6435dddccbf56b38931745855a8871 08-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unnecessary if-else statement from TextUtils#isEmpty. "
155c3a88ac6e6b690fb3324054abfcc8095e9cc3 07-Feb-2017 Andrei Stingaceanu <stg@google.com> Merge "Clickable spans - trigger onClick onSingleTapUp"
d4196c9e8b7931d155c065cba26726a2e7d8d817 07-Feb-2017 Amin Shaikh <ashaikh@google.com> Remove unnecessary if-else statement from TextUtils#isEmpty.

Test: runtest frameworks-core

Change-Id: Ibcdc67130570775650fe8affda961227319c6641
extUtils.java
6ed45d8cd33c297e608aba94fc1f61dace7a7cca 22-Jan-2017 Eugene Susla <eugenesusla@google.com> CompanionDeviceManager

This introduces an API for apps that support companion devices to provide a
more streamlined flow for pairing and setting up the device

Bug: 30932767
Test: Using a toy app, invoke the newly introduced API (CompanionDeviceManager),
and go through the flow. Ensure filtering works, and device is returned to
the calling app. Ensure the calling app can pair to the selected device.
Change-Id: I0aeb653afd65e4adead13ea9c7248ec20971b04a
extUtils.java
f0ebee91f86eafc1fb7b4c377f3cd1d6ce3fe38e 06-Feb-2017 Andrei Stingaceanu <stg@google.com> Clickable spans - trigger onClick onSingleTapUp

Previously (post Android N) we decided to introduce
a gesture detector in textView and trigger the onClick()
over a clickable span when onSingleTapConfirmed was
called. The problem is that onSingleTapConfirmed also
waits for double tap timeout to make sure (to confirm).
This has a chance to break some apps so relax the
rule to only look for onSingleTapUp.

* the bug for which the initial change was made is
still fixed
* slightly amended the ClickableSpan JavaDoc to
specify that the onClick gets triggered if the
span is selected when clicked (note that this
behavior is unchanged since ClickableSpan exists,
added just an extra hint to devs)

Bug: 23692690
Test: in the attached CL (same topic)
Change-Id: Iead434aa558301d61879c27edc48dc4148ca187f
tyle/ClickableSpan.java
5de4fb641adbf4f139c08e3b2504fb0545342402 26-Jan-2017 Siyamed Sinir <siyamed@google.com> Don't copy NoCopySpans in SpannableStringInternal

Bug: 34712634
Test:
Added new tests to cts.SpannableStringTest and cts.SpannedStringTest
android.text.cts.SpannableStringTest
android.text.cts.SpannedStringTest
android.text.cts.SpannableStringBuilderTest
android.text.SpannableStringTest
android.text.SpannedTest

Change-Id: I34e4ef4798b8d26fa8770c0021acb52b4047095e
pannableStringInternal.java
67024f1b8feac1f59fff6a123f45f18a70e80e4f 30-Jan-2017 Abodunrinwa Toki <toki@google.com> Merge "Implement TextClassification system service."
fe98ad919bebaf41191b7fdf0a1d841198d4f46a 30-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Implement .xml font resource support"
ed00bfdfae5d5cbc9e13f4e8affdece48f4c5b7f 20-Jan-2017 Clara Bayarri <clarabayarri@google.com> Implement .xml font resource support

This change implements the loading and parsing
of xml type font resources, and makes sure it is
used properly by TextView styles.

Test: run cts -m CtsContentTestCases -t android.content.res.cts.ResourcesTest
run cts -m CtsWidgetTestCases -t android.widget.cts.TextViewTest#testFontResources*

Change-Id: I5a2930b3ba7dad67d9607e9036a5dde6bab0c5a4
ontConfig.java
0ce4b0e4c31a65864e0cda3c9d3fb6fe8a40f2ed 26-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs. am: 54de77470d am: ab978c035e am: 28ba4722a9
am: 9b21265b2c

Change-Id: If246ebdb36cf2832d5a6c42cbe752e290b6fb6e8
9b21265b2ce0f57796bffb241c008fff459d4b05 26-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs. am: 54de77470d am: ab978c035e
am: 28ba4722a9

Change-Id: I98177a8cf0a20677e140406bb7371474ca259e5b
54de77470de4f605eef7f4b4e01718b301fe275e 12-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs.

Change-Id: I40cea46efd80c448640ff69753698fe8404da40b
ditable.java
tyle/ImageSpan.java
tyle/TtsSpan.java
9ab25678f9a99bbdf711a18276094eda1bf11d2c 24-Jan-2017 Siyamed Sinir <siyamed@google.com> Make SpannableStringBuilder.getSpans thread-safe
am: 4234144a2b

Change-Id: I9d1c2d93d6f22465c88e35df28d75f07bcc687b3
3d9238ec638ff337084a2a6b5e52a8715a65b5cc 24-Jan-2017 Siyamed Sinir <siyamed@google.com> Fix SpannableStringBuilder getSpans sort am: 051caedcaa
am: 1764efad93

Change-Id: I33b2f25901330e79bbc166a318f71d5124d0b332
7afe571bd7f68f7b86bd12ed83653facdd5a0fe3 24-Jan-2017 Siyamed Sinir <siyamed@google.com> Merge "Make SpannableStringBuilder.getSpans thread-safe"
43e0350922556e86b641da084a2c9dc2b07fc662 13-Jan-2017 Abodunrinwa Toki <toki@google.com> Implement TextClassification-related methods.

Implements TextClassificationManager.detectLanguages
Implements TextClassifier interface

Bug: 34661057
Test: See: Ic2a5eceeaec4cd2943c6c753084df46d30511fee
Change-Id: Ic640b96f48bcad7cdd8c4dfac354b008a7ae3961
angId.java
martSelection.java
f001fefff3745c29e2ff6903d69ad921df1ea277 05-Jan-2017 Abodunrinwa Toki <toki@google.com> Update TextAssistant interface.

Rename to TextClassifier
Move to android.view.textclassifier package
Adds getTextClassifierInfo(...)
Changes addLinks(...) to getLinks(...)

This CL also integrates this interface with framework components
and passes a context to TextClassificationManager.

Test: Tests will be added with implementation.
Bug: 34661057
Change-Id: If9e90f034ebb702c1f78e72b6a844f39eebf738f
extAssistant.java
extClassification.java
extClassificationManager.java
extLanguage.java
extSelection.java
4234144a2b0a577c2ace6c592fcea03c7672ab77 14-Dec-2016 Siyamed Sinir <siyamed@google.com> Make SpannableStringBuilder.getSpans thread-safe

Add cached int buffers for sorting.

Test: All CtsTextTestCases

Merged-In: Ice0b3c3fffc541b26aca94c93fd01e30e13efe2e

Bug: 33609774
Change-Id: Ib728654a384cfc072d1c190611e4553aa8957fa8
pannableStringBuilder.java
1bcdcebf68c95468e8d2cf3267f13b01152d0cbd 14-Dec-2016 Siyamed Sinir <siyamed@google.com> Make SpannableStringBuilder.getSpans thread-safe

Add cached int buffers for sorting.

Test: All CtsTextTestCases

Bug: 33609774
Change-Id: Ice0b3c3fffc541b26aca94c93fd01e30e13efe2e
pannableStringBuilder.java
04d72abde1efc963ebb2f145f859552e83b92d13 10-Jan-2017 Clara Bayarri <clarabayarri@google.com> Expose fonts.xml via public API with a service

This change creates a new FontManagerService, in charge of providing
font management data. It exposes a public API to retrieve the
information in fonts.xml without accessing it directly. To do this,
it also refactors FontListParser's internal classes into a new public
FontConfig class holding all the font data.

getSystemFonts() returns all the available information in fonts.xml
as well as file descriptors for all the fonts. This allows us to
share the memory consumed by these files between all clients.

Bug: 34190490
Test: See attached CTS change in topic
Change-Id: I0e922f8bcc9a197a1988d04071eb485328d66fb7
ontConfig.aidl
ontConfig.java
ontManager.java
c565e1d3cea6f8db4fa0371b3cdb9fe11dbf4483 14-Dec-2016 Abodunrinwa Toki <toki@google.com> Implement TextClassification system service.

- This service provides the TextClassificationManager access to the
classification model file.
See: Icb82b707c9c1b4dcb739f44d888bbc43bc3b03bb
- This service is started at boot time.
See: Ie4a597bc5c6c4140afbcf7feaa9dd237a3fd5fef

Test: Manually tested. Also see: Ic2a5eceeaec4cd2943c6c753084df46d30511fee
Bug: 32503402
Change-Id: Ic428d00f291e268211866b3fc6b7acbc3eb04e1e
TextClassificationService.aidl
051caedcaa1048d094880c9ee3b59605580b6c70 14-Dec-2016 Siyamed Sinir <siyamed@google.com> Fix SpannableStringBuilder getSpans sort

Sort function was broken for odd number of elements.

Test: Added new CTS tests.

Bug: 33567024
Change-Id: I7457dee6ac279c6aab5b92431b347dc1f16a8fa0
pannableStringBuilder.java
846946ec06e4f7b31d5a414f026ef03e13793df7 13-Jan-2017 Keisuke Kuroyanagi <ksk@google.com> Merge "Make selection end handle stick to selection at line end."
7c263ddd582abacbbe9c71341a6ef4c704d12100 12-Jan-2017 Keisuke Kuroyanagi <ksk@google.com> Make selection end handle stick to selection at line end.

At line break, one offset can be mapped to two phisical
position: previous line end and next line start.
Previously, all cursor handles are placed at next line
start.
With this CL, selection end handle is placed at the
previous line end in such cases.

Test: FrameworksCoreTests
Bug: 21305922

Change-Id: I00d9f9a0cd417ca92534e93b3d3f655cd62f25d3
ayout.java
74bf35017635f896c449f78d37144124d445b918 11-Jan-2017 Phil Weaver <pweaver@google.com> Merge "Accessibility support for ClickableSpan"
193520e3dff5248ddcf8435203bf99d2ba667219 13-Dec-2016 Phil Weaver <pweaver@google.com> Accessibility support for ClickableSpan

Bug: 17726921
Test: Adding CTS tests for new behavior in linked CL.
Change-Id: Ifa85c309106d5ef29bb130edff9e2e0b88547a8f
extUtils.java
tyle/AccessibilityClickableSpan.java
tyle/AccessibilityURLSpan.java
tyle/ClickableSpan.java
09da71a6dcfe07e0efdc35933322fba16091f555 28-Nov-2016 Seigo Nonaka <nona@google.com> Introduce full justification.

Adds a new get/setJustify API to TextView and StaticLayout.Builder for
justification, and fully justifies text when it's enabled.

This is based on a patch by Raph Levien (raph@google.com).

Bug: 31707212
Test: Manually done and CTS will introduced with
I0f3bbf39d60a66b71b30e1351f7c741208f05dce passes.
Change-Id: Icbfab2faa11a6a0b52e6f0a77a9c9b5ef6e191da
ynamicLayout.java
ayout.java
taticLayout.java
extLine.java
d837ed2c996652a4bb6634bf5043faa71800da02 31-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix getLineExtent for hyphen width."
f6952b83310af2fefddaa6d1f038f7709fa4a803 17-Dec-2016 Roozbeh Pournader <roozbeh@google.com> Expand characters temporarily skipped in spellchecking

An earlier patch (I4d09576a31df551c96f820242fd2cbc675506dae)
special-cased apostrophe as a character to defer spellchecking on,
since it could cause a word break which could later get removed.

This patch updates that earlier patch to include all characters that
could cause such a behavior according the Unicode word breaking
algorithm defined in UAX #29.

Bug: 17641350
Bug: 17673522
Test: manual
Change-Id: I4029e3d91dfcf96665b003f6fdd30d1208b0ac7c
ethod/WordIterator.java
9863f67469794af8b63666126e5d60b4eed7cdeb 14-Dec-2016 Seigo Nonaka <nona@google.com> Fix getLineExtent for hyphen width.

Need to set hyphen edit before measuring line.

Bug: 33388205
Test: Manually done
Change-Id: I32b1639d03ddd9bddb1f3ab34b577544ae358a6a
ayout.java
ff53f923e90e6cd3cc75ef3481e2013291af4254 15-Dec-2016 Roozbeh Pournader <roozbeh@google.com> Merge "Use TextDirectionHeuristics to detect text direction in Html"
2beaa2e45edcb910e1b709b951c7fa51eea34663 15-Dec-2016 Roozbeh Pournader <roozbeh@google.com> Merge "Use ICU for formatting in DateUtils.formatDuration"
04b2be42c38a26b84209103a2ef090500b410459 14-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Deprecate android.text.AndroidCharacter"
aa0af8e86278d8b0935c95a5ff06c80532bf7733 14-Dec-2016 Roozbeh Pournader <roozbeh@google.com> Use TextDirectionHeuristics to detect text direction in Html

Previously, AndroidBidi was used instead, whch did a lot of extra work
just to detect a paragraph's direction. TextDirectionHeuristics stops as
soon as the direction is found, and avoids JNI too.

Bug: 21455837
Test: cts-tradefed run cts-dev --module CtsTextTestCases --test android.text.cts.HtmlTest
Change-Id: Iea196fb5ca43dca99e65a367a2da701b1c1b98b8
tml.java
c6bffbf6033c88d1b8403360ba129831b0155f33 13-Dec-2016 Roozbeh Pournader <roozbeh@google.com> Use ICU for formatting in DateUtils.formatDuration

Previously, we were using native strings. ICU has higher quality and
more comprehensive data.

Also adds parameters for specifying the format width (e.g. "2 hrs" vs
"2 hours").

Bug: 31526474
Test: adb shell am instrument -w -e class android.text.format.DateUtilsTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
Change-Id: I754f6c761c2ed3853046796c57ff2d86a6ccd43e
ormat/DateUtils.java
3eda170b770a22b6da177307988fca0705f197dc 14-Dec-2016 Derek Sollenberger <djsollen@google.com> Merge "Remove Rasterizer and its subclasses from the public API."
9559c20a3903f7cbaa6132be78c2f57d34ea262f 13-Dec-2016 Roozbeh Pournader <roozbeh@google.com> Deprecate android.text.AndroidCharacter

AndroidCharacter was added to compensate for limitations in
java.lang.Character, but it has been outdated and its functionality
is provided with a much better API by android.icu.lang.UCharacter.

Bug: 32551718
Test: cts-tradefed run cts-dev --module CtsTextTestCases --test android.text.cts.AndroidCharacterTest
Change-Id: Iec1969dc5787a4ebb0e68cdc213d3d0cdc3b2d0d
ndroidCharacter.java
extUtils.java
8158af53e81d8dc062872a682e4d415f7929a28b 23-Nov-2016 Abodunrinwa Toki <toki@google.com> Introduce TextClassificationManager.

This handles smart selection and language detection features.
This CL only contains code to integrate the TextClassificationManager.
Implementation will be added in a follow up CL.

Test: Test will be added when TextClassificationManager is added.
Bug:32503402
Change-Id: I5f22150ff998156fbc91b51c733d93478efaa51f
extClassificationManager.java
extLanguage.java
dcc3630100b406e4e6cb18f00d39059690153292 09-Dec-2016 Derek Sollenberger <djsollen@google.com> Remove Rasterizer and its subclasses from the public API.

Test: compile
Bug: 14650725
Change-Id: I99e1942d4d1b85f4efdcb3faf3fee1aa6c839b7e
tyle/RasterizerSpan.java
d0d9ceb30c1f6fa674de98274c0684c3418d66d3 21-Nov-2016 Abodunrinwa Toki <toki@google.com> Introduce TextAssistant for Smart Text Share feature.

Bug: 30982298
Test: CTS tests to be added in a follow up CL.
Future CLs will add implementation detail.

Change-Id: Iad550447a4b3552340c0ada75fda60f97f0913aa
extAssistant.java
extClassification.java
extSelection.java
302d57c6494e1b6b5bf0029deaefece3743cadf3 12-Nov-2016 Siyamed Sinir <siyamed@google.com> Merge "Update TextView ApiDocs."
9c3af5ab205ebf53f4db9fd7779a6e15aeceba78 08-Nov-2016 Siyamed Sinir <siyamed@google.com> Merge "TextLine.handleRun should throw exception for invalid index"
9aba698bd11b01a3c85884c425a5a16c2ef6e83c 08-Nov-2016 Siyamed Sinir <siyamed@google.com> Merge "StaticLayout visual fix for maxLines"
caa08ff5e9ee004634a95776fc72bb769f1286de 07-Oct-2016 John Reck <jreck@google.com> The bigger update to Canvas

All draw* calls in Canvas are regular JNI
All draw* calls in DisplayListCanvas are FastNative
Unifies Canvas JNI on nMethodName naming

CanvasPerf results before:
INSTRUMENTATION_STATUS: basicViewGroupDraw_min=12492
INSTRUMENTATION_STATUS: recordSimpleBitmapView_min=13912

and after:
INSTRUMENTATION_STATUS: basicViewGroupDraw_min=11945
INSTRUMENTATION_STATUS: recordSimpleBitmapView_min=13318

Test: refactor, makes & boots
Change-Id: I06000df1d125e17d60c6498865be7a7638a4a13e
raphicsOperations.java
pannableStringBuilder.java
4037d51b132a85dcfe37a95f9d2d91ad23d162fd 12-Oct-2016 Aurimas Liutikas <aurimas@google.com> Fix imports in android.text package.

This change also removes trailing whitespaces.

Test: code still compiles
Change-Id: I65f79a34288d01616808fa9cd6732ae4ef0f1377
utoText.java
idiFormatter.java
tml.java
nputType.java
extLine.java
extUtils.java
ormat/DateFormat.java
ormat/DateUtils.java
ormat/Formatter.java
ormat/Time.java
ormat/TimeFormatter.java
ethod/BaseKeyListener.java
ethod/CharacterPickerDialog.java
ethod/DateKeyListener.java
ethod/DialerKeyListener.java
ethod/DigitsKeyListener.java
ethod/MetaKeyKeyListener.java
ethod/MovementMethod.java
ethod/MultiTapKeyListener.java
ethod/NumberKeyListener.java
ethod/PasswordTransformationMethod.java
ethod/QwertyKeyListener.java
ethod/ScrollingMovementMethod.java
ethod/TextKeyListener.java
ethod/TimeKeyListener.java
ethod/WordIterator.java
tyle/DrawableMarginSpan.java
tyle/IconMarginSpan.java
tyle/LeadingMarginSpan.java
tyle/LineBackgroundSpan.java
tyle/LocaleSpan.java
tyle/QuoteSpan.java
tyle/ReplacementSpan.java
tyle/TtsSpan.java
til/Linkify.java
82d1c443330785ae9561393880b92cbc44de7db2 14-Sep-2016 Keisuke Kuroyanagi <ksk@google.com> Make ellipsis START and MIDDLE grapheme cluster aware.

When text contains 2 emojis and each emoji has 2-code units,
the width array will be like [10, 0, 10, 0]. In this case,
without this CL, just the first code unit can be replaced
with the ellipsis marker. This CL makes ellipsis START and
MIDDLE grapheme cluster aware.
Note that ellipsis END is working properly even without
this CL.

Bug: 30613917

Change-Id: I38ff9793f2ea381460c50465c5470e0ad9a405b9
easuredText.java
taticLayout.java
f5af4a344e086efa87740a0154cace064465fe54 31-Aug-2016 Keisuke Kuroyanagi <ksk@google.com> Always redraw text that protrude from line bounds.

With I63af3a6ecbf92, we create RenderNode lazily, but
blocks containing contents that protrude from line top or
bottom cannot be simply lazily redrawn after edit or
scroll.
With this CL, we check if the contents protrude from line
top or bottom by comparing the text bounds with relevant
font metrics values and we always redrawn such blocks after
edit or scroll.

Bug: 27889485
Change-Id: I666da5eeb39f780c341597f347bfcba21eb34295
ynamicLayout.java
taticLayout.java
9f3958cc2ba3da1406caac64650620d226bf8562 27-Aug-2016 Siyamed Sinir <siyamed@google.com> TextLine.handleRun should throw exception for invalid index

TextLine.handleRun caused infinite loop if measureLimit is out of bounds
of start and end parameters (for Spannables). For regular String it used
to throw a similar exception in handleText. This CL verifies what is
written in ApiDoc: measureLimit should be between start and limit
inclusive.

Bug: 30985145

Change-Id: I0659e8887f7b43ed2047d08b99bf86d8df80a21c
extLine.java
28caf6a8da7b2f2513ae74bb19a9d849e52895d2 06-Aug-2016 Siyamed Sinir <siyamed@google.com> Update TextView ApiDocs.

Update/add ApiDocs for setText, BufferType, Editable.Factory and
Scannable.Factory.

Bug: 30670270
Bug: 30290798
Change-Id: I2ff1f79cfb4c0c3c955ce42326670cf266e1e404
ditable.java
pannable.java
3df24c31bbc41eabb661d642f1859b6fd5eb9660 01-Aug-2016 Andrei Stingaceanu <stg@google.com> TextView - fix ClickableSpans always triggering on touch up

* introduce GestureDetector to TextView
* completely remove link click functionality from
LinkMovementMethod (the interface does not state it
provides click functionality)
* intercept onSingleTapConfirmed and trigger onClick on the
link if it exists (simplified duplicated functionality)
* renamed a bunch of LinkMovementMethod variables because
eyes hurt

Bug: 23692690
Change-Id: Idaf3f3391328207f42521235fb5deb1a11c66aaa
ethod/LinkMovementMethod.java
83549088c643586aa6013d947ad2c21464a3878e 25-Jul-2016 Raph Levien <raph@google.com> Enforce consistent sizes for arrays in SpannableStringInternal

The grow logic in SpannableStringInternal#setSpan assumes that the
size of mSpanData is consistent with that of mSpans, in particular
that if the latter doesn't need to grow, neither does the former.
The copySpans() method didn't enforce this, creating an mSpanData
array only big enough to hold the data.

This patch documents the invariant in a comment and enforces it.

Bug: 30359314
Change-Id: Ie25db70a76836e97af8476a7f5c10cb4b976c1cf
pannableStringInternal.java
575284af7c1370bd732e3db77ff55f0b57566d91 25-Jul-2016 Raph Levien <raph@google.com> Enforce consistent sizes for arrays in SpannableStringInternal

The grow logic in SpannableStringInternal#setSpan assumes that the
size of mSpanData is consistent with that of mSpans, in particular
that if the latter doesn't need to grow, neither does the former.
The copySpans() method didn't enforce this, creating an mSpanData
array only big enough to hold the data.

This patch documents the invariant in a comment and enforces it.

Bug: 30359314
Change-Id: Ie25db70a76836e97af8476a7f5c10cb4b976c1cf
pannableStringInternal.java
c0ab2e83ac76af3aebe6d9a14595d0c10cfeec04 15-Jul-2016 Raph Levien <raph@google.com> Merge "Treat U+2695, U+2640, U+2642 as emoji characters." into nyc-mr1-dev
3c7a0a0af45e793c21036c8fdc2b67a462d4be0a 11-Jul-2016 Seigo Nonaka <nona@google.com> Treat U+2695, U+2640, U+2642 as emoji characters.

Bug: 29885295
Change-Id: If187a08574b86ab775b0a4594d21bc9e26f84e2f
(cherry picked from commit beb21afc2e3aedd17a3fbcb044a7fa44c0daf69d)
moji.java
f20ca2cb15c7197946dac2b879417767e74917f3 26-Jun-2016 Seigo Nonaka <nona@google.com> Delete gender-balanced emoji sequence by one backspace key event.

The gender-balanced emojis are made with ZWJ sequence and emoji
modifiers. For example, U+1F469 U+1F3FD U+200D U+1F4BC should be
deleted at the same time by single backsapce key event. Here, U+1F469
is WOMAN, U+1F3FD is EMOJI MODIFIER FITZPATRICK TYPE-4, U+200D is ZERO
WIDTH JOINER, U+1F4BC is BRIEFCASE.

This CL also renames the state name from STATE_BEFORE_ZWJ_EMOJI to
STATE_BEFORE_EMOJI since now all emoji can be a part of ZWJ sequence
after I572dad42ee108476962d4b3fe9f3a6019cb50098

BUG: 29728397
Change-Id: Ib114295db45c6592f1c65a0773ab236f8bf35209
(cherry picked from commit bba8d97c369f02a9d1988217324724a24842079f)
ethod/BaseKeyListener.java
beb21afc2e3aedd17a3fbcb044a7fa44c0daf69d 11-Jul-2016 Seigo Nonaka <nona@google.com> Treat U+2695, U+2640, U+2642 as emoji characters.

Bug: 29885295
Change-Id: If187a08574b86ab775b0a4594d21bc9e26f84e2f
moji.java
ca132ca6a1f577edb76311fc79252ef1e1644ca5 01-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactor WordIterator to avoid copying to internal buffers"
b08a07165fdc9ee6df40bbce94676755461ff3e0 29-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Refactor WordIterator to avoid copying to internal buffers

Previously, since the assumption was that the string is passed down
to ICU4C for the iteration to run, a window of text was copied and
maintained. But now, we can just pass an iterator to the input
CharSequence directly to ICU4J.

Bug: 21832431
Change-Id: Ife5dfdb1d90b3eda2817d4d75747b7abc34a2299
harSequenceCharacterIterator.java
ethod/WordIterator.java
fcef4a3b62a34cdf1114ee34a5cd9432fc5ffffa 30-Jun-2016 Siyamed Sinir <siyamed@google.com> Merge "Visibility fixes for text related tests."
ed09ae1fccfb1c02109a0c1428ddff52daa939d5 16-Feb-2016 Siyamed Sinir <siyamed@google.com> Visibility fixes for text related tests.

Some of the text and text layout related tests fail because of the
visibility of parameters/functions they use. This CL updates
annotations and visibility of related classes.

Bug: 29871441
Change-Id: Ia06072815261379ff839c440482d94570ec05a80
ndroidBidi.java
ynamicLayout.java
ayout.java
ackedIntVector.java
875446698c691c1ebd24126ea16d470bd8a3f77c 30-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Merge "Get failing WordIterator unit tests to pass again"
9dad5811d7232c85c07761dddd9ebd035524f955 29-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Get failing WordIterator unit tests to pass again

WordIterator is now following the pattern in java.text.BreakIterator,
throwing an IllegalArgumentException when receiving an invalid argument.
Previously, it failed inconsistently.

Also add @SmallTest annotations to the WordIterator tests.

Bug: 29868991
Change-Id: I8158f2f419c8c4467205031655c0e62cc9ef5c1c
ethod/WordIterator.java
24ae4b6d1b0932c9e8d8b9e65a22ff7bbe8f975f 29-Jun-2016 Siyamed Sinir <siyamed@google.com> Merge "Fix bidi desired width calculation"
79bf9d19f2f76cbfbd6659c9323e519deaa887c7 19-May-2016 Siyamed Sinir <siyamed@google.com> Fix bidi desired width calculation

Layout.getDesiredWidth measured text with TextDirectionHeuristics.LTR,
whereas the real calculations used the active direction heuristic set
in the TextView instance. This CL uses the same heuristics for both of
them by passing the value to Layout.getDesiredWidth function.

Bug: 28845953
Change-Id: I68d23f55fe5a86255d62e83bc62df38a047e4bca
ayout.java
c8fc16ca1c816d891885e60dc37728a13f813cc6 28-Jun-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete gender-balanced emoji sequence by one backspace key event."
bba8d97c369f02a9d1988217324724a24842079f 26-Jun-2016 Seigo Nonaka <nona@google.com> Delete gender-balanced emoji sequence by one backspace key event.

The gender-balanced emojis are made with ZWJ sequence and emoji
modifiers. For example, U+1F469 U+1F3FD U+200D U+1F4BC should be
deleted at the same time by single backsapce key event. Here, U+1F469
is WOMAN, U+1F3FD is EMOJI MODIFIER FITZPATRICK TYPE-4, U+200D is ZERO
WIDTH JOINER, U+1F4BC is BRIEFCASE.

This CL also renames the state name from STATE_BEFORE_ZWJ_EMOJI to
STATE_BEFORE_EMOJI since now all emoji can be a part of ZWJ sequence
after I572dad42ee108476962d4b3fe9f3a6019cb50098

BUG: 29728397
Change-Id: Ib114295db45c6592f1c65a0773ab236f8bf35209
ethod/BaseKeyListener.java
0745c729653eeeeb6468d4ec9f3ec81b18ff9b64 01-Jun-2016 Siyamed Sinir <siyamed@google.com> StaticLayout visual fix for maxLines

When maxLines is set on StaticLayout, the height calculation includes
the lineSpacing for the lastLine, which causes the ellipsized version
and non-ellipsized version to have different heights. With this CL:
* maxLines is always set on StaticLayout
* the correct line count for a given text is preserved, in other words a
text that would be n lines will not be cut at maxLines.
* The visual height for StaticLayout for ellipsized and non-ellipsized
cases are the same when maxLines is set.

Bug: 28988744
Bug: 18864800
Change-Id: I1e1cae31cf33d503a8cf1c942f422893efc480bb
ayout.java
taticLayout.java
3bfce33993a3aea981cf60e1a19757dea0cc2374 18-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Introduce listEllipsize() and deprecate commaEllipsize()

The commaEllipsize() method was beyond repair. It couldn't support
several needed internationalization features, and its API depended on
splitting a string and the language having only one plural form.

Bug: 24097278
Change-Id: I85217e4eadac971c58bb001b62ba386fb1297a24
extUtils.java
33fac38ba9b02e9de05a53f00a708d7d7b47d12b 20-Jun-2016 Seigo Nonaka <nona@google.com> Need break to stop unexpected fall through

STATE_LF should finish without processing next case but unexpected fall
through happens due to missing of "break".

Fortunately, this unexpected fall through doesn't cause any problems
since STATE_ODD_NUMBERED_RIS case always finishes without doing anything
when unexpected fall through happens.

Bug: 29491345
Change-Id: I23c673ccfc4a2c786fa41f0f7bacb0885896a509
ethod/BaseKeyListener.java
547b74394a07100ec443d21a85f20c064407883b 14-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Merge "Switch to standard SI prefixes for kilobyte etc"
36bd3b86a1975142a2a1ac4dfaea451a57eecd88 10-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Switch to standard SI prefixes for kilobyte etc

Previously, powers of 1024 were used in formatting human-readable
strings for file sizes, in contrast with international and industry
standards. With this change, we switch to powers of 1000, as
standardized in SI and others.

Bug: 27672362
Change-Id: I34ae16bb68a28e60b09a7c17ac3b1d5ab9ddbeea
ormat/Formatter.java
8823c85f0a98988a21bddedf1e1c3fb725258ba1 10-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Clean up TextUtils.doesNotNeedBidi()

One of the signatures of the method that used CharSequence was
unused. The other's implementation was too crude, resulting in too
many false negatives.

The new code now shares logic with BoringLayout in order to detect
potential bidi-affecting characters. The logic is intentionally
rough in order to be efficient: we still have false negatives, but
not as many as before.

Bug: 29254696
Change-Id: I106133369e93e49d7b2fe82ffc433e4556740ee8
oringLayout.java
extUtils.java
a4cbaa30e11219769d285dcf601f171d72d1dcdb 08-Jun-2016 Siyamed Sinir <siyamed@google.com> Merge \\\"Fix int overflow in SpannableStringBuilder.replace\\\" into nyc-dev am: 96c3e5504b am: 9eddf7ae8e
am: bb05c332b1

Change-Id: I3ff5cb7dbf6ceccf212d65fcb8b06eb5c087cc5e
eb4df8a82281ee9b2490eebc3c2eef8d669deb87 04-Jun-2016 Siyamed Sinir <siyamed@google.com> Fix int overflow in SpannableStringBuilder.replace

During the offset calculation for selection, SpannableStringBuilder
had an overflow while multiplying two int values. This CL uses long to
calculate the multiplication, and also checks for overflow after
casting the final result into int again.

Bug: 29108549
Change-Id: I11eff4677916701074b38bc5214730fe704707c4
pannableStringBuilder.java
36cd87d04e06fe6c4037e435c5cf36da4b1ff91a 02-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Unhide CharSequence APIs to BidiFormatter

The APIs are useful in avoiding the unnecessary creation of strings
when you have a CharSequence that's not a String.

Bug: 26979409
Change-Id: I27cd157ca53edb5f44a1e69085a1882af3cc7c6a
idiFormatter.java
5536c4fdee8684ebbb2d17af72ce94757a5e1a80 02-Jun-2016 Roozbeh Pournader <roozbeh@google.com> Use bidi heuristics correctly in BoringLayout#isBoring()

in order to determine if the text is RTL, the previous code ran
chunks of the text (in code units) through the TextDirectionHeuristic
instead of the whole text, which could result in misdetection as RTL
in various cases, or missing some cases due to RTL characters getting
split across chunks. Now we look at the whole text instead.

This also refactors the code to make it clearer to understand and
removes an unused signature for isBoring.

Bug: 27702584
Change-Id: I8d98614a0af28c0d4e61af5ab4a27a8a3ab8c9dc
oringLayout.java
a0b920f4da8d3bb6a78967de5feb92b75e719db9 31-May-2016 Roozbeh Pournader <roozbeh@google.com> Merge "Support ellipsizing LocaleHelper.getDisplayLocaleList()" into nyc-dev am: fe524c0e24 am: 5f55e2c43d
am: bbed32a63b

* commit 'bbed32a63b420126850767ae5cf2484bea11c1d4':
Support ellipsizing LocaleHelper.getDisplayLocaleList()

Change-Id: Ibead4334a7797320d6ae7c5792482416b4a7e2d0
0ad4dccf8851ba7adb5fa7b85736bd6e2cb21896 27-May-2016 Roozbeh Pournader <roozbeh@google.com> Support ellipsizing LocaleHelper.getDisplayLocaleList()

Add an extra parameter to LocaleHelper.getDisplayLocaleList()
specifying the maximum number of locales to output, as callers
probably won't need the whole list.

Bug: 28872122
Change-Id: Ief136bc1af2841e76ed4d8e65932a9a30821eae3
extUtils.java
514c5ef8d5774d8820ed1bf90fe53af1606cf106 25-May-2016 Aurimas Liutikas <aurimas@google.com> Add missing @Deprecated annotations.

Add missing @Deprecated annotations for methods with @deprecated tag
in javadoc.

Change-Id: I35b78ccb97832d86b914c21a300444ba29e33844
ormat/DateUtils.java
a8a58ffdeeb6a4a05de227a34972d99c005d2bf0 18-May-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Optimize LoadedApk

Preallocate storage lists and avoid TextUtils and its string
builder for a common code path.

Optimize list join helper to not have a check in the loop.

Bug: 28801010
Change-Id: Iafc582031f973d718252b34bcda6405a77425628
extUtils.java
23cbe85610f780134cc77dd4a54732a22ed6e86e 18-May-2016 Yohei Yukawa <yukawa@google.com> Move LocaleList to avoid layering violation.

Since LocaleList needs to depend on android.os.Parcelable, we cannot let
that class belong to "android.util" package, which causes layering
violation.

Bug: 28819696
Change-Id: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18
tyle/LocaleSpan.java
78f0d83550d70f043e1b9d35f56efa8c7572f44f 10-May-2016 Keisuke Kuroyanagi <ksk@google.com> Sum up character widths to get the last line width for ellipsis.

To properly apply ellipsis, we virtually concatenate the last line and
overflowed lines after line breaking for a paragraph.
Previously, width of the concatenated line was computed by summing up all
line's width. However, the width is wrong when there are any trailing
white spaces that can be normal white spaces by concatenating lines.
With this CL, we sum up widths of all characters in lines except the last
overflowed line.

Bug: 28599066
Change-Id: I41d828ee8eb8a702cd5096d626b307cbb3467047
taticLayout.java
10ea92aefa7051eb432383e0b56e7c44664fd560 02-May-2016 Raph Levien <raph@google.com> Make LocaleList constructor non-nullable

This commit makes the LocaleList constructor require non-null
arguments in all cases, and fixes all uses of LocaleList that could
previously pass a null to use getEmptyLocaleList() instead (which is
preferred anyway becaues it avoids an allocation.

Bug: 28460668
Change-Id: I4b8b3cfa82914412731c2b79003951c46cb2afa1
tyle/LocaleSpan.java
d608a0adcb8392892fa0bed2258b428fbbff0fc0 27-Apr-2016 Clara Bayarri <clarabayarri@google.com> Fix TextUtils#getReverse deprecated doc

Note there is no alternative method to use.

Bug: 28296055
Change-Id: I1e44c1dad6009434a92c6a53862e6f061114bc56
extUtils.java
59c9a93fc268e226495d4ee8cf7c507c2ea2c433 20-Apr-2016 Trevor Johns <trevorjohns@google.com> Merge changes from topic 'merge_docs_nyc-dev' into nyc-dev

* changes:
Remove links to createAndInitializeUser() and createUser()
Resolve merge conflicts of a5060ee to nyc-dev
3675d3cd84c446d05b3e3e97b04cf0427b2f5da6 19-Apr-2016 Seigo Nonaka <nona@google.com> Delete emojis before and after ZWJ at the same time.

Vendor may want to introduce their own ZWJ emoji sequence. To delete
them by one back space as the same behavior of Unicode emoji sequence,
use all emoji as the zwj emoji.

Bug: 28248662
Change-Id: I572dad42ee108476962d4b3fe9f3a6019cb50098
moji.java
ethod/BaseKeyListener.java
682c24e22811d4ee17ae1cd61bf255c3f7e722b7 12-Apr-2016 Trevor Johns <trevorjohns@google.com> Resolve merge conflicts of a5060ee to nyc-dev

This undoes the automerger skip which occured in
commit e740c84dc32180214a7fd157105d6c18d30408ee and
replays it as a standard (NOT -s ours) merge.

Change-Id: If5a47be26f73d6a0735c425cd66310a3e2a89086
oCopySpan.java
ormat/Time.java
9dba546d9aec4668b2b97cd15dc6fb35bc95ece6 13-Apr-2016 Siyamed Sinir <siyamed@google.com> Merge "Fix StaticLayout left/right indent" into nyc-dev
f9a0886da0bddcb7db84b46bfee0129acc8276b8 13-Apr-2016 Siyamed Sinir <siyamed@google.com> Fix StaticLayout left/right indent

Because of a min/max issue, while processing each paragraph StaticLayout
would trim the left/right indent arrays incorrectly.

Bug: 28090810
Change-Id: Ib2b9b48963861e0952bd45a079179e3cca86ffcf
taticLayout.java
4d19160ef18779502cf0559f9cc0db184f7fbc21 25-Mar-2016 Seigo Nonaka <nona@google.com> Delete CR LF at the same time with one backspace key.

Bug: 27847705
Change-Id: I9ad640f2586adc705a854fac69a77f940be1dc25
ethod/BaseKeyListener.java
07e6c237d3f19b98bbec237892a785fd3895368a 04-Apr-2016 Raph Levien <raph@google.com> Apply correct bottom padding to layouts

The returned descender value for BoringLayout and StaticLayout should
be equal to the font's "bottom" metric in the includePadding case.
Previously, the calculation incorrectly included an addition
mBottomPadding value in some cases (which was an attempt to work
around the case where maxLines was set on TextView but not the
corresponding StaticLayout, no longer the case).

Bug: 27901763
Change-Id: I008c5974b979087725a9bb9104e4771b0caac01c
oringLayout.java
taticLayout.java
70f660f2d6220b10ddb5e32d665c38e30f0ab35c 29-Mar-2016 Siyamed Sinir <siyamed@google.com> Reset FontMetrics at each new measurement in BoringLayout

Reset FontMetrics object used in BoringLayout.isBoring to get updated
and correct FontMetrics as a result of measurement.

Bug: 26704088
Change-Id: If77b0edba8dc4b5b1738a802c5f49e112e47b4f2
oringLayout.java
3b262793a0ae15b96ed270eef8f41ac781740b1c 29-Mar-2016 Jungshik Shin <jungshik@google.com> Merge "Load hyphenator for 22 new languages" into nyc-dev
31445528c0a0af2429c69be758a3a9a11921cdf3 29-Mar-2016 Jungshik Shin <jungshik@google.com> Load hyphenator for 22 new languages

In addition, all English locales other than those explicitly mapped
to en-US are mapped to en-GB.

BUG: 26405413
Change-Id: Ie5b77af164c95a6ed5639da5752ddf21f92181bc
yphenator.java
1e632ba426ac3e07b82299505aa32495ebb3c709 28-Mar-2016 Keisuke Kuroyanagi <ksk@google.com> Merge "Improve selection handle behavior for bidi text." into nyc-dev
6eccafd3394f977d44c329dc75eb12739a818f4b 03-Mar-2016 Siyamed Sinir <siyamed@google.com> New Linkify.addLinks function with set of known schemes

A new addLinks function is added that accepts a default scheme and a
set of known schemes. Default scheme is applied whenever the link found
does not start with one of the given known schemes.

Moreover, previously JavaDoc for addLinks functions with a single scheme
parameter described that the scheme attribute will be prepended to the
links that do not have 'a' scheme. The code actually checks if the link
starts with the given scheme and prepends if not. JavaDoc updated
accordingly.

Bug: 26985901
Change-Id: I94ea81dcf83ba7a6b6cd47c10fe8fb277964eb15
til/Linkify.java
f0bb87b7c40efeeaee58d4c7b767961c9800463e 08-Feb-2016 Keisuke Kuroyanagi <ksk@google.com> Improve selection handle behavior for bidi text.

A point on a direction boundary can be mapped to two offset and
one offset on a direction boundary can be mapped to two points.
Previously, paragraph's primary direction is always used for deciding
offset and coordinates; thus, handle movement around a direction
boundary is often nonintuitive.

With this CL:
1. For selection end handle, direction of character at offset - 1 is
used for deciding handle shape and position.
2. For getting offset from coordinates, previous offset is used to
minimize the offset delta and primary .
3. For getting coordinates form offset, new logic chooses primary or
secondary horizontal coordinate depending on the current run
direction and paragraph direction.
4. When a handle passes another one because it passes a direction
boundary, new logic keeps the handle at the run boundary instead of
minimizing the selection.

Bug: 19199637
Bug: 21480356
Bug: 21649994


Change-Id: I2a7e87ad08416f4bd01a5f68e006240f77d9036b
ayout.java
17db42cbac74885dc3d2d08174b816b168b47d48 17-Mar-2016 Keisuke Kuroyanagi <ksk@google.com> Merge "Fix: setIntegerPart(long) doesn't set ARG_INTEGER_PART." into nyc-dev
3cf8208a62eb493cbd83d7b9d1f155eb174fcee0 16-Mar-2016 Roozbeh Pournader <roozbeh@google.com> Clean up BoringLayout#isBoring() a little

No functional change. Just some renames and clarifications.

Bug: 23641693
Bug: 27702584
Change-Id: I14efe290a27c695ab79bbb18f9f069c8a2d3ffd6
oringLayout.java
1c68853fbbd84fc62c84b4d00d1ce245cf0fe28a 16-Mar-2016 Keisuke Kuroyanagi <ksk@google.com> Fix: setIntegerPart(long) doesn't set ARG_INTEGER_PART.

Bug: 27689119
Change-Id: I749a1698cda552a0841d6905b81486bf2d74a296
tyle/TtsSpan.java
217a86c709591144d25ac25cb8746efb6d0224bf 13-Mar-2016 Roozbeh Pournader <roozbeh@google.com> Remove Basque hyphenation patterns

Change-Id: Ib59de7c96fe19da9534fe65c3d553dc7c5399a1f
yphenator.java
84d0f8775b2d19597e2a2a29dedcdf93ca613d1e 03-Mar-2016 Siyamed Sinir <siyamed@google.com> Merge "Email address autolink regex updates." into nyc-dev
23a67678e3848e2465518769236139e6cafac2ee 27-Feb-2016 Seigo Nonaka <nona@google.com> Improve forward delete key handling.

Forward delete key now deletes characters until the next grapheme
cluster boundary.

Bug: 25737208
Bug: 27035430
Change-Id: Ie2fb510fefa115657cc48063be5319b1eecb30b9
ethod/BaseKeyListener.java
06f0e41ebdaa356224da12280fccd454ca07cf38 26-Feb-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Remove unused field

Remove an unused field in BoringLayout. This has also the positive
side effect of allowing static initialization in the boot image.

Bug: 27248115
Change-Id: I9d6beec5f5e045ef899e8979ece96e0239f82076
oringLayout.java
0716d5f499949cb131a9a06ac022b26ee8dbb413 26-Feb-2016 Siyamed Sinir <siyamed@google.com> Email address autolink regex updates.

This CL updates the email address pattern with:
* Local-part should be max 64 characters, and domain should be max 255
characters (it was the opposite before).
* Labels in the domain name should be at most 63 characters.
* Support non-ascii unicode characters.
* Add tests for email address pattern.

Bug:9585450
Change-Id: I983f269904ef014ef625417dd08b6509084e6879
til/Linkify.java
2cecbb24088afdc14e234e871e59bf9a47d1887d 25-Feb-2016 Ben Kwa <kenobi@google.com> Merge "Return true when keystrokes are handled in BaseKeyListener." into nyc-dev
b23ce29b8f2dd243b006a5211fe4b9bfc22ba08c 25-Feb-2016 Ben Kwa <kenobi@google.com> Return true when keystrokes are handled in BaseKeyListener.

BUG=27340791

Change-Id: If9a61c19eea2c1c1833f7ec45c8a474048470aaa
ethod/BaseKeyListener.java
ccb4b5c0782d28cc9d92c3a6f1fc80c0f89d835d 24-Feb-2016 Raph Levien <raph@google.com> Update data for emoji modifier bases to Unicode 9

This patch updates the set of emoji modifier bases to Unicode 9,
using data from:
http://www.unicode.org/Public/emoji/3.0/emoji-data.txt

Bug: 27039487
Change-Id: I94c09113753c0595e72f403ba01b3e7fa78c5627
moji.java
c7ff969b47842918330e96fa1ce6df2cff2bf27c 10-Feb-2016 Siyamed Sinir <siyamed@google.com> JavaDoc for ReplacementSpan getSize & draw functions.

Added JavaDoc for ReplacementSpan’s getSize and draw functions.

Bug: 20616288
Change-Id: I033ae82b5de672c508d8cbcd69e942c236b2e674
tyle/ReplacementSpan.java
ff3bfd5a79a95dcfccd1b8ad6c08c715ce6fa0e3 21-Jan-2016 Seigo Nonaka <nona@google.com> Improve backspace for emoji and variation sequences.

This CL makes backspace handling aware of variation selector, combining
enclosing keycaps, zero width joiner, regional indicator symbols and
emoji modifiers.

BUG: 25737208

Change-Id: I740578bfee955cc623e2831778e5b7ec4b8cb627
moji.java
ethod/BaseKeyListener.java
afe3cd1aaf71e01b78097be57bf5a2aae266be07 16-Feb-2016 Siyamed Sinir <siyamed@google.com> Merge "Ellipsized and Non-ellipsized baselines should be same." into nyc-dev
715589fb46967ce8aff4406ca7bfc58ad3e3b6ed 13-Feb-2016 Siyamed Sinir <siyamed@google.com> Ellipsized and Non-ellipsized baselines should be same.

This CL make sure that ellipsized and non-ellipsized text have the
same baseline.
- TextView did not set the maxLines for StaticLayout when ellipsized
is false. This resulted in height and baseline calculation
discrepancies between ellipsized and non-ellipsized TextViews using
StaticLayout.
- For single line TextViews when a text is not ellipsized
BoringLayout is used, and when text is ellipsized StaticLayout is
used. Because of the bottom padding added to the last line of
StaticLayout, those two did not have the same baseline.

Bug: 18864800
Change-Id: I5dbc48a6c7f0f4ac4c693d5c95f0a99b989e07f4
oringLayout.java
43bb0a06434425555a869075f8f27dfc64548de0 12-Feb-2016 Daniel U <uda@google.com> Merge "Adopt HTML/CSS color values in fromHtml()" into nyc-dev
7004c4407f0c76bd41d19cd6a2eb867437228ee9 11-Feb-2016 Raph Levien <raph@google.com> Merge "Allow null string to BidiFormatter#unicodeWrap" into nyc-dev
1eab97ac8edec59e3c0453af7c56e1a751e3fa85 03-Feb-2016 Daniel U <uda@google.com> Adopt HTML/CSS color values in fromHtml()

- "green", "gray/grey", "lightgray/lightgrey", and
"darkgray/darkgrey" have different values in HTML/CSS.

- Adopt HTML/CSS color values according to user specified
option flag.

- Remove support to "@color" notation as it is not standard
HTML/CSS.

- Replace SPAN_MARK_MARK with SPAN_INCLUSIVE_EXCLUSIVE
consistency.

BUG:26950749
Change-Id: I5b33282368042f74f1b4768e096aae3e5bf45de6
tml.java
4a70f09e39ac7c5f57b0f6dd44475641c68afafd 29-Jan-2016 Daniel U <uda@google.com> Tweak toHtml() paragraph conversion behavior

For mode TO_HTML_PARAGRAPH_LINES_INDIVIDUAL:
1) Empty line outputs <br> instead of <p><br></p>

2) A <ul> element is closed if it is followed by a <br>

3) Explicit zero vertical margin is applied to <ul> instead of <li>'s

4) More deterministic way to encode AlignmentSpans: only spans with
SPAN_PARAGRAPH flag is used. If multiple spans exist, the last one
(which is added most recently) is used.

BUG: 26224878
Change-Id: I86a2aeced9965ae465daac1ace64e5e41cf45caf
tml.java
b68d147b86ef242012161e89ebaea84baee14f11 11-Feb-2016 Raph Levien <raph@google.com> Allow null string to BidiFormatter#unicodeWrap

The BidiFormatter#unicodeWrap() methods allow null string, but the
toString() call on the result in the refactored code was crashing.
Also adds @Nullable annotations.

Bug: 27124532
Change-Id: I25922d104587af4a850c3640987af9315c3d3bde
idiFormatter.java
8b36c0bbd1503c61c111feac939193c47f812190 01-Feb-2016 Daniel U <uda@google.com> Handle <span>, <ul>, and <li> tags in fromHtml()

The vertical spacing of <ul> and <li> are determined by the
FROM_HTML_SEPARATOR_* flags. Foreground color, background color,
and text-decoration CSS attributes are parsed and converted into
the corresponding spans.

Change-Id: I93b232de15753ae510392cbacf45e7453d1ae067
tml.java
cf1fa60331b6ce935788c06fcdfd09817e104c8c 21-Jan-2016 Daniel U <uda@google.com> Allow different paragraph breaks in fromHtml()

- Separate block-level elements with different numbers of newline
characters according to the user specified option flag.

- Parse the ALIGN attribute and the CSS TEXT-ALIGN property to handle text
alignment.

- Rename "header" to the correct term "heading"

Change-Id: I446fa97155e761623a1da6632a0d872a5e47e8af
tml.java
fee44846376c212114223fc4259382921e6dca7a 05-Feb-2016 Roozbeh Pournader <roozbeh@google.com> Various LocaleList cleanups

- Remove the LocaleList#getPrimary() API. It had become confusing
after locale negotiation was completely implemented. For example,
it could create the confusion that calling getPrimary() on the
default locale list would provide the default locale, etc.
- Use the adjusted locale list from LocaleList.getAdjustedDefault()
in Paints created with no locale list provided.
- Change LocaleList#get() to treat out of bound indexes from both
negative indexes and too large indexes the same way.

Bug: 26984092
Bug: 26193251
Bug: 26834387
Change-Id: I75f77aea6b75e38793ed8477e5e5a4420d5e6d85
tyle/LocaleSpan.java
2f35c6405e19512a36947fe9bd784b9e6b06f790 04-Feb-2016 Roozbeh Pournader <roozbeh@google.com> Add CharSequence interfaces for BidiFormatter

The previous code just supported strings, but there were requests for
using BidiFormatter while keeping the spans.

Bug: 26967041
Change-Id: If2a1eeaf2cf1eedff3a83b79a105ea79ed1b85c1
idiFormatter.java
ca124ab1e25b4709c46de50ae8536d4a9338c8cb 23-Dec-2015 Daniel U <uda@google.com> Encode BulletSpan in toHtml() conversion

Changes in toHtml() conversion with TO_HTML_PARAGRAPH_LINES_INDIVIDUAL:

- Wrap each paragraph inside a block-level element
Each paragraph delimited by '\n' is now wrapped individually inside either
a <p> or a <li> block to allow per-paragraph formatting.

- Wrap paragraphs covered by BulletSpans as <li> instead of <p> blocks

- Encode text alignment at paragraph level
Instead of creating <div> blocks outside of the block quote level.

- Encode AlignmentSpan as CSS style instead of the ALIGN attribute
The ALIGN attribute is obsolete.

Change-Id: I3a8b315224b762af99eda69cb19f5cf6b3f05dac
tml.java
b138e2877823a0e9f9d834059a64d4035556562b 23-Dec-2015 Daniel U <uda@google.com> Enhance support to text size spans in toHtml()

Convert AbsoluteSizeSpan to <span> with CSS font-size property with CSS
px as the unit of measurement. Sizes measured in Android px are converted
to dip, since there is no CSS unit which conveys the idea of a device
pixel.

Add support to RelativeSizeSpan, which converts to <span> with CSS
font-size property with em as the unit of measurement.

Change-Id: I9104cc5f9b00ab1a31929565dc49e0026466cc75
tml.java
5c02d7374f36672e8c3bab8c7cf519ed4a4d8ead 22-Dec-2015 Daniel U <uda@google.com> Support more CharacterStyles in toHtml() conversion

- Add support to convert BackgroundColorSpan
- Convert StrikethroughSpan to <span> with CSS styling instead of <strike>
- Convert ForegroundColorSpan to <span> with CSS styling instead of <font>

Change-Id: I05ff6b97534df9ee586a552c7e6435aabca152ac
tml.java
2102de9e1f7444001a5408856c7cf47df050c4e2 17-Dec-2015 Daniel U <uda@google.com> Overload toHtml() & fromHtml() to accept option flags

Overload the methods to take int option flags indicating the conversion
behavior. This guards against large disruptions in legacy applications.

Change-Id: I0f47180bbb78884b67aa200fe5156e903eeaa6f6
tml.java
3a789f657b98fe82bf8febb3a0be9f6d616ce81d 25-Jan-2016 Siyamed Sinir <siyamed@google.com> SpannableStringBuilder.getSpans returns array with null values.

This CL fixes the case where SpannableStringBuilder.getSpans call
forgot to check the case where sort is false, and the span priority
is not set.

Bug: 26761571

Change-Id: I3a548b9c01768e6977a0ff15d6ecb8ca9ec3c075
pannableStringBuilder.java
92b9747f1c03297e5f9b4afd2b4703b83dc7c105 21-Jan-2016 Siyamed Sinir <siyamed@google.com> Merge "Sort the result of SpannableStringBuilder.getSpans"
fa05ba0b0d39fae1d2cb3d98fbee0aef6a9fed88 12-Jan-2016 Siyamed Sinir <siyamed@google.com> Sort the result of SpannableStringBuilder.getSpans

SpannableStringBuilder used to return the result of getSpans in the
order of start indices because of the interval tree it uses. However,
style spans has to be applied in the order of insertion to get
predictable results. Sorted the results of getSpans ordered first by
priority flag and then by insertion time. Moreover improved the
performance of SpannableStringInternal copy constructor.

Bug: 26240132
Change-Id: I0b0fa7bb30a3bd9ca37dedca66d8993718586027
ayout.java
pannableStringBuilder.java
pannableStringInternal.java
c38b51953921c17181fbe334cdaa95f188bfdb14 15-Jan-2016 Yohei Yukawa <yukawa@google.com> Replace Locale with LocaleList in LocaleSpan.

This is a straightforward upgrading of LocaleSpan.

LocaleSpan was designed to be a mechanism to override text locale only
in a certain substring. Since now text locale supports multiple locales
with LocaleList, it should make sense to let LocaleSpan have the ability
to have multiple locales with LocaleList.

This CL also addresses an existing issue that LocaleSpan maintained only
Language/Country/Variant tags. Now Locale data associated with a
LocaleSpan is guaranteed to be preserved as long as each of them can be
created from a BCP 47 language tag with Locale#forLanguageTag(String).

Bug: 26567158
Change-Id: Ib754796d399cd00f9d02005df88874a5cd5c7642
tyle/LocaleSpan.java
60fbc8e3bbe55e8be655418cc8111354e17f6ea7 14-Jan-2016 Yohei Yukawa <yukawa@google.com> Introduce SuggestionSpan#getLocaleObject().

This is a series of CLs to promote Java Locale object as a primary data
object to represent locale information in Android APIs.

With this CL, developers can get Locale information from SuggestionSpan
without semantically losing the original data. Possible use cases would
be:
- Emoji subtag (CLDR Ticket #9063)
- Stable and reliable 3-letter country codes handling
- Custom attributes based on private extensions.

Note that this CL does not change the current behavior of
SuggestionSpan#getLocale() as is, even if it is created with a malformed
Locale object:

new SuggestionSpan(new Locale(" a ", " b c ", " e"), new String[0], 0)
.getLocale() -> " a b c e".

Bug: 22858221
Change-Id: I96dfd4f819a236ee2e6dbd3e12903d1214223cb0
tyle/SuggestionSpan.java
e53e428a7efd624459961da3f932b408f896453b 13-Jan-2016 Raph Levien <raph@google.com> resolve merge conflicts of 957bdc56c5 to master.

Change-Id: I4c8749f92a1fa39bf0d08e10155d9e68c87401c0
c08d43c4d79392fa0e229b7e6fc4b4892074bc75 13-Jan-2016 Raph Levien <raph@google.com> Merge "Fix measurement to respect grapheme and span boundaries" into mnc-dr1.5-dev am: 36c5ab3542 am: 50c22adc25
am: 243efe13a4

* commit '243efe13a44faf3617e2df409fa8f4bd30078a5d':
Fix measurement to respect grapheme and span boundaries
9f2c939730730e76afc46e891b82499b499503e1 12-Jan-2016 Raph Levien <raph@google.com> Merge changes from topic 'grapheme-dr1.5' into mnc-dr1.5-dev

* changes:
Respect grapheme clusters in Layout#getOffsetForHorizontal.
Fix: Cursor can be at an invalid offset in EditText.
5bff01d72f2a49add74dd36c8d1ed5038611f20b 08-Jan-2016 Keisuke Kuroyanagi <ksk@google.com> Respect grapheme clusters in Layout#getOffsetForHorizontal.

TextUtils#getOffsetAfter was used for getting the next
offset in Layout#getOffsetForHorizontal. However, this
method doesn't treat grapheme clusters properly.
Changed to use TextLine#getOffsetToLeftRightOf instead of
TextUtils#getOffsetAfter.

Bug: 25375561
Change-Id: I96c9e6e5da65adfb5266446ecab852c52628dbb5
ayout.java
720edf95db6c908f87dbbb33c6bde67aedb36899 27-Aug-2015 Keisuke Kuroyanagi <ksk@google.com> Fix: Cursor can be at an invalid offset in EditText.

"getLineEnd(line) - 1" is used as the return value when the
"horiz" is beyond the line end for multiple line text.
In this case, the returned value can point an invalid
offset like the middle point of a surrogate pair.

Bug: 23069901
Change-Id: I1afef7205a15079a42bb0018df73f70fe9ada862
(cherry picked from commit 00ad16d1cd24b788262ab4f62935e720a392da6d)
ayout.java
909c7bca570b6f50650d0872e2037389b29252e3 01-Dec-2015 Raph Levien <raph@google.com> Fix measurement to respect grapheme and span boundaries

When measuring in TextLine (important for cursor positioning), the
substring measured must neither be too short (it can't just be the
substring up to the measure limit, but must include additional
characters if they form a ligature) nor too long (it can't extend
beyond the end of the CharacterStyle span, otherwise the measurement
fails to account for the fact that the CharacterStyle span boundary
breaks the ligature). This patch gets it just right.

Bug: 25375561
Change-Id: I36e1c4bdc66424d3b611cf54031756cf54cf3fec
extLine.java
3463c04b515426b74c5a92cb8de7d657b7c255c0 06-Jan-2016 Siyamed Sinir <siyamed@google.com> Fix SpannableStringBuilder.replace() exception.

When SpannableStringBuilder.replace is called with a source text that
contains a span with SPAN_PARAGRAPH flag, the code tries to retain the
spans. However when the paragraph boundary constraint is not satisfied,
setSpan method throws an exception. Updated the rule as: if the source
text has a span with SPAN_PARAGRAPH flag check if it can be copied into
the target. If not, discard the span. Also updated the JavaDoc for
Spanned and Editable.

Bug: 22521443
Change-Id: Ie8541e00bfdf5b8b0115ad7b26cb9f83a6a3ee55
ditable.java
pannableStringBuilder.java
panned.java
6f80c44651e1e84f9a0a51604538365e8676d305 07-Jan-2016 Keisuke Kuroyanagi <ksk@google.com> Merge "Fix: TextView cannot be scrolled."
cb4a2bb5de47f1646b4e3c8cb9384ab7afe7e11b 06-Jan-2016 Keisuke Kuroyanagi <ksk@google.com> Fix: TextView cannot be scrolled.

scrollTo in Touch#onTouchEvent was wrongly removed in
I1b29a65be3d321ac while moving mouse text selection logic
added in Iab264bb954b.

Bug: 26409193

Change-Id: Ibb0b13be9492d658785f2ac72be383e634ad96f8
ethod/Touch.java
840385c9f6a2805d6f54f08f3592d80facdf5b3d 19-Nov-2015 Siyamed Sinir <siyamed@google.com> New regular expression to autolink URLs

Introduced a new regular expression to autolink URLs. Previous regular
expression used the protocol as an optional rule. The new expression
applies separate rules for strings that do not start with a known
protocol and strings that do start with a known protocol.

- In order to reuse previous regular expression definitions for
different parts of a URL, created constants for different parts of
WEB_URL expression.
- Separated the test cases for WEB_URL in order to remove the suppress
command and make them running again.
- Fixed failing tests for punycode urls, which were causing existing
tests to fail.
- Introduced new a regular expression for URL matching.
- Changed the protocol rule to be case insensitive.
- Updated IANA TLDs.
- Added tests for the new regular expression.
- Added tests for Linkify.
- Bug 9622849 is partially fixed.

Bug: 25727599
Bug: 9622849
Bug: 24500693
Bug: 23189367
Bug: 24543148

Change-Id: Ifd62455d342ca7adb22996246ff652e1d5944bec
til/Linkify.java
a1c0a82ba677d2aa6f5bb98d31588e0ab96c1107 12-Dec-2015 Roozbeh Pournader <roozbeh@google.com> Load Portuguese and German hyphenation in Hyphenator

This also extends the fallback locale matching algorithm to consider
language+variant before just the language, so asking for "de-AT-1901"
would result in trying "de-1901" before trying "de".

Bug: 26169902
Change-Id: I55e5a73e7ac730d0bc14204126cbb3cc6ce0e9f1
yphenator.java
0c5b33eb26c22d68c0497e5a7c192acb6b92494f 11-Dec-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Switch WordIterator's BreakIterator to ICU4J"
108c9604e3a418f9b0895599e3468d58869d4af8 11-Dec-2015 Roozbeh Pournader <roozbeh@google.com> Switch WordIterator's BreakIterator to ICU4J

The java.text results are different from the ICU4J's results when
non-BMP characters are present, and the ICU4J's results appear to be
more correct. See also bug 26144875.

Bug: 25993844
Change-Id: Iec2e48008b2ce2147260ed3874e90a51ecf94a35
ethod/WordIterator.java
97af673e1f2e33a3cc48a2ab7816bbf082a2e9f4 05-Dec-2015 Keisuke Kuroyanagi <ksk@google.com> Move mouse selection handling logic to Editor.

- Remove mouse selection related logic from
ArrowKeyMovementMethod and Touch.
- Extend drag accelerator to support character based
selection by dragging and use it for mouse drag selection.
- Enable word based drag accelerator even if the clicked
position is not on a word.
- Disable y-coordinate adjustment for word based drag
accelerator when the user is using a mouse.

Bug: 19544351

Change-Id: I1b29a65be3d321ac472f8c5b70ab6fee4e895964
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
568f4de11a87308cbcb888083f02818a8290a7d7 03-Dec-2015 Neil Fuller <nfuller@google.com> Merge "Fix @code escapes"
c7dcec43d6f44dcc751b3c0d6baebdaa4f935371 02-Dec-2015 Roozbeh Pournader <roozbeh@google.com> Make Hyphenator load Spanish hyphenation patterns

The pattern files themselves are added to the
external/hyphenation-patterns repo.

Change-Id: Icf37191f1217b7869f49f8ea63174341662caacf
yphenator.java
71fbb81b14958b80fe55738607740c6630e4e9da 30-Nov-2015 Neil Fuller <nfuller@google.com> Fix @code escapes

The body of {@code} must not be HTML escaped. This is one of
several changes that fix the source in conjunction with a
doclava fix.

Bug: 25757239
Change-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881
ormat/Time.java
ead6ba3a639e2737e1f39475a497bf4613723ebd 27-Oct-2015 Keisuke Kuroyanagi <ksk@google.com> Stop making a reversed selection with mice.

Bug: 24889605
Bug: 24475013
Change-Id: I6d39e050656dc28e523fab862c84054169e6300b
ethod/ArrowKeyMovementMethod.java
742bd40328a18849da71a3331d2f328341927a29 27-Oct-2015 Keisuke Kuroyanagi <ksk@google.com> Merge "Fix: Last char can be excluded from mouse selection."
ca9dbf596df379c5e280235b7a88011b2197f982 17-Oct-2015 Roozbeh Pournader <roozbeh@google.com> am ebdf60e7: am 0221328c: am b3538082: am 5362f273: Merge "Fix line height problem with inline images in StaticLayout." into mnc-dr-dev

* commit 'ebdf60e7c800b2ccda01887a304ddc0edce0361d':
Fix line height problem with inline images in StaticLayout.
431e506b53e59b21a7d18bf46476b8c1528fabf1 16-Oct-2015 Roozbeh Pournader <roozbeh@google.com> Fix line height problem with inline images in StaticLayout.

Previously, paragraphs with ImageSpans in their middle would continue to
carry the height of the image into the line height of next lines. This was
a regression from L.

The bug was due to StaticLayout's out() method almost always
modifying the value of its parameter "fm", although that was only
intended when there were LineHeightSpans in the text. The method
generate() was assuming that it can restore fmTop etc to metrics of
the current span by setting them from "fm" after out() was run, while
"fm" was modified by out() and its original values was lost!

The fix makes sure to set chooseHt back to null if there were no
LineHeightSpans, so out() would not modify "fm" unless necessary.

AOSP bug: https://code.google.com/p/android/issues/detail?id=188042
Bug: 24548073

Change-Id: I0d00af384c35a9d863377972318da9db7668118f
taticLayout.java
63aa02e47fa0fdd877b9fde7f1f6eda75b645f92 15-Oct-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Load binary hyphen data files" into mnc-dr-dev
35e026929b10bf05c4c78fce6f05d7569972c5cb 01-Sep-2015 Raph Levien <raph@google.com> Load binary hyphen data files

Support for loading the pre-compiled binary format for hyphenation
patterns.

Bug: 21562869
Bug: 21826930
Bug: 24570591
Change-Id: Iaeaa9c9ac9dac236af6b0d7894c2e2396bc8447d
(cherry picked from commit 091dba2de1e5fa7d4db9f8ccbf1f86e5825d0f52)
yphenator.java
taticLayout.java
0453112de6663e4711f50f1235bca92c39be4041 08-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Make Hyphenator#get() return an object.

Previously, a native pointer was returned. After this change, callers
should call getNativePtr() if they want to get the native pointer instead.

Bug: 21492297
Bug: 24570591
Change-Id: I745bd88e6e8c86078fffb07f90f8d8f24215410c
(cherry picked from commit e7eac6f540b09892172edd5b584605ea90f5a1ba)
yphenator.java
taticLayout.java
45a60d1a431065c66c92f0b11c1eaf03613a4dd6 08-Oct-2015 Keisuke Kuroyanagi <ksk@google.com> Fix: Last char can be excluded from mouse selection.

When a mouse is used, isTouchSelecting for ACTION_UP always
returns false with current implementation because all
DragState spans have been removed in Touch#onTouchEvent.

Change-Id: Ie27a2bb860e9ddeb71dafff361c734a7c727102d
ethod/ArrowKeyMovementMethod.java
44e8d60f53ebeb9734395b041f20cd67dbcf287f 06-Oct-2015 John Reck <jreck@google.com> Super-fast getLineWidth for BL

Bug: 24678704
Change-Id: I952964f450d19b1e127753d00833eb7b34473bba
oringLayout.java
091dba2de1e5fa7d4db9f8ccbf1f86e5825d0f52 01-Sep-2015 Raph Levien <raph@google.com> Load binary hyphen data files

Support for loading the pre-compiled binary format for hyphenation
patterns.

Bug: 21562869
Bug: 21826930
Change-Id: Iaeaa9c9ac9dac236af6b0d7894c2e2396bc8447d
yphenator.java
taticLayout.java
9f18132aae6b6a1ab11192df961aa6aae102af96 28-Aug-2015 Keisuke Kuroyanagi <ksk@google.com> Merge "Fix: Cursor can be at an invalid offset in EditText."
00ad16d1cd24b788262ab4f62935e720a392da6d 27-Aug-2015 Keisuke Kuroyanagi <ksk@google.com> Fix: Cursor can be at an invalid offset in EditText.

"getLineEnd(line) - 1" is used as the return value when the
"horiz" is beyond the line end for multiple line text.
In this case, the returned value can point an invalid
offset like the middle point of a surrogate pair.

Bug: 23069901
Change-Id: I1afef7205a15079a42bb0018df73f70fe9ada862
ayout.java
4bae2038cd07daae42d1f4cfeb904897d39af06e 21-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Cleanup android.text.TextUtils a little."
4059d7dbfadab1b127dc93d0d4c175dc585445d4 18-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Update tests and support negative values in formatBytes().

This updates the tests to match the older commit
f723017481a247b4aa842937c3983b7d7d8f75fd and also adds support for
negative values.

Bug: 23191381
Bug: 11237727
Change-Id: Ib9a1f10031b730ee460658949b388c779cefa041
ormat/Formatter.java
3efda95072831c4f0a03762ff4ff10c49a265a5f 11-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Cleanup android.text.TextUtils a little.

- Clarify that getTrimmedLength() only considers ASCII control
characters as control characters.

- Deprecate getReverse() instead of trying to fix it, as it's really
not meaningful for internationalized text.

- Support non-BMP characters in isDigitsOnly().

Change-Id: I947c449b48c252ecc7f7299145f6f8fbad86004f
extUtils.java
692adf6ae65b099ed6713ef5fc1a3ba7a0650c71 13-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Fix unintentional NPE in SpannableStringBuilder."
cd217b8ace608112b47b20a61866f65b2ac13ce6 12-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Fix unintentional NPE in SpannableStringBuilder.

Previously, when getSpans() was called with a null parameter, an
unintentional NullPointerException would be thrown.

Now, we explicitly return an empty array of Objects.

Bug: 19805521
Change-Id: I52f3ae08c2bcf62f6a4d0c01f0fe08ad1134abb8
pannableStringBuilder.java
5e9ed365ade5b0e24c2f6bd61f6dc36fb0f66c0f 12-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Support strikethrough text in Html.fromHtml().

All the three tags, <del>, <s>, and <strike> are now converted to
strikethrough text.

Bug: 21025743
Change-Id: I62dc9793223e266f6e2181169766fde8be0e2aa7
tml.java
f723017481a247b4aa842937c3983b7d7d8f75fd 11-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Make FormatBytes() not use decimal points for size <= 900.

Previously, values like 0 were being formatted like "0.00 B".

Bug: 11237727
Change-Id: Ia90ae0a2cde9fa5993fa9b5b131f38b56f9dc34a
ormat/Formatter.java
1cc2acf7faca0edcfe541160b9115229122d16ba 11-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Use Character.codePointAt().

We were mistakenly using CharSequence#codePointAt().

Change-Id: Id655fd4993f70140cde54ea8e5b4d39111402046
extUtils.java
a93880ee771692f63b711aec2905050b3b6e8a41 11-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Support non-BMP chars in TextUtils.isGraphic(CharSequence).

Also deprecate TextUtils.isGraphic(char), since one-code-unit APIS
should not be used for anything in the modern Unicode era.

Bug: 7381642
Change-Id: If4dc573fe5ac870152374ded64fc83594e8dd37e
extUtils.java
c42363ad309d523d65fe8b66d16786a1d372805e 10-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Avoid creating unnecessary builder objects in BidiFormatter.

Previously, BidiFormatter.getInstance() created an unnecessary
pass-through builder object, which was used to return a static
already existing BidiFormatter.

Now, we just return the same static BidiFormatter, without going
through a builder, so we can save some extra allocations.

Bug: 10022222

Change-Id: Ibcb6aac1c1e16d9ec00e93824fa063f8dccdf8cb
idiFormatter.java
feaa7c273435c7913e104b9e10d6900ca5f541e4 10-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Remove TextUtils.join(Iterable<CharSequence>)."
707d3631749486666d5a35598680a5c11b4ec4d9 10-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Make Hyphenator#get() return an object."
085419b1ec6ff4557613f4ab6277dcee4b605fc7 10-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Remove TextUtils.join(Iterable<CharSequence>).

The method was deprecated and had only one caller, which is being
replaced with an inline copy of this at the same time.

Bug: 6823087
Change-Id: I7c5b9840ba50c1a9f167102966de63ef1040ab88
extUtils.java
bd87e94100fdd68f8c6d5ddb9efdc3db5b557a52 08-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Fix and deprecate TextUtils.join(Iterable<CharSequence>).

There seems to be only one caller of this signature, and even that is
in a deprecated method, so it should be safe to deprecate this.

The new implementation uses ICU for the format string and so removes
the need for a localized string, although it's still a hack and is
probably slower. It's added here since we may actually want to clean
it up later and use it for an improved simple list formatter.

Bug: 6823087
Change-Id: I2aa1af9b170e41da840d9d7bc663df06fb96d136
extUtils.java
e7eac6f540b09892172edd5b584605ea90f5a1ba 08-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Make Hyphenator#get() return an object.

Previously, a native pointer was returned. After this change, callers
should call getNativePtr() if they want to get the native pointer instead.

Bug: 21492297
Change-Id: I745bd88e6e8c86078fffb07f90f8d8f24215410c
yphenator.java
taticLayout.java
1e872ec0d699e87b52c4cc20b8df841d4d206513 07-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Support all RTL scripts in getLayoutDirectionFromLocale()."
463b48203ab777e0b81632c480de3d1d6f608aa4 07-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Support all RTL scripts in getLayoutDirectionFromLocale().

Previously, only the languages written in Arabic and Hebrew were
considered right-to-left. Now, ICU is used to return the direction
of the language, which not only support other right-to-left scripts
(such as Thaana), but also has better logic to determine the
direction of the locale and uses caching to improve the speed.

Bug: 22559274
Change-Id: I760be7984a9b35ea77d59ca84a220798e205af36
extUtils.java
112d9c7f116bec0a52badde81bd778e59e88cb63 07-Aug-2015 Roozbeh Pournader <roozbeh@google.com> Remove EmojiFactory and its mentions from frameworks.

Bug: 18134313
Bug: 20158206
Change-Id: If46cdbd9d558e6592280b2b95f00b87d04de70a2
ayout.java
taticLayout.java
extLine.java
c3cc344d12ff4a952af8842fab71ef2f6df5e340 29-Jul-2015 Raph Levien <raph@google.com> Merge "Release text when finishing StaticLayout.Builder" into mnc-dev
22ba7869f6e211f5a692235f52687a6acdd71afc 29-Jul-2015 Raph Levien <raph@google.com> Release text when finishing StaticLayout.Builder

DynamicLayout reuses a StaticLayout.Builder object to avoid having to
allocate. There is a "finish" method that releases any expensive
internal state of the builder object, but it didn't release a
reference to the text object (which in turn may contain references to
lots of other things, especially if it's a Spannable).

This patch releases the text, as well as a few other arrays, at time
of finish.

Bug: 22822416
Change-Id: Icc8b6cd41a9a2d11689df7bd1b9f524c6524f706
taticLayout.java
a00896198d4e4049f24e96ce5056a88eb1693616 27-Jul-2015 Raph Levien <raph@google.com> Allow soft hyphens in languages without patterns

This patch sets up an "empty" hyphenator, which it uses by default
for locales in which there is no hyphenation pattern data. This has
the effect of enabling soft hyphens (U+00AD), which were otherwise
disabled, because the "no-hyphen" code path didn't consider them.

Bug: 19605972
Change-Id: I4dcb95cee8edc48495f7c38736f5abf26fa04935
yphenator.java
1fcb6d3ae27ac95388eb036d124bd4bd0c6559cc 21-Jul-2015 Raph Levien <raph@google.com> Merge "Respect style boundaries when measuring text" into mnc-dev
ea2b4a40f7236172398ebcaa273612e00340d847 21-Jul-2015 Raph Levien <raph@google.com> Respect style boundaries when measuring text

The existing implementation of handleText() in TextLine laid out
text to the end of the context. However, in cases where the text is
broken into multiple style spans, it's only valid to lay out up to
the end of the style span. This can lead to inconsistent
measurements, especially in the presence of legitimate zero-width
characters such as bidi control characters and zero width space.

This patch changes the invocation of getRunAdvance to measure only
within the style span.

Bug: 22589743
Change-Id: I027f5e77db27ddf9596ef20adcad7e62a82b41de
extLine.java
2dc6ebbea8a72e90bc66cac84b15ae3ce5898536 20-Jul-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Fix default value of stereoReset() in the documentation." into mnc-dev
007262e0aef80b30034b9ddd702ea252d9a71f4c 17-Jul-2015 Roozbeh Pournader <roozbeh@google.com> Fix default value of stereoReset() in the documentation.

The default has been 'true' for eternity in the code. But the
documentation was mistakenly saying it was 'false'. Going with the
code, since there are people out there relying on the code continuing
to work the same way.

Bug: 22557371
Change-Id: I6f4e7b2052d0cc30d41e8ccf2b9a5c6111fa0ab7
idiFormatter.java
8d2e0f7898ef7ab9b8775d88a2f8af2eea365c51 17-Jul-2015 Roozbeh Pournader <roozbeh@google.com> Bidi-wrap the results of format[Short]FileSize().

Previously, users of the results of formatFileSize() and
formatShortFileSize() needed to unicodeWrap the results themselves
using BidiFormatter, which resulted in several bugs and
inconsistencies across the platform when they didn't, especially in
Hebrew and Urdu locales:

Hebrew and Urdu use Latin abbreviations like 'MB' for file sizes
which cause undesired reorderings (or incorrect detection of the
string direction when the formatted file size starts the string).

With this patch, the results are now bidi-wrapped before being
returned if the locale of the context passed in to the formatter is a
right-to-left locale.

Bug: 22237132
Bug: 22273176
Change-Id: If076636d15828fc810feef6f0fa8806ef52aed5d
ormat/Formatter.java
1b3d03512e7bc759d3cd340280d7a5c59195a063 11-Jul-2015 Raph Levien <raph@google.com> Merge "Improve Html.toHtml() documentation" into mnc-dev
c55277d689dee83f58f63f56a0e26debff62aa56 11-Jul-2015 Raph Levien <raph@google.com> Improve Html.toHtml() documentation

The existing documentation is very terse and users were getting
confused whether the method escapes HTML metacharacters or not. Expand
the description a bit and explicitly state that metacharacters are
escaped.

Bug: 17456925

Change-Id: Icaae7fe1344629de5c0860674f3913781de18013
tml.java
9f0049200824ae523a6cd39b9866c709d42e3075 11-Jul-2015 Chris Craik <ccraik@google.com> Merge "Reduce cost of span type checking" into mnc-dev
fc121c2430cd27c0d9b655105a9ab1c261c10bdc 10-Jul-2015 Chris Craik <ccraik@google.com> Reduce cost of span type checking

bug:22378829

Change-Id: I1da5154b2fb4f5032eaed44586d5470d28ceb45b
pannableStringInternal.java
5d1654a9439f0ed81ecccecfacda34872270dfcb 10-Jul-2015 Raph Levien <raph@google.com> Merge "Fix StaticLayout crash when maxLines = 0" into mnc-dev
04a84559fd11b36196872b1ac0cb82e5f7367806 10-Jul-2015 Raph Levien <raph@google.com> Fix StaticLayout crash when maxLines = 0

An app setting maxLines = 0 is an edge case, but it can happen. We
had some logic that would index an array at -1 in that case. This
patch just skips the fixup of the ellipsis line break in that case.

Bug: 22353342
Change-Id: I940cf0782b319010f5aedf75b9291df4ac2976d8
taticLayout.java
7209deedcde98ea0cca519e73d910bafa5193334 09-Jul-2015 John Reck <jreck@google.com> Delete dead code

Bug: 22378829

Every time setText is called a BoringLayout is created.
BoringLayout internally creates a new Paint called mWorkPaint.

However, creating a Paint turns out to be somewhat substantial
amount of work, and mWorkPaint is never actually used. Deleting
this shaves off roughly 50ms and 1,000 object creations during
a fling on a listview.

Change-Id: I5d03402b9027df6ce0f3e58160752c66c69a4d2d
ayout.java
a0419de2a99a61f399da5400bdc229998edce6c2 09-Jul-2015 Raph Levien <raph@google.com> Slightly more precise RTL check in BoringLayout.isBoring()

This patch refines the crude check for potential RTL characters, based
on ranges containing RTL scripts and format characters that affect
bidi. This will make it much less likely that a StaticLayout will be
chosen instead of a BoringLayout.

Bug: 22328919
Change-Id: I9a0ed9b3f3373069052de21c836b3372f175430f
oringLayout.java
441fc0fc68140368d5438a6eb5b896b4a9d6ad4e 06-Jul-2015 Raph Levien <raph@google.com> Merge "Fix problems with StaticLayout indentation" into mnc-dev
c3f2f7b93b3fd8b2eaff4942f323f60aa4548493 06-Jul-2015 Raph Levien <raph@google.com> Clean up Hyphenator file reading

The old code made invalid assumptions about read() behavior and
failed to clean up properly in case of error. This patch changes the
file reading to use IoUtils.readFileAsString, which handles that.

Bug: 21020457
Change-Id: If9b54955c20a20a4ed5e8381d0c7e9c920d0639a
yphenator.java
2ea5290ffb9efe0a7c187fb1177ef8ecd089803c 01-Jul-2015 Raph Levien <raph@google.com> Fix problems with StaticLayout indentation

The implementation of indendataion had two issues. First, the indent
pattern would restart on a new paragraph, which created problems when
a multi-paragraph text would flow into a shape. Second, the indents
didn't affect drawing position, which is ok for centered text but not
most of the other alignments. This patch fixes both.

Bug: 21904268
Change-Id: I53a3eb1c192fc0f8f0beace304832eed61b38497
ayout.java
taticLayout.java
10f925173630c89239e2f42deb6cb042e9300d39 26-Jun-2015 Mady Mellor <madym@google.com> Merge "Text selection: Fix word boundaries for languages without spaces" into mnc-dev
c1bd7da9906bc95c791dec6d52508fc9ee916a99 26-Jun-2015 Keisuke Kuroyanagi <ksk@google.com> Merge "Fix: Ellipsis is wrongly applied or not applied in TextView." into mnc-dev
c7a14e442dcab7efd89af1bc671e6869904d19f6 25-Jun-2015 Makoto Onuki <omakoto@google.com> Fix Formatter.formatBytes() crash on non-EN locales

Bug 22012651

Change-Id: I21b1834a35647527002e01d76a7eb3a6a0354512
ormat/Formatter.java
02ebcdb91101020f1897d50ed6d2e7ad048a5cec 23-Jun-2015 Seigo Nonaka <nona@google.com> Merge "Revive Null check for backward compatibility." into mnc-dev
e264ac392a886788ebfd1069e1d366e2b1edef72 23-Jun-2015 Mady Mellor <madym@google.com> Text selection: Fix word boundaries for languages without spaces

WordIterator's getEnd/getBeginning methods does not support the needs
for word boundary detection in text selection. Consider the words
AABB (where AA and BB are each words). If getEnd is given the offset
on the boundary between AA and BB, it would return that offset since
it is the end of AA. For text selection we always want the "next end"
if available.

This CL adds two methods to word iterator that return the next end
and previous beginning.

This CL also alters the code in Start/EndHandle to use the x value
and current / prev line positions to determine if the user is
expanding or contracting the selection.

Bug: 21305292
Change-Id: I6e7a83e53e245d71e43d78f1957f844f2ed1cdfb
ethod/WordIterator.java
5cc0df214bbe2b169150c9060dc5288bb8aaf338 18-Jun-2015 Jeff Sharkey <jsharkey@android.com> Forget private partition keys.

When we forget a private partition, ask vold to also forget the key
for that partition GUID. This means we need to track both the
filesystem UUID and the partition GUID for a private volume.

Bug: 21782268
Change-Id: Icda1cbb65539d61dacc663428daf3d1a2e4c313e
extUtils.java
2ac124b790a4f4b8c9a9ac96a4211218e5d7af85 22-Jun-2015 Seigo Nonaka <nona@google.com> Revive Null check for backward compatibility.

Bug: 21934529
Change-Id: I18e8f01be728e0400f3218a359b0dc9fd97fbbbd
ormat/Formatter.java
a65a1582f5a04b15b53ebdec337ac611ccb78a07 16-Jun-2015 Jeff Sharkey <jsharkey@android.com> Merge "Update file size formatting." into mnc-dev
b521feaed410b6862baca9b42d5fd7c398e07b2f 16-Jun-2015 Jeff Sharkey <jsharkey@android.com> Update file size formatting.

Per UX, default strings should have space between value and units
resulting in "12.3 GB". Add a formatting variant that returns the
various components for callers who want to build their own strings.

For now there is only one mounted emulated volume at a time, and
it's always the primary storage, so give it the default rootId to
keep old Uris working.

Change-Id: Ifcc72a91a6b397ee65dc92642153286186eb64ac
ormat/Formatter.java
9f206bec2d58e5edcebb134013e2d9a23659a4d4 16-Jun-2015 John Spurlock <jspurlock@google.com> am 4393a7d2: am c0d84934: am 076c599f: am 1ad5c813: Fix typo in TtsSpan.

* commit '4393a7d2645cfb9097e616016c58887b9929be55':
Fix typo in TtsSpan.
076c599feb9a18b250de7020c2f1c01561c509f9 16-Jun-2015 John Spurlock <jspurlock@google.com> am 1ad5c813: Fix typo in TtsSpan.

* commit '1ad5c813211d4d855a0d5396855c80653480aaa4':
Fix typo in TtsSpan.
1ad5c813211d4d855a0d5396855c80653480aaa4 15-Jun-2015 John Spurlock <jspurlock@google.com> Fix typo in TtsSpan.

Change-Id: Ic32f141f0c51ee3bee8fd71464f104ef725de880
tyle/TtsSpan.java
f4a3f3a03c72b6a38dc2f3f965531dc2a12460df 10-Jun-2015 Keisuke Kuroyanagi <ksk@google.com> Fix: Ellipsis is wrongly applied or not applied in TextView.

In current implementation, ellipsis is applied after
coptuting line breaks without limiting line count. As a
result, ellipsis can be skipped or- wrongly applied because
the breaks are computed to fit with the width.
With this change, the last line and overflowed part are
treated as a single line when the number of breaks exceeds
the remaining line count.

Bug: 6615676
Bug: 18514378
Bug: 20177499

Change-Id: I1d90e299404960cdd22746bad572411b119f7360
taticLayout.java
f491c72e4a0b6d692aaf459a9a45a8c1462e713b 11-Jun-2015 Jeff Sharkey <jsharkey@android.com> Selected count string needs plurals.

Bug: 21717427
Change-Id: Ie0db8ac30244b022ca5838969fb085230bfc4499
extUtils.java
7d627eb9d28468f1ca861626128a67c9254071df 11-Jun-2015 Raph Levien <raph@google.com> Fix documentation of nextSpanTransition off by one

Improve wording of javadoc for nextSpanTransition() to accurately
reflect the actual implementation.

Bug: 19274845
Change-Id: I8f8fb6a21a8cbcc26fefb63164a6943431d16089
panned.java
52999685178656caba37fa0e9055ac26d707bdce 04-Jun-2015 Alan Viverette <alanv@google.com> Merge "Prevent poorly-extended ParcelableSpans from writing to parcels" into mnc-dev
a6a082862b9e2ea4c9e9a1a945927c4040993f6e 03-Jun-2015 Raph Levien <raph@google.com> Rename setTextDir to setTextDirection

StaticLayout.Builder used "setTextDir" as a shorthand, but it's not
as clear as spelling it out. So, setTextDirection.

Bug: 21572282
Change-Id: Ia94476562d70678f963196b87bb63511d30836b6
ynamicLayout.java
taticLayout.java
c021632e0750e495e62c3952c506a3e5ed516dc2 03-Jun-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Load hyphenation data for more languages." into mnc-dev
a70d4a90a029910f788c3e7f8715cf3b842b1e2b 03-Jun-2015 Alan Viverette <alanv@google.com> Prevent poorly-extended ParcelableSpans from writing to parcels

If a developer extends an existing ParcelableSpan and overwrites
writeToParcel, TextUtils will crash when attempting to unparcel
since the span type ID is not accurate. This CL makes a separate
framework-private method for writeToParcel to ensure that even if
a developer extends a ParcelableSpan class, they won't modify the
parceling or unparceling code that's tied to the span type ID.

Bug: 21274544
Change-Id: If4c3506a55999df7a3b6d87cb8d550235d7a02c6
nnotation.java
arcelableSpan.java
extUtils.java
tyle/AbsoluteSizeSpan.java
tyle/AlignmentSpan.java
tyle/BackgroundColorSpan.java
tyle/BulletSpan.java
tyle/EasyEditSpan.java
tyle/ForegroundColorSpan.java
tyle/LeadingMarginSpan.java
tyle/LocaleSpan.java
tyle/QuoteSpan.java
tyle/RelativeSizeSpan.java
tyle/ScaleXSpan.java
tyle/SpellCheckSpan.java
tyle/StrikethroughSpan.java
tyle/StyleSpan.java
tyle/SubscriptSpan.java
tyle/SuggestionRangeSpan.java
tyle/SuggestionSpan.java
tyle/SuperscriptSpan.java
tyle/TextAppearanceSpan.java
tyle/TtsSpan.java
tyle/TypefaceSpan.java
tyle/URLSpan.java
tyle/UnderlineSpan.java
edb27f14ec03d9f4e1dd3959e81f58d4f1389971 01-Jun-2015 Raph Levien <raph@google.com> Revert "Revert "Use getRunAdvance to position cursor""

This reverts commit 5730c974800a0ffed59a041d9e249a5c42e417db.
ayout.java
extLine.java
5730c974800a0ffed59a041d9e249a5c42e417db 01-Jun-2015 Raph Levien <raph@google.com> Revert "Use getRunAdvance to position cursor"

This reverts commit cb5499c85097450c48f66f6c08a35bab2ad5ab12.

Bug: 21549197
ayout.java
extLine.java
3b7f9615b70c7e62a018eb1abf0a52c8ba3e4d27 01-Jun-2015 Neil Fuller <nfuller@google.com> Merge "Fix javadocs based on recent case consistency change" into mnc-dev
a5e389ddd214c41c8de47bdbf71e3a3eacd7e5fb 28-May-2015 Neil Fuller <nfuller@google.com> Fix javadocs based on recent case consistency change

Commit a40d2447b6f516116135ee7f126579771ba98a2c made the
case consistently "as for the beginning of a sentence".
This updates the docs to reflect that. Previously the
result depended on the string returned (e.g. "Tomorrow"
was capitalized in English) and the casing varied
within and between locales.

Bug: 20247811
(cherry-picked from commit 0e1c0e11e41c85487349fcb719d2ab1d1823534e)

Change-Id: I7b48958725b32b13bee00347585472f8073e7761
ormat/DateUtils.java
cb5499c85097450c48f66f6c08a35bab2ad5ab12 29-May-2015 Raph Levien <raph@google.com> Use getRunAdvance to position cursor

TextLine used to use getTextRunAdvances on a substring to compute a
cursor position, but this had a number of problems, especially when
the substring is a wider than the full string (as can happen in
certain Tamil ligatures).

This patch changes the implementation to use getRunAdvance, which was
explicitly designed for this use case.

We should also change Layout.getHorizontal to use the dual
getOffsetForAdvance, but that's basically a performance optimization,
the functionality should be basically equivalent.

Bug: 21125816
Change-Id: I669b85eaecfbf6f7aa6c6a9dddbf1a210eb94571
ayout.java
extLine.java
4d4202bf57d8430a10f318ddfbf4f4b6dfbf0d74 23-May-2015 Roozbeh Pournader <roozbeh@google.com> Load hyphenation data for more languages.

This loads hyphenation data for the languages we currently provide at
initialization time. It also has a poor man's locale fallback
mechanism for finding hyphenation patterns where the locale doesn't
exactly match what may be available and caches the results.

Bug: 20088132
Change-Id: If7b2a8d5295df9cb2bdae7418df27bf77fb44e58
yphenator.java
f156cb31c0928cc739c4dc79813d13f92389877e 16-May-2015 Roozbeh Pournader <roozbeh@google.com> Make unicodeWrap() return null if the input string is null.

Previously, a NullPointerException was raised if the input was null.

Bug: 12894042
Change-Id: I5c5db484e5659659c1da91079adcba773ba7d83d
idiFormatter.java
21623faa449496d68bd102ddda5874f572b9c55a 13-May-2015 Mady Mellor <madym@google.com> Merge "Fix issue where handle is in front of word rather than end of word" into mnc-dev
95c7a13f2ac4f31ed3aaec9b47b9a29a3dbca978 12-May-2015 Roozbeh Pournader <roozbeh@google.com> Add hyphenationFrequency attribute to TextView and StaticLayout.

This patch adds plumbing to TextView and StaticLayout to control the
frequency of automatic hyphenation used in laying out paragraphs.

Bug: 21038249
Change-Id: Ib45de190eb0a1ed738e69fd61f2b39561b11aec7
ynamicLayout.java
ayout.java
taticLayout.java
58c9087137989da8411ffd212072f630d3fac4f3 12-May-2015 Mady Mellor <madym@google.com> Fix issue where handle is in front of word rather than end of word

Previous getWordEnd and getWordStart functions would return a boundary
rather than a word end / start boundary in some cases. This behavior is
most evident when moving between short lines -- the handle would go to
the next boundary rather than the word end on the next line (and the
start handle would go to the word end rather than the word start on
the prev line).

This CL ensures that word or punctuation boundaries are returned and moves
most of the punctuation boundary logic into WordIterator since it makes
a bit more sense there.

Bug: 21030788
Change-Id: I96c6aff7f2c213aa3c4f66ac87ca913ca16fd347
ethod/WordIterator.java
6c7b4ad690fe5c22c01ad79a232e567e835f676d 15-Apr-2015 Mady Mellor <madym@google.com> Consider punctuation treatment when selecting text.

This treats punctuation as "words", so groups of punctuation will be
selected together, i.e. "Hmm... yay!!!" would be treated as four words:
Hmm-...-yay-!!!

Bug: 19950062
Change-Id: Ic9514c524092734fad1abdf19a736bfa1406157b
ethod/WordIterator.java
6402dc7e4adbfb64ee80858292958ed217560c12 06-May-2015 Raph Levien <raph@google.com> Merge "Clear all StaticLayout.Builder fields on pool recycle" into mnc-dev
3bd60c7b1125ee42cd7e8746aeaebdb43e8211d8 06-May-2015 Raph Levien <raph@google.com> Clear all StaticLayout.Builder fields on pool recycle

When returning a StaticLayout.Builder object to the pool, it is
important to clear everything out. If not, then the object may have
stale state from a previous layout operation. This was causing CTS
test failures and probably other mischief.

Bug: 20636917
Change-Id: I76fb20076ee954fcb476131a8fbe8833d72fbc0d
taticLayout.java
8e71a397c6542d6a37cd59ea8b53236ac2dba86a 05-May-2015 Raph Levien <raph@google.com> Fix NPE in Html.inParagraph()

The typeface in a TypefaceSpan can be the null string. This patch
fixes the string comparison to not throw a NullPointerException.

Bug: 20849738
Change-Id: Ied049305794966bcbca00cfd11fe97a91b685d79
tml.java
531c30c62b14881aab31a5133920a971b1fbb50e 01-May-2015 Raph Levien <raph@google.com> Expose StaticLayout.Builder publicly

Expose the new Builder pattern for creating StaticLayout. This allows
access to a number of features that have been available to TextView
through a hidden constructor. Some of these features have existed
for a while (mostly maxLines), while others are new (breakStrategy,
indents).

The builder is cleaner and has a better upgrade path than the old
pattern of lots of constructors with varying numbers of arguments.

Bug: 20190561
Change-Id: Ia3cd124825ab0cb469d22d1fc576ad26454545b8
ynamicLayout.java
taticLayout.java
ebd66ca600dc2c43edb0830bcf1a92fafec30a5a 01-May-2015 Raph Levien <raph@google.com> Make Paint a required field of StaticLayout Builder

This patch moves the Paint parameter from being an option set from
setPaint to being a required field passed into the obtain() method
of StaticLayout.Builder. Thus, it is now possible to get a valid
StaticLayout object just doing .build() on the Builder; all other
fields are optional.

This is in preparation for exposing the builder publicly, but that
is to be a separate CL.

Bug: 20190561

Change-Id: Iefd7800203004e565d068b0c76502cf7cf52d91f
ynamicLayout.java
taticLayout.java
65769551dfc5b9081b2423ffd521d19398b5808a 20-Apr-2015 Keisuke Kuroyanagi <ksk@google.com> Merge "Enable mouse drag text selection for unfocused TextView."
666b2b75ce562957794fc5e5d30c5b2b32e64400 16-Apr-2015 Michael Wright <michaelwr@google.com> Merge "Stop Shift+Backspace from foward deleting."
83ab3b44df9ade92f59922a7b94e5acb7a2c10f9 16-Apr-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Fix various conformance issues with TextDirectionHeuristics."
88d92da325bf976245cffa773afd2df5a951a357 16-Apr-2015 Keisuke Kuroyanagi <ksk@google.com> Enable mouse drag text selection for unfocused TextView.

Bug: 17643755
Change-Id: If6ca064a082feaf6faf9555b1455c4b2f6312952
ethod/ArrowKeyMovementMethod.java
e319d5a3627aa3cd73c6ec0c76f8593ddefbab9d 15-Apr-2015 Raph Levien <raph@google.com> Add left and right indent arrays to TextView

In support of layout of paragraphs to non-rectangular regions, add
arrays for left and right indents to TextView, along with supporting
StaticLayout builder setters.

Bug: 20182243
Change-Id: I015bcef8f258c89001fcf8a54c179d2dfc0d7943
taticLayout.java
473601013923d6b5a30fecad5dbc4ff719f38fe4 10-Apr-2015 Roozbeh Pournader <roozbeh@google.com> Fix various conformance issues with TextDirectionHeuristics.

1. The algorithms no longer consider directional embeddings and
overrides as strong characters.

2. The algorithms are updated to Unicode 7.0, and consider the
directional isolates in determining the direction of input.

3. Codepoints are used instead of code units for looking up bidi
properties.

4. The bidi direction of unassigned characters is considered.

Bug: 20142480
Change-Id: I9be161c112b8f23565ed8961bb7d44ced234f67a
extDirectionHeuristics.java
375f3153a93b802cf9edf824f30b230c42bb3e41 15-Apr-2015 Michael Wright <michaelwr@google.com> Stop Shift+Backspace from foward deleting.

Bug: 17538139
Change-Id: Ia193c59058d99880ea5afe5bd1bbcc0dce97f9d4
ethod/BaseKeyListener.java
e26bd2c361bf506830350ef3e2ba2029355a2216 15-Apr-2015 Keisuke Kuroyanagi <ksk@google.com> Merge "Fix crash when ellipsize="start" is applied to short line."
ed2eea1bfc1fb57d3b34f2c1e6062b541737e73e 14-Apr-2015 Keisuke Kuroyanagi <ksk@google.com> Fix crash when ellipsize="start" is applied to short line.

Bug: 19833548
Change-Id: I05a36f00f5c7aa6f0ce1993337585f6cfc64649a
taticLayout.java
f2b233d44c796ceab3048a0130682fb5da3db557 07-Apr-2015 Seigo Nonaka <nona@google.com> Introduce Ctrl+Backspace/Ctrl+ForwardDelete shortcut.

Ctrl+Backspace deletes preceding one word and Ctrl+ForwardDelete delets
following one word.
Used Chrome's implementation/behvior as a reference.

Bug: 17810742
Change-Id: I7b2ca515b2f017e457f7104ec7b8e7473ca4e081
ethod/BaseKeyListener.java
eaddec8c7037e40f68863fe2bc9bc95401b284c0 09-Apr-2015 Seigo Nonaka <nona@google.com> Use TextView's text locale for capitalization.

BUG: 19284889
Change-Id: Icd3c1dd3b31c23025bc974bcbb5a3618196434e7
ethod/AllCapsTransformationMethod.java
97f09ae8b0fd88e9e14942a12b9b7ddc8355a1c8 08-Apr-2015 Raph Levien <raph@google.com> Merge "Clear hyphenEdit from Layout's paint"
9a174dda4227f602fd0b5f69909339b433a70f59 08-Apr-2015 Raph Levien <raph@google.com> Clear hyphenEdit from Layout's paint

The paint of a layout may be reused with other things (in particular,
it can be passed to a BoringLayout), so make sure the hyphenEdit is
zeroed out after use.

Change-Id: If58c5588af9642c3ba827acefea7895e814daab9
ayout.java
492c836f831808bc306678c5e0948df8bffa106b 08-Apr-2015 Romain Guy <romainguy@android.com> am 5b61a282: am e4d787b2: am 80e455e3: Merge "Prevent possible memory leak in SpanSet"

* commit '5b61a282255b5273f5194db73f3c88550dc11a57':
Prevent possible memory leak in SpanSet
b3a9bc038d3a218b1dbdf7b5668e3d6c12be5ee4 07-Apr-2015 Romain Guy <romainguy@curious-creature.com> Prevent possible memory leak in SpanSet

If SpanSet.init() is called several times in a row with different
values, it is possible to change "numberOfSpans" in a way that
will prevent SpanSet.recycle() from nulling out all the spans.

This can lead to memory leaks of large objects through spans
references. User @piwai reported this leak:

com.squareup.marketfont.MarketSpan
`-[1] of array android.text.style.CharacterStyle[]
`-spans of object android.text.SpanSet
`-mCharacterStyleSpanSet of object android.text.TextLine
`-[1] of array android.text.TextLine[]
`-sCached of class android.text.TextLine

The MarketSpan instance is kept alive through a recycled TextLine
which itself contains a SpanSet.

Change-Id: Idfb2233ca16895dbe735c312662eaf0b4a2ecd65
panSet.java
f1f9902b190992a4366cf48a572a2277d4449da3 06-Apr-2015 Raph Levien <raph@google.com> Merge "Load hyphenation data at Zygote init"
c3dd1c1b91b4e47c3b141944be68037ec2d607d8 06-Apr-2015 Raph Levien <raph@google.com> Load hyphenation data at Zygote init

Loading hyphenation data on demand can cause UI jank (and can be a
strict mode violation). This patch explicitly loads the data at
Zygote init time. It also chooses /system/usr/hyphen-data as the path
for this data.

Bug: 20060770

Change-Id: Idac68e3971f8638f1d70960594bf6c1050bb23d6
yphenator.java
39b4db73c3340ff955f67e4e5318159d19d1ab3a 25-Mar-2015 Raph Levien <raph@google.com> Add breakStrategy attribute to TextView

This patch adds plumbing to TextView to control the strategy used
for breaking paragraphs into lines.

The default for TextView is "quality", while the default for EditText
is "simple", largely to avoid too much re-layout when editing.

StaticLayout now has a builder which provides access to more
functionality and is also cleaner than the old mechanism of having
lots of constructors with varying numbers of arguments. This patch
changes TextView to use that builder, and also contains cleanups
of the Builder within StaticLayout.

Change-Id: Iee3cf3a05a3e51ba0834554e4a3ec606e9cabca5
ynamicLayout.java
ayout.java
taticLayout.java
26d443aee4ee5a8791417b4ca09e8c78ba8dc78b 30-Mar-2015 Raph Levien <raph@google.com> Revert "Fix build: Revert "Record hyphens from Minikin and draw them""

This reverts commit 5a6eeb3cbe0896ddf4bdccc0b1a81d7aac49821e and
fixes the underlying issue (needed to @hide getHyphen() for subclasses
of Layout, not just the base class), and layoutlib changes for
checkbuild.

Change-Id: I7a2b5f20ae014ea8e224d8c4079cf9131e17e1c1
ynamicLayout.java
yphenator.java
ayout.java
taticLayout.java
extLine.java
7298d1f079a139b2cf076c4852df9ca01adab7de 30-Mar-2015 Ed Heyl <edheyl@google.com> Merge "Fix build: Revert "Record hyphens from Minikin and draw them""
5a6eeb3cbe0896ddf4bdccc0b1a81d7aac49821e 30-Mar-2015 Ed Heyl <edheyl@google.com> Fix build: Revert "Record hyphens from Minikin and draw them"

This reverts commit 27fb878c04e18d3bdd6c42ed347194a7c816ed97.

Change-Id: I2b3390cb0b258a2e1a38ad72ae9686177d6ffdb8
ynamicLayout.java
yphenator.java
ayout.java
taticLayout.java
extLine.java
683ab2afc504fb93bb7697aefc6990e0e70dd0ed 30-Mar-2015 Raph Levien <raph@google.com> Merge "Record hyphens from Minikin and draw them"
6fd63402f5da0299ac4ded1984ba66f274380523 27-Mar-2015 Elliott Hughes <enh@google.com> Merge "Document that Time doesn't support pseudo-zones."
5c955ee5415e9bf4562ecb5a66f73cd8c98729c2 27-Mar-2015 Elliott Hughes <enh@google.com> Document that Time doesn't support pseudo-zones.

Bug: 19110194
Change-Id: I653b7dc46d5f15da70435f6bddd49042f4d03b54
ormat/Time.java
71cbc72e70a6f0e086535c51e35262eb3a4d4bd9 20-Mar-2015 Raph Levien <raph@google.com> Record hyphens from Minikin and draw them

This patch plumbs up hyphens computed in Minikin's LineBreaker,
records them in a new column in StaticLayout, and draws them.
DynamicLayout mirrors the new column, and TextLine is also changed to
make sure the hyphen is only drawn for the last run in a line.

There is a rather primitive mechanism for loading hyphenation
patterns, for testing only at this point.

Change-Id: Ib208568c0f6cff12cf834047500ec1da9ea9f430
ynamicLayout.java
yphenator.java
ayout.java
taticLayout.java
extLine.java
c94f742f7e07a3b86c8f603836c19638472b3e83 07-Mar-2015 Raph Levien <raph@google.com> Calculate line breaks using Minikin

This patch moves the calculation of line breaks for StaticLayout into
the new LineBreaker class provided by Minikin. This specific patch
should preserve existing functionality, but perhaps performance is
better, and the movement opens the door to much more sophisticated
line-breaking.

Change-Id: Iafccb9da4e3559bbeaeb2c7c85f86ddfd8ae2fa1
ayout.java
taticLayout.java
16802f0de28cce0616e19b800d8b8a2b17c47405 25-Mar-2015 Alan Viverette <alanv@google.com> am 46c95313: am ddb30cd3: am 7506f499: Merge "Fix to crash when clicking text link without view activity"

* commit '46c953138298285d9cb06a75030fc73081ccc121':
Fix to crash when clicking text link without view activity
7506f499b523d05c6bca5acb6d83f55820d33771 25-Mar-2015 Alan Viverette <alanv@google.com> Merge "Fix to crash when clicking text link without view activity"
2243ae17a9df91d589c8580f3ae499b63de91166 19-Mar-2015 Roozbeh Pournader <roozbeh@google.com> Make Html#toHTML() generate correct bidi directions.

Previously, after the first paragraph, the the detected bidi
direction of the text in the last paragraph was used, nstead of the
detected bidi direction of the current one.

Bug: 12027356
Change-Id: I51622a3156f1e321f53f7ca1855bc37aa6f77319
tml.java
4a357cd2e55293402d7172766f7f9419815fc1e8 19-Mar-2015 Alan Viverette <alanv@google.com> Replace usages of deprecated Resources.getColor() and getColorStateList()

Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
tml.java
f2560e62cf26cae64f5751b0479743e09cb7bd7f 18-Mar-2015 James Cook <jamescook@google.com> Merge "Improve undo support for text entered with IME"
d2026686702f6c893e871c078dc5176347b3b27e 03-Mar-2015 James Cook <jamescook@google.com> Improve undo support for text entered with IME

Use span properties to detect:
* Composing text - don't record undo operations
* Completing a composition - record an insert undo operation
* Canceling a composition - don't record

Save the composition state on parcel/unparcel.

Stop using begin/end batch edit to try to detect when a TextWatcher
is modifying the text. IMEs trigger multiple InputFilter passes in
a single batch edit. Use SpannableStringBuilder to determine when
we're in a TextWatcher callback because it is the authority on that
state.

Fix a bug in undo manager where it doesn't forget undos correctly if
there are more than one in the stack.

Bug: 19332904
Change-Id: Iaa9b0b2a7bf6683302cc85e7616e5d5fcc9fa202
pannableStringBuilder.java
d75a3b4d2cf0bf743cfc5fc6d908ea7e8a8fafd0 17-Mar-2015 Andreas Gampe <agampe@google.com> am 17eda7d0: am 4d907643: Merge "Frameworks/base: Fix trivial equals implementation"

* commit '17eda7d0bed1d32a9b8f4a6a9d572aeabb43810a':
Frameworks/base: Fix trivial equals implementation
610b2c778c83744509ecda0a6cc381ea4b54ad84 15-Mar-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Fix trivial equals implementation

The comparator's equal implementation doesn't satisfy the constraints
of an equals method, namely being reflexive. Use the standard Object
implementation instead.

Bug: 19797138
Change-Id: I74f888e99533e1945aab7ab10fe8ee3ded6388f4
til/Linkify.java
70616ecd22fafccf2fab7565ccfbb3b5f91c5580 04-Mar-2015 Raph Levien <raph@google.com> Start moving text measurement into native code

We want to move text measurement into native code, mostly so that
alternate measurement for hyphens can be performant. This patch begins
that migration, in the main StaticLayout case, but still surfaces the
widths array to Java (for ellipsis calculation), and also includes a
hack (used mostly for testing) for computing widths in Java and sending
them down to native code when TextPaint is subclassed.

Change-Id: I476c9e8b3aa8e4e3552eb18f66c4bcd5683f3a72
ayout.java
easuredText.java
taticLayout.java
extUtils.java
ce4155a204144ae5462f547f7738af24be5a1f77 11-Mar-2015 Raph Levien <raph@google.com> Fix android.text.cts.StaticLayoutTest#testGetEllipsisCount

The "moreChars" predicate (which is used in ellipsis computation) was
slightly incorrect, sometimes being computed as false when the line
break is at the end of a paragraph but not the end of the buffer.
This patch makes the behavior consistent with shipping versions.

Bug: 19676414
Change-Id: I72e16794e895c2eb765b21feaf59fcdccc4857f1
taticLayout.java
80756e38882720860db52f1fcc21fa1505a02abf 02-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate ARGB integer parameters with @ColorInt

Change-Id: I307f72a382272cf18ddb6b07d9fcb81228568d9a
extPaint.java
tyle/ForegroundColorSpan.java
tyle/QuoteSpan.java
560a433c44a3fe6ec887d726618a41cd01daa753 05-Mar-2015 Raph Levien <raph@google.com> Merge "Add JNI StaticLayout.Builder"
4c1f12efcf24e404df40f19075eb95a148a9d6a1 03-Mar-2015 Raph Levien <raph@google.com> Add JNI StaticLayout.Builder

This patch adds a native C++ Builder object for StaticLayout to
complement the Java one introduced in a previous patch.

The Builder object contains state used in constructing a layout, as well
as temporary buffers, to avoid having to allocate such. In particular,
it holds a break iterator, so avoids the cost of constructing that in
the common case of a single locale.

Change-Id: I1125103b7ccf00b8674c1586c3ea8d5d915fdd5b
taticLayout.java
35091569b9859c44bbb9430f5780380d0f067eb3 04-Mar-2015 Raph Levien <raph@google.com> Merge "Some refactoring of StaticLayout"
d3ab692d28018825578ff05832644cfad60233fb 02-Mar-2015 Raph Levien <raph@google.com> Some refactoring of StaticLayout

This patch refactors construction of StaticLayout to use an explicit
Builder object, which is intended to hold state used for constructing
the layout but not needed for merely reading out the results.

Builder objects are allocated from a pool and explicitly recycled,
so there is insignificant additional allocation cost.

This patch has very little impact on performance (it does avoid
allocating a FontMetricsInt object) but opens the way for significant
performance and functionality improvements as more of the Builder
functionality migrates to native code.

Change-Id: I2a576643e573a38b61f895a80d5d92a85c94b6b4
ynamicLayout.java
easuredText.java
taticLayout.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
easuredText.java
taticLayout.java
ormat/DateFormat.java
001f0b31b6f86a528f13dcc4e9378275f7f03a2c 25-Feb-2015 Roozbeh Pournader <roozbeh@google.com> Merge "Document the limitations of Linkify addresses"
1ff7196be945f29c0ba75595d447e504dbafffc7 14-Feb-2015 Roozbeh Pournader <roozbeh@google.com> Document the limitations of Linkify addresses

Explain that we are using WebView#findAddresses() which is
limited to US addresses at the moment (at least according
to its documentation), among various other limitations.

Bug: 5847264
Change-Id: If86c6d7c11cc080f0fe3401ffb7bce8068c6016f
til/Linkify.java
6cd132fef2a5d7af040707ca78560d13e0485539 19-Feb-2015 Scott Kennedy <skennedy@google.com> Annotate the parameter in TextUtils#isEmpty() as @Nullable

Change-Id: Iaccf7f568952399d5eb48c15a5428317dd75052a
extUtils.java
7b9c912f536925ac6ec43935d6e97506851b33d6 31-May-2013 Tor Norbye <tnorbye@google.com> Add @ResourceInt annotations on APIs

Change-Id: I119cc059c2f8bd98fd585fc84ac2b1b7d5892a08
tyle/ImageSpan.java
80955e105d6e71f7b71a63b391fd5a8adcded55e 12-Feb-2015 Raph Levien <raph@google.com> Merge "Interval tree for SpannableStringBuilder"
d7c020e9e525f1db44da1d0428d87a53babb3927 05-Feb-2015 Raph Levien <raph@google.com> Interval tree for SpannableStringBuilder

This CL greatly improves the speed of SpannableStringBuilder by storing
the spans as an interval tree with binary search.

Bug: 7404182
Change-Id: I2540b2cfe8aef128337e63829479660ba51e62b5
pannableStringBuilder.java
0d27729dd8f9f98dfaae38cfaab0045acc13b34e 12-Feb-2015 Tao Bao <tbao@google.com> resolve merge conflicts of 6d8886a to master.

Change-Id: If8798a1d87b35e2db56211bf0e7dea94bed91b6a
6d8886ac46106bda18b26a0870ed144f225c560f 12-Feb-2015 Tao Bao <tbao@google.com> resolved conflicts for merge of e1e1cd9d to lmp-mr1-dev-plus-aosp

Change-Id: If01cb9c91c4f980d422896aa5ebe713f540d4fd1
67bfa0b083ef0eef49b29b461afa65e5384ec429 07-Feb-2015 Tao Bao <tbao@google.com> Use ICU for relative time formatting

Rewrite the DateUtils' relative time formatting APIs
(getRelativeTimeSpanString, getRelativeDateTimeString) to use ICU ones.
Two APIs that take withPreposition parameter are not changed. Because
(a) ICU doesn't provide functionality to format preposition; (b) They
are not really computing relative time but instead calling
formatDateRange() to get the absolute time/date string.

Bug: 19146457
Bug: 5252772
Change-Id: Iea8d699d63cc4438513910da66d038912e44fb8d
ormat/DateUtils.java
0b1b82473d78b0887fe8b22d30812d0d2b7b6338 06-Feb-2015 Neil Fuller <nfuller@google.com> am 022cf57f: am a08934cf: am f789d45b: Merge "Avoid static initialization of Layout from TextUtils" into lmp-mr1-dev
automerge: c63efbd

* commit 'c63efbd928cc14e32fe19b2dec41d15ffc584182':
Avoid static initialization of Layout from TextUtils
c63efbd928cc14e32fe19b2dec41d15ffc584182 06-Feb-2015 Neil Fuller <nfuller@google.com> am 022cf57f: am a08934cf: am f789d45b: Merge "Avoid static initialization of Layout from TextUtils" into lmp-mr1-dev

* commit '022cf57f82e40a103c4a48c083a59d7fa4936668':
Avoid static initialization of Layout from TextUtils
d950ad034ceeec0024bc299b542d2b6154ac4dd3 06-Feb-2015 Neil Fuller <nfuller@google.com> Avoid static initialization of Layout from TextUtils

This works around a bug in standalone (e.g. non-Zygote)
runtimes when a device is attached to a host that is running
DDM.

There is a race condition:

When the runtime receives a HELLO from DDM it calls
TextUtils.isEmpty().

Calling any TextUtils methods statically initializes
Layout. Layout has dependencies on other classes, which in
turn have dependencies on native methods that are not always
registered when the call takes place. Registration and DDM
handling are done in separate threads.

This is not a fix, merely a workaround until the race can
be resolved.

Bug: 18081539
(cherry-picked from commit d29bdb266d54b4551f42776bb790e80147a279d0)

Change-Id: Id0d8578eab9e59d479a7c1b2e7ea1890ac0c8de6
ayout.java
taticLayout.java
extUtils.java
d29bdb266d54b4551f42776bb790e80147a279d0 06-Feb-2015 Neil Fuller <nfuller@google.com> Avoid static initialization of Layout from TextUtils

This works around a bug in standalone (e.g. non-Zygote)
runtimes when a device is attached to a host that is running
DDM.

There is a race condition:

When the runtime receives a HELLO from DDM it calls
TextUtils.isEmpty().

Calling any TextUtils methods statically initializes
Layout. Layout has dependencies on other classes, which in
turn have dependencies on native methods that are not always
registered when the call takes place. Registration and DDM
handling are done in separate threads.

This is not a fix, merely a workaround until the race can
be resolved.

Bug: 18081539
Change-Id: If1bd3de6597bc93da381c8f86dacf40156449561
ayout.java
taticLayout.java
extUtils.java
6f9f1d4b3b9f9844dc294758398f87cc7aa934b0 12-Sep-2014 Igor Viarheichyk <viarheichyk@google.com> Use constants instead of resources for ellipsis.

All supported locales use only U+2025 and U+2026 to represent
ellipses, and it will unlikely change in future. Given translated
resources are inconsistent and often use three dots it is safer
to use constants instead of resources.

(cherry-pick of ed0daa93e48d38e54a7ad1c99c461510a4c07599.)

Bug: 18542179
Change-Id: I51a6cb903f62f739fbadd6b78e5765c0028d641a
extUtils.java
22a08757b292577974867270ee3946817d853b27 16-Jan-2015 Svet Ganov <svetoslavganov@google.com> am 605ba802: am 2004fdf8: am 830f39ad: Merge "Fixing a memory leak: activities are leaked." into lmp-mr1-dev

* commit '605ba802778ed67ddd2ca1af7f55df6f2d257765':
Fixing a memory leak: activities are leaked.
605ba802778ed67ddd2ca1af7f55df6f2d257765 16-Jan-2015 Svet Ganov <svetoslavganov@google.com> am 2004fdf8: am 830f39ad: Merge "Fixing a memory leak: activities are leaked." into lmp-mr1-dev

* commit '2004fdf8e54daa84a8c4da20909f81f37add66d5':
Fixing a memory leak: activities are leaked.
893d6fe48d37f71e683f722457bea646994a10bf 16-Jan-2015 Svet Ganov <svetoslavganov@google.com> Fixing a memory leak: activities are leaked.

TextLine was not fully cleared before recycling it which leads to
activity leaks if the activity happens: to register a text watcher.

bug:19045507

Change-Id: Ife0f7ce29865bd30ca2dfe8795023f51f275d659
extLine.java
adc6b850729635ea494c58c4f422b5defe96b95f 14-Jan-2015 Scott Kennedy <skennedy@google.com> Add @Nullable annotation where necessary in Rfc822Token

Change-Id: I9b3088cbdfa09a8085b525674ff2540f23d4c96e
til/Rfc822Token.java
faf2190334df8196730b14a7dee4e26a7c87f04d 18-Dec-2014 Raph Levien <raph@google.com> am 3ac280c9: am 078ce5fc: Merge "Revert "Change Linkify leniency to VALID"" into lmp-mr1-dev
automerge: d946753

* commit 'd946753aa4ac3ac9b16ff1627a19fb05f1608660':
Revert "Change Linkify leniency to VALID"
d946753aa4ac3ac9b16ff1627a19fb05f1608660 18-Dec-2014 Raph Levien <raph@google.com> am 3ac280c9: am 078ce5fc: Merge "Revert "Change Linkify leniency to VALID"" into lmp-mr1-dev

* commit '3ac280c93bdebe4ca698e9a2e3d6d2daf3598e7a':
Revert "Change Linkify leniency to VALID"
047e816fe2e6c94ff425188c4b12f02921d3f5bf 17-Dec-2014 Raph Levien <raph@google.com> Revert "Change Linkify leniency to VALID"

This reverts commit 9dfe86d4102b93885b947917fccee35053cfc9f2.

That change moved the lenience from POSSIBLE to VALID, which eliminated
false positive links, especially 4 digit phone numbers, but caused
significant false negatives, leading to CTS test failures
(android.text.util.cts.LinkifyTest#testAddLinks7 in particular).

The true fix requires new functionality to validate phone numbers in
a mobile context. In the meantime, the best solution is to revert.

Bug: 18708556
til/Linkify.java
4c02e831728daf9374b52e2fe3fdbf7ce982bfc4 12-Dec-2014 Raph Levien <raph@google.com> Revert "Fix missing ellipsis when just one character is truncated"

This reverts commit 93e48e8cf18610bfb3f88ccd29891b2959dd606b.

The existing code in master already worked correctly for the original
problem, and this change just introduced a new problem.

Bug: 18576264
taticLayout.java
7bd9b7f73d2acead67a2bd5995bd56140ae3c4df 13-Nov-2012 Daniel 2 Olofsson <daniel2.olofsson@sonymobile.com> Fix to crash when clicking text link without view activity

A generated quick link to telephone number gets clicked and
crashes if corresponding activity doesn't exist in device.
It attempts to open up an activity to view content which will
in turn generate an uncaught ActivityNotFoundException.
Solved by catching exception when launching activity for the
specified content.

Change-Id: I47364519f1eceb5b978b29382107deae1891c7da
tyle/URLSpan.java
e04cfa8aa511269276c920e49685585f52b38af7 09-Dec-2014 Raph Levien <raph@google.com> am 1918d027: am 8aa97d26: am 238efad0: Merge "Change Linkify leniency to VALID" into lmp-mr1-dev

* commit '1918d0276ad502e45944bd75a187dd22021790c5':
Change Linkify leniency to VALID
1a91d8df50562510084cd041501a3099f962a71c 08-Dec-2014 Raph Levien <raph@google.com> resolved conflicts for merge of b9d21d62 to master

Change-Id: I2936c2a47290c3ea0fc66d460215f9e75d17ebf2
1918d0276ad502e45944bd75a187dd22021790c5 08-Dec-2014 Raph Levien <raph@google.com> am 8aa97d26: am 238efad0: Merge "Change Linkify leniency to VALID" into lmp-mr1-dev

* commit '8aa97d26e48cb86398e3f7df8103379564f16082':
Change Linkify leniency to VALID
b9d21d623f8bb196831d6fabdd5bb2ecf73a0c31 08-Dec-2014 Raph Levien <raph@google.com> am 8de4fb2f: am 2f0e6f0c: Merge "Fix off-by-one error in computeEllipsis" into lmp-mr1-dev

* commit '8de4fb2fe53ed7707500d9cdf737953bed3dec7e':
Fix off-by-one error in computeEllipsis
238efad04bfd144942b363c8589004ba831f3c63 05-Dec-2014 Raph Levien <raph@google.com> Merge "Change Linkify leniency to VALID" into lmp-mr1-dev
9dfe86d4102b93885b947917fccee35053cfc9f2 04-Dec-2014 Raph Levien <raph@google.com> Change Linkify leniency to VALID

The linkify logic used POSSIBLE as its leniency setting, which resulted
in false positives such as 4-digit years being interpreted as phone
numbers. Changing to VALID as per recommendation of libphonenumber
people, which fixes this problem.

Bug: 18489494
Change-Id: I77d330285de46de2fdda22daed41392106ec6ddd
til/Linkify.java
0e3c5e827235911d33312e431975533f046421e7 04-Dec-2014 Raph Levien <raph@google.com> Fix off-by-one error in computeEllipsis

In the Truncate.MIDDLE case, when the line is less than half the layout
width, the computeEllipsis logic could go past the left edge of the
string. This patch fixes the off-by-one and avoids the resulting index
out of bounds crash, and also changes the behavior so that when
ellipsizing at the middle, the string to the end of the paragraph is
taken into account.

Bug: 18508627
Change-Id: I24be09c23a5aa158791a9717419307613b8a22e8
taticLayout.java
cb17416a8d6ba163a766d74cba79b33bc5fb49ba 25-Nov-2014 Jorim Jaggi <jjaggi@google.com> am 0da89b76: resolved conflicts for merge of f0fc23a1 to lmp-mr1-dev-plus-aosp

* commit '0da89b76402816dade084166a97b1d352ae1f78b':
Fixed several time related states for secondary users
0da89b76402816dade084166a97b1d352ae1f78b 25-Nov-2014 Jorim Jaggi <jjaggi@google.com> resolved conflicts for merge of f0fc23a1 to lmp-mr1-dev-plus-aosp

Change-Id: I8f1dbae2ecd14ae4e51a9e86eb6d36dd56a48be1
65af39f57e814ad3761ccfa9bad4f756916d46b1 24-Nov-2014 Narayan Kamath <narayan@google.com> am 43395d67: am 68e9af7b: am 1d84709c: Merge "Stop reading Settings.System.DATE_FORMAT."

* commit '43395d677b431def5e6d8707297d590ba8f204a1':
Stop reading Settings.System.DATE_FORMAT.
43395d677b431def5e6d8707297d590ba8f204a1 24-Nov-2014 Narayan Kamath <narayan@google.com> am 68e9af7b: am 1d84709c: Merge "Stop reading Settings.System.DATE_FORMAT."

* commit '68e9af7ba0b846768036f268d719f3d2a333ffca':
Stop reading Settings.System.DATE_FORMAT.
f91f06a5991451e4af3cf99eba791cb3009810d2 18-Nov-2014 Narayan Kamath <narayan@google.com> Stop reading Settings.System.DATE_FORMAT.

Also, move over DateFormat.getInstance(SHORT) instead of
LocaleData.shortDateFormat4 (which forces 4 digit years).
Based on an analysis of git history, there seems to be no
real motiviation for using 4 digit years.

If anyone in the platform complains loudly, we could look at
using a skeleton pattern instead of just replacing 'y' with 'yy'.

If third party apps are affected, we could add a targetSdkversion
based check and revert to the old behaviour for older targetSdks.

bug: 18388178
bug: 18322220
Change-Id: Ieab2b41691958a2e668d382c5a6b3d9aaf741ed2
ormat/DateFormat.java
9c4a707912da2c954b2d3d1311b8a691ded8aa16 21-Nov-2014 Selim Cinek <cinek@google.com> Fixed several time related states for secondary users

The 24 hour setting was not respected correctly. Also
fixed a bug where the next alarm would not display itself
in the QS panel.

Bug: 16239208
Change-Id: I89734f783912dead5831db49db53fba04dbf54ee
ormat/DateFormat.java
93e48e8cf18610bfb3f88ccd29891b2959dd606b 17-Nov-2014 Raph Levien <raph@google.com> Fix missing ellipsis when just one character is truncated

The "moreChars" test in StaticLayout's generate method would evaluate to
false when the last character in a word caused the break. This in turn
suppressed the ellipsis in this case. The proposed fix is always to set
moreChars true in the code path where the line is broken because more
text wouldn't fit.

Bug: 17738112
Change-Id: Ifa1a69841ca952da4d1937dc8326778179b026b3
taticLayout.java
de81cf0c314e797b35135547534692593ab25fce 18-Nov-2014 Chris Craik <ccraik@google.com> am 22e8e8ef: am bde9ffbd: Merge "Fix missing ellipsis when just one character is truncated" into lmp-mr1-dev

* commit '22e8e8ef57ecef6fe7b3489c3c16babfda017435':
Fix missing ellipsis when just one character is truncated
396879f3f88e6384588c421c7e57ceef932aad59 17-Nov-2014 Raph Levien <raph@google.com> Fix missing ellipsis when just one character is truncated

The "moreChars" test in StaticLayout's generate method would evaluate to
false when the last character in a word caused the break. This in turn
suppressed the ellipsis in this case. The proposed fix is always to set
moreChars true in the code path where the line is broken because more
text wouldn't fit.

Bug: 17738112
Change-Id: Ifa1a69841ca952da4d1937dc8326778179b026b3
taticLayout.java
e8dce89a8332204bccaa9b6b0e9a6acc0b7d452a 06-Nov-2014 Adrian Roos <roosa@google.com> am 34c45bb9: am b2a6c7b8: am 418f4ed0: Merge "Round charging indication to nearest minute" into lmp-mr1-dev

* commit '34c45bb953f3fc230207bacb1a3b4d073068ca9f':
Round charging indication to nearest minute
34c45bb953f3fc230207bacb1a3b4d073068ca9f 06-Nov-2014 Adrian Roos <roosa@google.com> am b2a6c7b8: am 418f4ed0: Merge "Round charging indication to nearest minute" into lmp-mr1-dev

* commit 'b2a6c7b83f894922663e7144048264af96239a1e':
Round charging indication to nearest minute
874b35b83613eac69d5a9a35bc62e4ac5efc385c 05-Nov-2014 Adrian Roos <roosa@google.com> Round charging indication to nearest minute

Bug: 18177374
Change-Id: I4eb7fcac83398a4d8432bf092d8d91506646b5a1
ormat/Formatter.java
f47a6db44b0f8a6e7affe25a7ec479bc17f08c54 04-Nov-2014 Narayan Kamath <narayan@google.com> am f2196a6e: am 6220810b: am 78a3b7d5: Merge "Remove deprecated DateFormat APIs." into lmp-mr1-dev

* commit 'f2196a6ed5988f87d0e04cc30f0f82f7ea431095':
Remove deprecated DateFormat APIs.
f2196a6ed5988f87d0e04cc30f0f82f7ea431095 04-Nov-2014 Narayan Kamath <narayan@google.com> am 6220810b: am 78a3b7d5: Merge "Remove deprecated DateFormat APIs." into lmp-mr1-dev

* commit '6220810b8167deee7bf2577f5136736473cbea1c':
Remove deprecated DateFormat APIs.
9d68b3c839046d6a0ef505ab020fc4219ea36170 22-Oct-2014 Narayan Kamath <narayan@google.com> Remove deprecated DateFormat APIs.

bug: 18074066
Change-Id: I99cef45105c9f25075c596cf4f52ec5573565596
ormat/DateFormat.java
64a1a901dcd9b3103cc63d5c20de9af6db9d1ada 29-Oct-2014 Elliott Hughes <enh@google.com> am 87ce99ca: am ced7ebdb: Merge "Migrate off timeFormat12 and timeFormat24."

* commit '87ce99ca7243e4556a6cfe9f42cc51531301e979':
Migrate off timeFormat12 and timeFormat24.
87ce99ca7243e4556a6cfe9f42cc51531301e979 28-Oct-2014 Elliott Hughes <enh@google.com> am ced7ebdb: Merge "Migrate off timeFormat12 and timeFormat24."

* commit 'ced7ebdb1d522b4206e2048b278554ca841aeaba':
Migrate off timeFormat12 and timeFormat24.
4400f96d1f52679801a6c49175c806fb30c83768 24-Oct-2014 Neil Fuller <nfuller@google.com> am a021e922: resolved conflicts for merge of 12260ad7 to lmp-mr1-dev-plus-aosp

* commit 'a021e922184ee16fc019e29c066719daa793dd2b':
Deprecating FloatMath and Time
a021e922184ee16fc019e29c066719daa793dd2b 24-Oct-2014 Neil Fuller <nfuller@google.com> resolved conflicts for merge of 12260ad7 to lmp-mr1-dev-plus-aosp

Change-Id: Ie2222794208475216941289cf062e05ca9c75e0f
ced7ebdb1d522b4206e2048b278554ca841aeaba 23-Oct-2014 Elliott Hughes <enh@google.com> Merge "Migrate off timeFormat12 and timeFormat24."
f7d5e0a53e168f2acc17b098bdd4b927fa1b1d6c 23-Oct-2014 Elliott Hughes <enh@google.com> Migrate off timeFormat12 and timeFormat24.

libcore now offers a wider variety of 12-/24-hour time formats,
so be more specific about which one we want here.

(cherry-pick of 85f60d3a03b5b5d9a0e8b8a138eb85a6b53a1eca.)

Bug: 10361358
Change-Id: I846ab7a6f84cd49e876ad21e9366aff1600e0530
ormat/DateFormat.java
85f60d3a03b5b5d9a0e8b8a138eb85a6b53a1eca 23-Oct-2014 Elliott Hughes <enh@google.com> Migrate off timeFormat12 and timeFormat24.

libcore now offers a wider variety of 12-/24-hour time formats,
so be more specific about which one we want here.

Bug: 10361358
Change-Id: I846ab7a6f84cd49e876ad21e9366aff1600e0530
ormat/DateFormat.java
bbf8871e1c7ef762b3f9505cca924568c48e8be5 23-Oct-2014 Neil Fuller <nfuller@google.com> Deprecating FloatMath and Time

Bug: https://code.google.com/p/android/issues/detail?id=36199
Bug: https://code.google.com/p/android/issues/detail?id=37653
Bug: https://code.google.com/p/android/issues/detail?id=42750
Bug: https://code.google.com/p/android/issues/detail?id=61137
Bug: https://code.google.com/p/android/issues/detail?id=74754
Bug: https://code.google.com/p/android/issues/detail?id=76386
Bug: https://code.google.com/p/android/issues/detail?id=76439
Bug: https://code.google.com/p/android/issues/detail?id=77836
Change-Id: Ic9b57d8a575f93b2258a5481df0ed6b3a952f636
ormat/Time.java
eea621810c4925de43968284b67f314ded2181e4 22-Oct-2014 Deepanshu Gupta <deepanshu@google.com> Merge "Add Optimized Line breaking to LayoutLib"
7053919a3a55ad1b58e6db701afda18850037732 16-Oct-2014 Deepanshu Gupta <deepanshu@google.com> Add Optimized Line breaking to LayoutLib

Change-Id: I308a7d07d98ddd7747f16e06bcffcfd14d667534
taticLayout.java
f4d51632a647326b5cdbb103a862a79e3ecfdfec 15-Oct-2014 Neil Fuller <nfuller@google.com> am 8ee06212: am 1802567a: am e4625cc1: Merge "Fix Time docs to document various error cases"

* commit '8ee062122f75f5f9e4904ed95ca3778e670c5f88':
Fix Time docs to document various error cases
12f427d0b54331d5191b5be17657eb57480bf81d 15-Oct-2014 Neil Fuller <nfuller@google.com> am 1802567a: am e4625cc1: Merge "Fix Time docs to document various error cases"

* commit '1802567a79b2fc94aa1dff387cd55db8521cdca6':
Fix Time docs to document various error cases
8ee062122f75f5f9e4904ed95ca3778e670c5f88 15-Oct-2014 Neil Fuller <nfuller@google.com> am 1802567a: am e4625cc1: Merge "Fix Time docs to document various error cases"

* commit '1802567a79b2fc94aa1dff387cd55db8521cdca6':
Fix Time docs to document various error cases
e4625cc1a861615f4b3447e2a4d4990590d51470 15-Oct-2014 Neil Fuller <nfuller@google.com> Merge "Fix Time docs to document various error cases"
7079f2003c36cfb3f186c067675a7f564d78f1d6 30-Sep-2014 Neil Fuller <nfuller@google.com> Fix Time docs to document various error cases

Bug: https://code.google.com/p/android/issues/detail?id=76386
Change-Id: Ibb71405b70453d5abaf45426ec4e36261b6695cf
ormat/Time.java
df2b8a1cb98f55dfa3ecd3c73a58a4e2ce7a325c 02-Oct-2014 Newton Allen <newt@google.com> am 58f75627: am 94f5155d: am c68aad9f: am d84ce32b: Merge "Fix some documentation typos." into lmp-dev

* commit '58f75627d195082e263f6d6d8e3c46c6d0970e63':
Fix some documentation typos.
408f7534ef49fc87a4e10d751a0bbf2540a40bf7 02-Oct-2014 Newton Allen <newt@google.com> am d84ce32b: Merge "Fix some documentation typos." into lmp-dev

* commit 'd84ce32bd2d7c3cebac15545504f4fec464a6956':
Fix some documentation typos.
ebf2e8b45155af338432ccd93d2979857b784b77 02-Oct-2014 Neil Fuller <nfuller@google.com> am c2a0b448: resolved conflicts for merge of ee665151 to lmp-mr1-dev-plus-aosp

* commit 'c2a0b4482d7144e8382346ea4c22c7b89368fec0':
Switch from FloatMath -> Math and Math.hypot where possible
c2a0b4482d7144e8382346ea4c22c7b89368fec0 02-Oct-2014 Neil Fuller <nfuller@google.com> resolved conflicts for merge of ee665151 to lmp-mr1-dev-plus-aosp

Change-Id: I2588c65b7a9fa43f968151a206924a804f0595a7
f7cf5d43aa13405f9d0dd54f6038f710a0423323 02-Oct-2014 Neil Fuller <nfuller@google.com> resolved conflicts for merge of ee665151 to lmp-dev-plus-aosp

Change-Id: I97671e62de26919e391dbb2686511584c59ab990
33253a4baa6279f81a73425b49dfb6abe5f5416e 01-Oct-2014 Neil Fuller <nfuller@google.com> Switch from FloatMath -> Math and Math.hypot where possible

The motivation is an API change: FloatMath is going to be
deprecated and/or removed. Performance is not the goal of
this change.

That said...

Math is faster than FloatMath with AOT compilation.

While making the change, occurances of:

{Float}Math.sqrt(x * x + y * y) and
{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))

have been replaced with:

{(float)} Math.hypot(x, y)

Right now there is no runtime intrinsic for hypot so is not faster
in all cases for AOT compilation:

Math.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with
AOT, but all other combinations of FloatMath, use of pow() etc.
are slower than hypot().

hypot() has the advantage of being self documenting and
could be optimized in future. None of the behavior differences
around NaN and rounding appear to be important for the cases
looked at: they all assume results and arguments are in range
and usually the results are cast to float.

Different implementations measured on hammerhead / L:

AOT compiled:

[FloatMath.hypot(x, y)]
benchmark=Hypot_FloatMathHypot} 633.85 ns; σ=0.32 ns @ 3 trials

[FloatMath.sqrt(x*x + y*y)]
benchmark=Hypot_FloatMathSqrtMult} 684.17 ns; σ=4.83 ns @ 3 trials

[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]
benchmark=Hypot_FloatMathSqrtPow} 1270.65 ns; σ=12.20 ns @ 6 trials

[(float) Math.hypot(x, y)]
benchmark=Hypot_MathHypot} 96.80 ns; σ=0.05 ns @ 3 trials

[(float) Math.sqrt(x*x + y*y)]
benchmark=Hypot_MathSqrtMult} 23.97 ns; σ=0.01 ns @ 3 trials

[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]
benchmark=Hypot_MathSqrtPow} 156.19 ns; σ=0.12 ns @ 3 trials

Interpreter:

benchmark=Hypot_FloatMathHypot} 1180.54 ns; σ=5.13 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtMult} 1121.05 ns; σ=3.80 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtPow} 3327.14 ns; σ=7.33 ns @ 3 trials
benchmark=Hypot_MathHypot} 856.57 ns; σ=1.41 ns @ 3 trials
benchmark=Hypot_MathSqrtMult} 1028.92 ns; σ=9.11 ns @ 3 trials
benchmark=Hypot_MathSqrtPow} 2539.47 ns; σ=24.44 ns @ 3 trials

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I06c91f682095e627cb547d60d936ef87941be692
oringLayout.java
8f8a11b7fa26e603519131001ab46596aa30ba1a 26-Nov-2013 Newton Allen <newt@google.com> Fix some documentation typos.

Change-Id: I747a0ade5c7b9c45d4465bf327952338bbc1cfaa
(cherry picked from commit 4465d1a03ee5fddc5987c19fc36b0bb79e19572f)
ethod/KeyListener.java
4465d1a03ee5fddc5987c19fc36b0bb79e19572f 26-Nov-2013 Newton Allen <newt@google.com> Fix some documentation typos.

Change-Id: I747a0ade5c7b9c45d4465bf327952338bbc1cfaa
ethod/KeyListener.java
51862b168f271936de51eac8d465c7cdab8ab583 20-Sep-2014 Elliott Hughes <enh@google.com> am 127ba8ff: am 4fec1b48: am 600ca140: Merge "Use constants instead of resources for ellipsis."

* commit '127ba8ff08fd8c317a11831ebf409d249fb5e646':
Use constants instead of resources for ellipsis.
69eb21074f57ad349e301b432726fd7518fefe6f 20-Sep-2014 Elliott Hughes <enh@google.com> am 4fec1b48: am 600ca140: Merge "Use constants instead of resources for ellipsis."

* commit '4fec1b488759a89732af151e21a89aa6693ba9bf':
Use constants instead of resources for ellipsis.
212998ce6259b2fe120cf4ab94708afda2b78a36 20-Sep-2014 Elliott Hughes <enh@google.com> am 4fec1b48: am 600ca140: Merge "Use constants instead of resources for ellipsis."

* commit '4fec1b488759a89732af151e21a89aa6693ba9bf':
Use constants instead of resources for ellipsis.
600ca140e2e31e76f9bef7d484387ea366812cb3 20-Sep-2014 Elliott Hughes <enh@google.com> Merge "Use constants instead of resources for ellipsis."
ed0daa93e48d38e54a7ad1c99c461510a4c07599 12-Sep-2014 Igor Viarheichyk <viarheichyk@google.com> Use constants instead of resources for ellipsis.

All supported locales use only U+2025 and U+2026 to represent
ellipses, and it will unlikely change in future. Given translated
resources are inconsistent and often use three dots it is safer
to use constants instead of resources.

Change-Id: I51a6cb903f62f739fbadd6b78e5765c0028d641a
extUtils.java
a559a68c361340d85600850bbb26471b65e1716d 08-Sep-2014 Elliott Hughes <enh@google.com> am d2f9559a: Merge "resolved conflicts for merge of 2008cff7 to lmp-dev-plus-aosp" into lmp-dev-plus-aosp

* commit 'd2f9559ad7cff93527a05cb85172a7bb29f4d9b2':
Small documentation fixes across many files.
4656e69bf36d42a35c9290ab79eeb33b4cca1d5c 08-Sep-2014 Elliott Hughes <enh@google.com> resolved conflicts for merge of 2008cff7 to lmp-dev-plus-aosp

Change-Id: I5148eda624e8504f12dbc1288cd4a7a5b7c10850
ab94a1676e6280f1b6d83e0f8b02849ff62faf4f 08-Sep-2014 Elliott Hughes <enh@google.com> Merge "Small documentation fixes across many files."
d0646dca40ff740bd49755ad60751678b0ccca52 28-Aug-2014 Mark Doliner <mark@kingant.net> Small documentation fixes across many files.

Change-Id: I3e8787ce4bc6018ea1dc9aef2a2cd4e0a8dde663
tml.java
fa22262ed27ac1e3a1e57dbc9dc2c4b39c2fd9d9 05-Sep-2014 Raph Levien <raph@google.com> am a5c45276: am 188d9adb: am 43012fec: Merge "Up/down arrow moves to beginning/end of buffer" into lmp-dev

* commit 'a5c452769069bc21c9c8d29fb28dbfa371f6e81b':
Up/down arrow moves to beginning/end of buffer
fb0431b5253346feb38677138e1a0a5458abaf57 05-Sep-2014 Raph Levien <raph@google.com> Up/down arrow moves to beginning/end of buffer

With a hardware keyboard, using up arrow within the top line should
move to the beginning of the buffer, to better match desktop text
editing expectations, and similarly for down arrow on the last line.
This patch implements that behavior.

Bug: 17385784
Change-Id: Ia23c23c9cc2462558bca9aaffec7d83e284d55e8
election.java
9278b5f28e29e2732d28f2b69cd6386dc85ffadb 04-Sep-2014 Raph Levien <raph@google.com> am c2a9bb67: am f7380a69: am 58e457cc: Merge "Fix Layout.isRtlCharAt" into lmp-dev

* commit 'c2a9bb67b8d76173e6220f852bcc4c78daa4bdd5':
Fix Layout.isRtlCharAt
d946dfa6b070e3ae419335e810a44f74f76bb1a7 04-Sep-2014 Kenny Guy <kennyguy@google.com> am c9e9b3bf: am 68fc49ee: am 56e125ff: Merge "Revert "Ensure all RemoteViews use myUserId rather than context."" into lmp-dev

* commit 'c9e9b3bfc3569260d708270aee9c49380cfb7366':
Revert "Ensure all RemoteViews use myUserId rather than context."
875062059c4932ddf5649720c26e7f59b6ab9978 04-Sep-2014 Raph Levien <raph@google.com> Fix Layout.isRtlCharAt

We weren't getting correct results from Layout.isRtlCharAt, because it
was only testing half of the correct predicate for whether the argument
was inside the run. This patch restores the correct predicate.

Bug: 17381011
Change-Id: Ib0a77cc182f4ca4bfe824e85b7aff7268f465d73
ayout.java
692356b7c392130b7f38f46a60570617c978ba75 04-Sep-2014 Kenny Guy <kennyguy@google.com> Revert "Ensure all RemoteViews use myUserId rather than context."

This reverts commit 5287e37687f117ac0b690100ad90842eff58d15a.
Reverting because only worked if settings cache had been populated
already.

Bug: 17302505
Change-Id: I4360606e9d9c6409951f0a02bd0b78c55085e0c6
ormat/DateFormat.java
3f9c59cea1b42ebfb9895270cfcc1fbac0afb9f2 04-Sep-2014 Kenny Guy <kennyguy@google.com> am aa0ffe26: am 0d548a70: am 5c32b77f: Merge "Ensure all RemoteViews use myUserId rather than context." into lmp-dev

* commit 'aa0ffe267c3bbdefb548cb5de6c7bda29f5365cb':
Ensure all RemoteViews use myUserId rather than context.
879ebec4e2a12a802339549cb4fefa32b5368379 02-Sep-2014 Kenny Guy <kennyguy@google.com> Ensure all RemoteViews use myUserId rather than context.

Remote views may be inflated in another user so
explicitly use processes user id rather than the
user id of the context.

Bug: 17302505
Change-Id: I985c91745f03dd7e6b2ab6357600077664d8e6be
ormat/DateFormat.java
7e19fb0d6938ed7056edcea4ee405bc0696f2e67 29-Aug-2014 Neil Fuller <nfuller@google.com> Merge "Fixing android.text.format.Time for non-English locales" into lmp-dev
16566656cd2f81f62c8693e64de68062f2680161 27-Aug-2014 Neil Fuller <nfuller@google.com> Fixing android.text.format.Time for non-English locales

The test fixes for bug 17262063 showed up a real issue for
non-English locales with the Time.format() method:
If the Android string resources that contain the pattern use
non-ASCII characters then a '?' would be output instead of
those characters.

For example, in France the pattern for '%c' includes a 'à'
(a with a grave accent) and Japan includes 日.

The problem was due to converting the pattern to bytes using
the US_ASCII character set, which turns non-ASCII characters
into '?'. The code has been changed to use char throughout
and avoid bytes.

Internal documentation has been improved.

Some calls to modifyAndAppend() have been replaced with a
direct call to outputBuilder.append() because the
modify step is guaranteed to a no-op for the literals given.

The formatter has been changed to use Locale.US because it
is only used for outputting numbers. It has been renamed
to make this more obvious and the locale field has been
removed.

Bug: 17262063

(cherry picked from commit 788cb18f652fca380acefdadce305415bc0602b0)

Change-Id: I96ee158fbeb01827f0bbf022631625416f872fdb
ormat/TimeFormatter.java
38e02cfc35376e4cc6623e77e5f1f85b352fe09c 29-Aug-2014 Neil Fuller <nfuller@google.com> am 176c0ecd: am 23f6a4ab: am 8178edfc: Merge "Fixing android.text.format.Time for non-English locales"

* commit '176c0ecdb15683cdfb39c0fc9944213a65746b91':
Fixing android.text.format.Time for non-English locales
a4bf544991651a74611b469368026d2468320d58 29-Aug-2014 Neil Fuller <nfuller@google.com> am 23f6a4ab: am 8178edfc: Merge "Fixing android.text.format.Time for non-English locales"

* commit '23f6a4ab5df4c7e156947f5324be8ae86f7c74fd':
Fixing android.text.format.Time for non-English locales
788cb18f652fca380acefdadce305415bc0602b0 27-Aug-2014 Neil Fuller <nfuller@google.com> Fixing android.text.format.Time for non-English locales

The test fixes for bug 17262063 showed up a real issue for
non-English locales with the Time.format() method:
If the Android string resources that contain the pattern use
non-ASCII characters then a '?' would be output instead of
those characters.

For example, in France the pattern for '%c' includes a 'à'
(a with a grave accent) and Japan includes 日.

The problem was due to converting the pattern to bytes using
the US_ASCII character set, which turns non-ASCII characters
into '?'. The code has been changed to use char throughout
and avoid bytes.

Internal documentation has been improved.

Some calls to modifyAndAppend() have been replaced with a
direct call to outputBuilder.append() because the
modify step is guaranteed to a no-op for the literals given.

The formatter has been changed to use Locale.US because it
is only used for outputting numbers. It has been renamed
to make this more obvious and the locale field has been
removed.

Bug: 17262063
Change-Id: I32b92f7f7e3e6931d3514d87f1d9a38f136d4021
ormat/TimeFormatter.java
26c87cfb584d4533c9b47f7cbf75f6921c52b928 28-Aug-2014 Raph Levien <raph@google.com> Ignore width of trailing whitespace for computing ellipsis

We used the full width of a line, including trailing spaces, to compute
ellipsis, sometimes causing spurious ellipsization when the space pushed
it past the layout width. This patch uses only the width up to the last
graphing character.

Fix for bug 17186801 "First line of title text is getting truncated even
if there's space on second line"

Change-Id: I49d07c18c8dd1d3b279f591224d23e10645dc8c0
taticLayout.java
a1fc9989243b94aacf8e12fe3f22f0350f78edd7 21-Aug-2014 Niels Egberts <nielse@google.com> am 190d2222: am 3709bca8: am 14e9dc50: Merge "Fixed spelling of android.nominative and updated some comments." into lmp-dev

* commit '190d22224884cad530b2f8a1a671e91fd3f80244':
Fixed spelling of android.nominative and updated some comments.
b9f7692ce61a90d2735865cf040e896c004977ba 13-Aug-2014 Niels Egberts <nielse@google.com> Fixed spelling of android.nominative and updated some comments.

Bug: 17000831
Change-Id: I3a87635a6a894ee8ad1386cde8b59dcd9533b23f
tyle/TtsSpan.java
969e7b949633baebd3f6090a60d622ee475a5b22 22-Jul-2014 Anish Athalye <aathalye@google.com> Add optimizing line breaker

Change-Id: I1eabc863e7f027c4c19a9ab23e561c774c721993
taticLayout.java
c8f9e6218681640d5f384c12edf06619be56a583 22-Jul-2014 Anish Athalye <aathalye@google.com> Implement line breaking in native code

The main purpose for this change is to prepare for adding support for
alternative line breaking algorithms (such as optimal line breaking).

The existing implementation of line breaking was intertwined with
measurement, so it wasn't structured in a way such that other line
breaking algorithms could be easily added. In addition to this,
algorithms (such as optimal line breaking) are usually fairly complex
and computation-intensive, so it is advantageous to implement them in
native code.

This has several other advantages:

* Unlike the Java code in the previous version of generate(), this
implementation separates line breaking from measurement. This
makes it easier to understand and modify the line breaking process
without affecting measurement (and vice versa).

* This native implementation of greedy line breaking is identical to
the Java version in terms of functionality, and it is similar in
terms of performance, depending on the use case. The performance
gains from this change are not significant due to increased JNI
overhead. However, this change is a step in the right direction in
terms of increasing performance. Once more code moves to C++,
there will be fewer JNI crossings per layout call and less data
will be passed from Java to C++, resulting in better performance.

This change moves line breaking from Java to native C++ code. Inspired
by the "Breaking Paragraphs into Lines" paper by Knuth and Plass (1981),
we express the line breaking problem in terms of 'box', 'glue', and
'penalty' primitives, along with a few others. Our implementation
differs in a couple ways:

* We do not want to clip text when words are wider than the view, so
we add a new primitive type to represent break opportunities
between letters. These breaks are avoided whenever possible, but
when single words do not fit on lines by themselves, they can be
broken so the entire word is visible.

* We have to support tab characters, along with user*specified tab
stops, so we add a new primitive type for that purpose.

* We are left*aligning text, and so we are not using shrinking /
stretching glue.

* We do not support hypenation, so we do not use penalties that have
widths.

Change-Id: Ia22d1d1275ef26ff3d7b41ee2658e4db525a0305
taticLayout.java
c56c9ee7185cfac3c649499a0205530faf88ee82 15-Aug-2014 Anish Athalye <aathalye@google.com> am c255033f: am 675f13bf: am 2f2e3797: Merge "Make LeadingMarginSpan2 behavior more consistent" into lmp-dev

* commit 'c255033f0a4b55f8d4279a9a5b283ed742a5e642':
Make LeadingMarginSpan2 behavior more consistent
ab08c6d38ab2e575f809ca8ce4c7f095e49d258c 08-Aug-2014 Anish Athalye <aathalye@google.com> Make LeadingMarginSpan2 behavior more consistent

This addresses b/16486549.

This change updates public documentation to specify the behavior of
LeadingMarginSpan2s. This change specifies what happens when a
LeadingMarginSpan2 is combined with other LeadingMarginSpans. This
behavior was not previously documented.

LeadingMarginSpan2s specify the number of lines used for the leading
margin. When laying out and rendering, for all LeadingMarginSpans, the
first line margin is applied for the number of lines specified by the
LeadingMarginSpan2.

Previously, this behavior was slightly buggy -- the LeadingMarginSpan2
affected all LeadingMarginSpans when laying out text, but not when
rendering.

This change is designed to cause the least amount of breakage in
existing code while achieving consistency with the way
LeadingMarginSpan2 is handled in layout and drawing.

For the most common use of LeadingMarginSpan2 -- getting a multi-line
first margin in the first paragraph of text in a layout -- this should
cause no change in behavior. For any other uses, the old (buggy)
implementation most likely did not exhibit correct behavior to begin
with, so developers were most likely not relying on that functionality.

Change-Id: I6f69df09c0130e703458e65bf3eaac4a905df56e
ayout.java
taticLayout.java
tyle/LeadingMarginSpan.java
4466a68ed0fe260e9d99fddd5c22013337d8778d 13-Aug-2014 Alan Viverette <alanv@google.com> am 8a3b0af1: am ae1970d9: am 48286f82: Merge "Add API for obtaining max text length for accessibility" into lmp-dev

* commit '8a3b0af14cf9f6b844f4cd78bd69677e10aa99d1':
Add API for obtaining max text length for accessibility
029942f77d05ed3d20256403652b220c83dad6e1 12-Aug-2014 Alan Viverette <alanv@google.com> Add API for obtaining max text length for accessibility

BUG: 16736956
Change-Id: I15ffb9bf68e074adf3e0dbcd230367e115c03e3c
nputFilter.java
46514a75e33e87d3461a502a5a0821c46b2783eb 07-Aug-2014 Anish Athalye <aathalye@google.com> Fix performance bug in layout

When processing text ending with a newline character, calling
MeasuredText#setPara() on the whole buffer is inefficient because the
call results in a copy of the entire buffer.

Change-Id: I6fa038d950f6287665bad3dc0070234c98bc8a7a
taticLayout.java
2a236a64664f7f04753733d857fec641c7c9db59 31-Jul-2014 Niels Egberts <nielse@google.com> Simplify generics, and make Builder concrete.

Change-Id: I3e14966527c254d2c15dddefc2ef60cdde30421f
tyle/TtsSpan.java
08b3516984850e04e9bb6feae29d691a7557191c 30-Jul-2014 Narayan Kamath <narayan@google.com> Switch TextUtils over to new ICU API.

.. and use Locale.getScript() instead of ICU.getScript.

bug: 15876704
Change-Id: Idf9462d8ef568dbc88c95e65a971184952e97872
extUtils.java
31e6b1445fc680f0ae79d1a71cf05d1cbaa0c0ec 30-Jul-2014 Narayan Kamath <narayan@google.com> Switch TextUtils over to new ICU API.

.. and use Locale.getScript() instead of ICU.getScript.

bug: 15876704

(cherry picked from commit 08b3516984850e04e9bb6feae29d691a7557191c)

Change-Id: Ifac179e0577d66062f32c95372b631bf574dfdf9
extUtils.java
c14b3ada5cccfdd872ccf72d928fb0088f3ce00d 25-Jul-2014 Anish Athalye <aathalye@google.com> Fix bug in measurement of paragraphs

This fixes b/16510772.

When measuring paragraphs, leading margins should be taken into account.
When computing line width, the margin should be added to the absolute
value of the extent (there were missing parenthesis). Both of these
caused views with leading margins to be rendered incorrectly.

Change-Id: I5029b2790a249192a858eb226d7b793d0622a70d
ayout.java
3b852e3489e995600fce19dfdbf3a5d769374d74 25-Jun-2014 Neil Fuller <nfuller@google.com> Rewriting android.text.format.Time without the native _tz functions

(cherry picked from commit d7f0849b8c053ccc6abf0dc7d5bc07da502782a4)
Bug: 15765976

Change-Id: I00f72bd1043ef20f22d25559206b2f741334ba9c
ormat/Time.java
ormat/TimeFormatter.java
d7f0849b8c053ccc6abf0dc7d5bc07da502782a4 25-Jun-2014 Neil Fuller <nfuller@google.com> Rewriting android.text.format.Time without the native _tz functions

Bug: 15765976
Change-Id: I666b72ecf9da8a9dcfb97cc503006b415909a558
ormat/Time.java
ormat/TimeFormatter.java
1d44e0ccecc44cf7f7852e559bf2f9a9aef66064 18-Jul-2014 Niels Egberts <nielse@google.com> New TtsSpan builders for money, electronic and telephone.

Change-Id: Idb6a66725395dbd665e17c00678901d54b4b1753
tyle/TtsSpan.java
5e413470e553a57d1267dbf1ee76c37e9a63b2d6 19-Jul-2014 Niels Egberts <nielse@google.com> Merge "Add money as a new TtsSpan type." into lmp-dev
b1a092c772e2799c02c4da8b7fc28e43b4119ae4 18-Jul-2014 Niels Egberts <nielse@google.com> Add money as a new TtsSpan type.

Added ARG_QUANTITY to decimal so money and measure can 'inherit' it.

Change-Id: I0f9f464d198a9875df4a01e8a5c95a3d19ed6f7f
tyle/TtsSpan.java
6e7c8995ddab2620c1a118b5e7a478e631d2bb24 17-Jul-2014 Niels Egberts <nielse@google.com> New TtsSpan builders for types measure, time, date, digits and verbatim.

Change-Id: I60022aa72c64f454261a0b69c21c45ce6351b9e7
tyle/TtsSpan.java
a896363400f09600fc2ef67b7e5ac702d110c8e9 17-Jul-2014 Niels Egberts <nielse@google.com> Add builders for TtsSpans of type ordinal, decimal and fraction.

Also document the possibility to give phone numbers in parts.

Change-Id: Ie1cdf56cc3b6c221c9410fb02dcba2568ea337b7
tyle/TtsSpan.java
36e08484abf1b9dbe26351276b6592be21eb7de4 25-Jun-2014 Niels Egberts <nielse@google.com> TtsSpan builders for each TtsSpan type. DO NOT MERGE

The reason for separate classes for each type, instead of a more flat
structure is to enable easy discovery of the available arguments that
can be set. For L we'll have about 12 types with 30 arguments and
almost all of the arguments are type specific. In future releases
we'll introduce more arguments. With editors that have code completion
one can construct a span without having to consult the documentation.

For now it only contains Text and Cardinal types.

Change-Id: I94531e600133d9f4f59a4170cceef1ee7a360ca7
(cherry picked from commit 90b095aabd8a5c43723821dda37354fd2beb38fb)
tyle/TtsSpan.java
ca7b0277d7721e5d531cb6abe3eb980d42891b7b 10-Jul-2014 Niels Egberts <nielse@google.com> New convenience method that takes a CharSequence and an Object as the
span that is applied to the appended text.

Change-Id: Ibdc4a71346e5691bcfe6af23f34beff69d642908
pannableStringBuilder.java
2e3f2c6727d92aa8127ff5adb83facc9d53a2b57 09-Jul-2014 Niels Egberts <nielse@google.com> Add more semiotic class types for TtsSpan.

Change-Id: I4c5f141f56d6ec679be59634693f591e3386f152
tyle/TtsSpan.java
4f4ead481270d48f0374c40e72a77619a4ac2873 23-Jun-2014 Niels Egberts <nielse@google.com> Add TtsSpan class.

The TtsSpan can be used to provide addtional data for TTS engines.

For now it only includes the types text and cardinals, but more will follow.

Change-Id: I31392dd413c0902ba4ce702fa3307253c90c618f
extUtils.java
tyle/TtsSpan.java
677490eac4a0c2695da3996971c4f4de88cdd8f9 02-Jul-2014 Anish Athalye <aathalye@google.com> Merge "Fix line breaking for clusters in narrow views"
9cd3bccdb23bfb06da8ac19a44b4216039699ff9 27-Jun-2014 Anish Athalye <aathalye@google.com> Fix line breaking for clusters in narrow views

Clusters were broken incorrectly when in narrow views (when the width of
the cluster was greater than the width of a view). Also, out() calls
were modifying fm, so clusters that were too wide were not positioned
correctly.

Change-Id: I521f8dc6338f5f1de6858af3f0c0bd320aa46bc0
taticLayout.java
cc32bd83e4d420c1adaeb3ea40f8986471e54590 20-May-2014 Sujith Ramakrishnan <sujithrk@google.com> Add support for mouse-based text selection.

Incorporate patch from Logitech (donated under AOSP license) to the
framework to add mouse-based text selection to ArrowKeyMovementMethod.

Bug: 14652753

Change-Id: Iab264bb954b72ccedfada763eba8f13ef37a4578
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
88b5b0be887fc5dc3b0b879b4179dde200d2e4d6 24-Jun-2014 Anish Athalye <aathalye@google.com> Implement line breaking using ICU break iterator

Change-Id: I4ad98757aa2eab5dbc2ae44c0391e900ef20c4d0
taticLayout.java
051910b9f998030dacb8a0722588cc715813fde1 16-Jun-2014 Raph Levien <raph@google.com> Clean up dirFlags / bidiFlags confusion

The dirFlags and bidiFlags enums are distinct, and have different
meanings. The former is a determined direction for a run of text, while
the latter is a request for the bidi algorithm. They have been used
interchangeably, and this has caused some problems, notably running the
bidi algorithm needlessly when the direction for a run is already
determined.

This patch cleans up the confusion, by always naming each occurrence
explicitly "boolean isRtl" or "int bidiFlags" (the previous code often
just used "int flags", which added to the confusion), and converts
between the meanings when a function takes an isRtl argument but passes
it to another function expecting bidiFlags.

Fixes b/15089607 Clean up bidi flag mess

Change-Id: I410b6604376e853dd12c255e7f5a9d2b9a310dd9
raphicsOperations.java
easuredText.java
pannableStringBuilder.java
extLine.java
97df96d8ebabd437db6a7691b8260bd51cf7f8d5 16-Jun-2014 Narayan Kamath <narayan@google.com> am 2ecc4dc8: am f36fe3f8: am 1083573c: Merge "Track changes to libcore ICU apis."

* commit '2ecc4dc88fc209f75f5dfe815d6a1fbb5fd49ef2':
Track changes to libcore ICU apis.
2ecc4dc88fc209f75f5dfe815d6a1fbb5fd49ef2 16-Jun-2014 Narayan Kamath <narayan@google.com> am f36fe3f8: am 1083573c: Merge "Track changes to libcore ICU apis."

* commit 'f36fe3f85daaf9e3b3270143d6648394768bb324':
Track changes to libcore ICU apis.
2c9d2005ecd592fd5b038a6379b5f174d9e65121 12-Jun-2014 Narayan Kamath <narayan@google.com> Track changes to libcore ICU apis.

All private APIs that earlier accepted Locale.toString
now accept Locale instances.

Change-Id: I80df88d0c928e921320b6545b1267adecefe64af
ormat/DateFormat.java
11abbdcb787f026002ba2886da82c988e37f4df6 12-Jun-2014 Jean Chalard <jchalard@google.com> am 7d8b87f0: Merge "Fix a CTS test" into lmp-preview-dev

* commit '7d8b87f0d9b35694099d5f57777d27f577496960':
Fix a CTS test
0a993100f98e0cacaf6281214e6b54be9cd1f9fc 11-Jun-2014 Jean Chalard <jchalard@google.com> Fix a CTS test

SpannableStringBuilder should throw an exception when the
parameters to #insert and related methods are in the wrong
order.
We'll have to reopen b/9570771 and deal with it separately.

Bug: 14965397
Change-Id: I01847e0010d23f98ad3def8ba030d36570528900
pannableStringBuilder.java
41a2c47e65a406534a2e4473da2f9ef35d0b04ce 11-Jun-2014 Justin Koh <justinkoh@google.com> am 44195b4f: am 42c53fd6: Merge "Catch OperationUnsupportedException when linkifying using WebView" into klp-modular-dev

* commit '44195b4f90d035533c879672891e7e169972d95d':
Catch OperationUnsupportedException when linkifying using WebView
44195b4f90d035533c879672891e7e169972d95d 10-Jun-2014 Justin Koh <justinkoh@google.com> am 42c53fd6: Merge "Catch OperationUnsupportedException when linkifying using WebView" into klp-modular-dev

* commit '42c53fd64641d3c2974b3b8f25a2c600f4c4dd7d':
Catch OperationUnsupportedException when linkifying using WebView
83955cb2604adefd40f5627ff46aee98c2c52e59 07-Jun-2014 Aaron Whyte <awhyte@google.com> Catch OperationUnsupportedException when linkifying using WebView

This fixes a CTS test for Wearable. We cannot check for FEATURE_WEBVIEW, because
there's no way to get a PackageManager from within these static methods.
Bug: 15131296

Change-Id: I7bf7564b6209f330a413ed54a94be1e07fedb30d
til/Linkify.java
df8427c32484dcdec25618cb6537c7280acad0fa 06-Jun-2014 Raph Levien <raph@google.com> Merge "Fix android.text.cts.TextUtilsTest#testRegionMatches"
b86b1027a3274dc13a1025ae8ad74157483f7f65 20-May-2014 Jeff Brown <jeffbrown@android.com> am 9777fdb7: am b0a7f84b: am 63bf04d8: Merge "Fix NullException in QwertyKeyListener.KeyDown"

* commit '9777fdb7af696ca15906d03ad8aa7a3d8d51e4b3':
Fix NullException in QwertyKeyListener.KeyDown
9777fdb7af696ca15906d03ad8aa7a3d8d51e4b3 20-May-2014 Jeff Brown <jeffbrown@android.com> am b0a7f84b: am 63bf04d8: Merge "Fix NullException in QwertyKeyListener.KeyDown"

* commit 'b0a7f84b6de20edc6337163a4a07e3c524991ddb':
Fix NullException in QwertyKeyListener.KeyDown
b0a7f84b6de20edc6337163a4a07e3c524991ddb 20-May-2014 Jeff Brown <jeffbrown@android.com> am 63bf04d8: Merge "Fix NullException in QwertyKeyListener.KeyDown"

* commit '63bf04d88bcc00876c30c9f2848da8c44b42185b':
Fix NullException in QwertyKeyListener.KeyDown
63bf04d88bcc00876c30c9f2848da8c44b42185b 20-May-2014 Jeff Brown <jeffbrown@android.com> Merge "Fix NullException in QwertyKeyListener.KeyDown"
8d2aa199774f50256617351bf9caaaef59d47c59 15-May-2014 Raph Levien <raph@google.com> Fix android.text.cts.TextUtilsTest#testRegionMatches

The CTS test expects an ArrayIndexOutOfBounds exception when passing in
an unreasonably large value for len. Since the actual implementation was
causing an integer overflow, we were getting a different exception.
Since integer overflow is potentially dangerous, this patch tests for it
and throws an exception explicitly.

Change-Id: I0420c06185d33d130853861d25d4f65b06fe0dfa
extUtils.java
1de6b101e5a6e5c539cca5d9d044f1a28094fae4 29-Apr-2014 Dianne Hackborn <hackbod@google.com> Merge "Implement better computing of battery drain time, actual charge time."
260c5020ae65ddd14668b8ae496c169082aa13f6 29-Apr-2014 Dianne Hackborn <hackbod@google.com> Implement better computing of battery drain time, actual charge time.

Also move time formatter in to framework for use elsewhere.

Change-Id: I42b6a44414b68754af65c522bef5591da5643909
ormat/Formatter.java
54dacbe7ca6d8a8c71d601fcf773e7b27eba3a53 29-Apr-2014 Yuling Liang <yulingliang@google.com> am 3914a33c: am 26a5c2dd: Merge "Followon fix for 14276128 Clipping at bottom of TextView" into klp-modular-dev

* commit '3914a33c01102f5de51e33d006c0aeedf2693af0':
Followon fix for 14276128 Clipping at bottom of TextView
d97b097a5b7a906e8d30c6d3b0f41c55650ce7a9 24-Apr-2014 Raph Levien <raph@google.com> Followon fix for 14276128 Clipping at bottom of TextView

The previous fix did not work when the text was ellipsized, because the
test for whether the line was the last line was incorrect. The new test
handles both the end of the buffer and the case where it is the last
line because of ellipsizing.

So this should be the proper fix for bug 14276128 Clipping at bottom of
TextView when lineSpacingMultiplier < 1

This version of the patch also handles the single-line case (which is
computed in BoringLayout rather than StaticLayout).

Change-Id: I88791acc2aa493cc8c599b374f4d213571260b4b
oringLayout.java
taticLayout.java
2be1f8c3f4d338c7b7c73bb642bc410ef27c8ee4 25-Apr-2014 Yuling Liang <yulingliang@google.com> am 69a9d925: am eea94f06: Merge "Revert "Followon fix for 14276128 Clipping at bottom of TextView"" into klp-modular-dev

* commit '69a9d92502428a4cf6eb6b5bf6577d9e525796a2':
Revert "Followon fix for 14276128 Clipping at bottom of TextView"
10973c777648a5893f9c668d2675061f359c223d 25-Apr-2014 Yuling Liang <yulingliang@google.com> Revert "Followon fix for 14276128 Clipping at bottom of TextView"

This reverts commit a10e19845ce76c0e4dd38018c84b83c9255dc9fe.

Change-Id: I6d40451c9eb6285859e16d251b55947663a3553a
taticLayout.java
ec2b7d6dd7caa8ad14de90c3d2da5a3f66f46050 25-Apr-2014 Yuling Liang <yulingliang@google.com> am 60f8349b: am 243e551a: Merge "Followon fix for 14276128 Clipping at bottom of TextView" into klp-modular-dev

* commit '60f8349b9819130e81e28106a35bf3362d337045':
Followon fix for 14276128 Clipping at bottom of TextView
a10e19845ce76c0e4dd38018c84b83c9255dc9fe 24-Apr-2014 Raph Levien <raph@google.com> Followon fix for 14276128 Clipping at bottom of TextView

The previous fix did not work when the text was ellipsized, because the
test for whether the line was the last line was incorrect. The new test
handles both the end of the buffer and the case where it is the last
line because of ellipsizing.

So this should be the proper fix for bug 14276128 Clipping at bottom of
TextView when lineSpacingMultiplier < 1

Change-Id: Iac5c96f2273142031c18a27f504f7d6d5fcf823e
taticLayout.java
79cb5505a97a0465fb849dc20dcaf3dd2f608c9f 24-Apr-2014 Raph Levien <raph@google.com> am 07bed492: am e4ee0e31: Merge "Fix bug 14276128 Clipping at bottom of TextView" into klp-modular-dev

* commit '07bed4921a05e717a4b7f10a25e3830e346426b7':
Fix bug 14276128 Clipping at bottom of TextView
936df680166bd0cd6146f1a0c8fa8ad9b807f794 24-Apr-2014 Raph Levien <raph@google.com> Fix bug 14276128 Clipping at bottom of TextView

Avoid applying "extra" linespacing to the last line of a layout, because
when that is negative, it causes clipping.

Change-Id: I4cc8792fd3444e4118604cc3d0f816d59dfc1e74
taticLayout.java
63b3d8c62ef24121f40b2262e89b3f37527beab3 04-Apr-2014 Raph Levien <raph@google.com> Fix extra text appearing after ellipsis

This is a fix for bug 7615701 TextView: calling setText with long
strings causes ellipsize to not work correctly. The problem is that the
"break" when the last line was ellipsized did not fully break out of
both loops of the processing logic, but only the inner loop. This
caused the outer loop to restart at the next span, causing the next span
boundary to overwrite the line end of the last visible line.

The fix simply returns from the function in that case, as there is no
further processing needing to be done.

Change-Id: I5b34233ffba6f0f6f1c12b9565b4fc53e83a4892
taticLayout.java
776abc24cdd18610232a50b997cce3cffa74609b 07-Mar-2014 Adam Lesinski <adamlesinski@google.com> Uses VMRuntime.newUnpaddedArray for ideal array sizes

Bug:13028925

Change-Id: I0a9301248b10a339afbdc5e4ffe3310ac4fa1fb7
ynamicLayout.java
tml.java
ayout.java
easuredText.java
ackedIntVector.java
ackedObjectVector.java
pannableStringBuilder.java
pannableStringInternal.java
taticLayout.java
extLine.java
extUtils.java
8a985d24ce9a38f40ed88fecbdcd0e75e3a68f44 25-Feb-2014 John Spurlock <jspurlock@google.com> Tabs -> spaces in frameworks/base.

Change-Id: I5a84e8e93ac99b5ed0212b37bf66efa5e53864be
tyle/BackgroundColorSpan.java
tyle/CharacterStyle.java
tyle/ForegroundColorSpan.java
tyle/MaskFilterSpan.java
tyle/MetricAffectingSpan.java
tyle/RasterizerSpan.java
tyle/RelativeSizeSpan.java
tyle/ScaleXSpan.java
tyle/StrikethroughSpan.java
tyle/StyleSpan.java
tyle/UnderlineSpan.java
84a3320507aa2948098c4964cea68b818f76ff88 13-Feb-2014 Jean Chalard <jchalard@google.com> Fix a crash where user data was not validated.

ExtractedText#partialStartOffset and #partialEndOffset are
from the app, that sets it as it sees fit. We need to
validate them so that we don't crash.
Still emit a warning if this is the case, as this is
not expected.

Bug: 9570771
Change-Id: Id9d6babd1620da39bf0e454b14d7ce716bd9d9d3
pannableStringBuilder.java
8eea3ea5591e59f55cbb4f6b2b7e9363a285ced3 04-Feb-2014 Alan Viverette <alanv@google.com> Add APIs for obtaining themed Drawable from Theme, Context

BUG: 12611005
Change-Id: Ic0057be4e4c2d0c61ce02a019b3f7d0625e3a016
tyle/ImageSpan.java
418312f44c3a69307526554b11e88679db529e3f 18-Dec-2013 Scott Main <smain@google.com> am 991ba3b7: am 74e9e698: am 7d1f8e65: am efe10233: am 5dcb75e6: Merge "fix typos bug: 11693951 bug: 12118617" into klp-docs

* commit '991ba3b7f2d7164fab956b54c711d5ea523b2ba5':
fix typos bug: 11693951 bug: 12118617
7d1f8e6570b8137dbe1e9007bb8496a0f6c3cb53 18-Dec-2013 Scott Main <smain@google.com> am efe10233: am 5dcb75e6: Merge "fix typos bug: 11693951 bug: 12118617" into klp-docs

* commit 'efe102332861bd05f0cba60e729661607546de34':
fix typos bug: 11693951 bug: 12118617
efe102332861bd05f0cba60e729661607546de34 18-Dec-2013 Scott Main <smain@google.com> am 5dcb75e6: Merge "fix typos bug: 11693951 bug: 12118617" into klp-docs

* commit '5dcb75e67b7a3401aa501126bc8401f78c181a68':
fix typos bug: 11693951 bug: 12118617
688342f98c4dd95846de02a9559758ec671f1a45 17-Dec-2013 Scott Main <smain@google.com> fix typos
bug: 11693951
bug: 12118617

Change-Id: I7a3ab4c6d7bc124ff9ed8779700e77c87409569d
ormat/Time.java
6090995951c6e2e4dcf38102f01793f8a94166e1 19-Nov-2013 John Spurlock <jspurlock@google.com> Remove unused imports from frameworks/base.

Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
tml.java
ormat/DateUtils.java
ethod/HideReturnsTransformationMethod.java
ethod/PasswordTransformationMethod.java
ethod/SingleLineTransformationMethod.java
tyle/DrawableMarginSpan.java
tyle/DynamicDrawableSpan.java
tyle/IconMarginSpan.java
tyle/LineHeightSpan.java
tyle/MetricAffectingSpan.java
e1ce53209a0a2f2d9b6e527eb5ace1ab2db648e1 13-Nov-2013 Jean Chalard <jchalard@google.com> am 9ea18d49: am d952ac4c: am 218ecd43: Fix the docs build

* commit '9ea18d495c4c3d47d279f3f63cb4a24641544f89':
Fix the docs build
9ea18d495c4c3d47d279f3f63cb4a24641544f89 13-Nov-2013 Jean Chalard <jchalard@google.com> am d952ac4c: am 218ecd43: Fix the docs build

* commit 'd952ac4c171780da78a157de73702d60d4737916':
Fix the docs build
f86e81c4ffd1488adae67d3e59e5f6d361f54c0f 11-Nov-2013 Jean Chalard <jchalard@google.com> [DO NOT MERGE] Improve documentation for InputType and EditorInfo.

Bug: 11245912
Change-Id: If00bb540f25b176da803af0e02fc1ce1b46537e1
nputType.java
218ecd43946001f07b60757db130ef5585d474d3 13-Nov-2013 Jean Chalard <jchalard@google.com> Fix the docs build

Change-Id: I05f1f39aaa9d72201a7fd06377799246039cd505
nputType.java
cfafb5059dc1532ccc764b38d5298022dac367b4 13-Nov-2013 Jean Chalard <jchalard@google.com> am 45637283: am 383ef79d: am 7d57b7a3: Merge "Improve documentation for InputType and EditorInfo." into klp-dev

* commit '4563728371520de38445d5758edd3da7538a1934':
Improve documentation for InputType and EditorInfo.
4563728371520de38445d5758edd3da7538a1934 13-Nov-2013 Jean Chalard <jchalard@google.com> am 383ef79d: am 7d57b7a3: Merge "Improve documentation for InputType and EditorInfo." into klp-dev

* commit '383ef79d14a64b335d94353e87e824ea2f37ee65':
Improve documentation for InputType and EditorInfo.
c1a11f17a2de18911317d235ff75fa17e098a962 11-Nov-2013 Jean Chalard <jchalard@google.com> Improve documentation for InputType and EditorInfo.

Bug: 11245912
Change-Id: Ie92ba20079461f7f0e30d969ba3692fec3a3b97f
nputType.java
6eb3a0e9ba7281bd85f63552206311d90ebb2805 01-Nov-2013 Victoria Lease <violets@google.com> am 24aecc3f: am 24a24b27: am ee4c8464: Merge "Handle surrogate pairs in Html.toHtml()" into klp-dev

* commit '24aecc3fb609ce999a7fef7a610891d5a32eb92c':
Handle surrogate pairs in Html.toHtml()
24aecc3fb609ce999a7fef7a610891d5a32eb92c 01-Nov-2013 Victoria Lease <violets@google.com> am 24a24b27: am ee4c8464: Merge "Handle surrogate pairs in Html.toHtml()" into klp-dev

* commit '24a24b27903785dedb507b11583b70975fe9f8e4':
Handle surrogate pairs in Html.toHtml()
3d4764159c78857bbd3305f4fa9c11c70e742d88 29-Oct-2013 Victoria Lease <violets@google.com> Handle surrogate pairs in Html.toHtml()

Bug: 11338711
Change-Id: Ia44187cbfe3db82d6bc11c1ae3a0fb59c0a6d371
tml.java
e986ffa8877aad651de9ebf7f74fd155b629a346 05-Oct-2013 Chet Haase <chet@google.com> am 280d250c: am 956b23f4: am a0364e23: Merge "Fix infinite recursion in hashcode of Spannables" into klp-dev

* commit '280d250c70db2c096f3639307235a4d62f0ca38f':
Fix infinite recursion in hashcode of Spannables
d0607035e33585d1b494a73348bdf9ff9339e82d 05-Oct-2013 Raph Levien <raph@google.com> am a488c796: am 2a32771a: am 24871f63: Merge "Fix Text appears on top of existing text when composing in gmail." into klp-dev

* commit 'a488c79605d0629986bb636bc2a2bc86f4947686':
Fix Text appears on top of existing text when composing in gmail.
280d250c70db2c096f3639307235a4d62f0ca38f 05-Oct-2013 Chet Haase <chet@google.com> am 956b23f4: am a0364e23: Merge "Fix infinite recursion in hashcode of Spannables" into klp-dev

* commit '956b23f4e3b9cac88ea4627bbe4783b165beec03':
Fix infinite recursion in hashcode of Spannables
a0364e23601db099b02fd280f91d2d3ecc2b0cc4 05-Oct-2013 Chet Haase <chet@google.com> Merge "Fix infinite recursion in hashcode of Spannables" into klp-dev
a488c79605d0629986bb636bc2a2bc86f4947686 05-Oct-2013 Raph Levien <raph@google.com> am 2a32771a: am 24871f63: Merge "Fix Text appears on top of existing text when composing in gmail." into klp-dev

* commit '2a32771ace5250ec919a08da688e2d6c91e5c132':
Fix Text appears on top of existing text when composing in gmail.
1d3c4b396a393515e738cb72782ef564362420fa 04-Oct-2013 Chet Haase <chet@google.com> Fix infinite recursion in hashcode of Spannables

An app created a SpannableStringBuilder, one of which's spans was the
instance of the string builder itself (that is, the builder contained a span
that was the builder). This caused infinite recursion in the hashcode()
method because it computes a hash from its fields, including all of its spans.

The fix detects the case where a span equals the current instance and
noops the computation on that span. A similar adjustment was made to equals()
to avoid the same recursion problem.

Issue #11051658 StackOverflowError in android.text.SpannableStringBuilder.hashCode

Change-Id: I742687ab32d81ac51c4b9135f698cf5e96a1d295
pannableStringBuilder.java
pannableStringInternal.java
63b3eb65234c8a8b9224c262442816cc429560ef 03-Oct-2013 Raph Levien <raph@google.com> Fix Text appears on top of existing text when composing in gmail.

Fix for bug 6473708. This patch changes from "last update wins" to
merging together the change regions, in the logic of deciding which
blocks need to be updated for painting, so that when there are multiple
changes batched for a draw, they're all taken into account.

Change-Id: I183d453c436125e5efec7031b4d61b43989653f9
ynamicLayout.java
0325fc366a3b89bb1e7b2101f1e50adc0365c652 21-Sep-2013 Raph Levien <raph@google.com> am 12618bf7: am 7c1b1087: Merge "Fix for "Can\'t place cursor after combining accent"" into klp-dev

* commit '12618bf7f58ec7a23c6e25db1eec41332727edf8':
Fix for "Can't place cursor after combining accent"
12618bf7f58ec7a23c6e25db1eec41332727edf8 21-Sep-2013 Raph Levien <raph@google.com> am 7c1b1087: Merge "Fix for "Can\'t place cursor after combining accent"" into klp-dev

* commit '7c1b10872f3d57b3afdb0f070fcf602e4d72df37':
Fix for "Can't place cursor after combining accent"
7c1b10872f3d57b3afdb0f070fcf602e4d72df37 21-Sep-2013 Raph Levien <raph@google.com> Merge "Fix for "Can't place cursor after combining accent"" into klp-dev
373b7a8d4e9dce4f71539d4dbcf627fd3e1a39da 21-Sep-2013 Raph Levien <raph@google.com> Fix for "Can't place cursor after combining accent"

This patch fixes behavior where attempting to place the cursor at
the end of a string where the last character is a combining accent
actually placed it before that accent. This was especially annoying
for editing Thai text, because it made it difficult to delete a
trailing tone mark.

Fixes bug 8947569 "Can't place cursor after combining accent" and bug
10398332 "[Thailand] Thai Language(IME) -- Can't delete Thai tone mark
while writing message"

Change-Id: Ida1933c8f0ab6cdb0200db39891e9389e4bdba86
ayout.java
d0bcf4b76b035ead3396ac446234a9e04e453781 20-Sep-2013 Chet Haase <chet@google.com> am 6736d380: am bdb61865: Merge "Add equals() and hashcode() to SpannableString" into klp-dev

* commit '6736d380b7d318f3af84294ae38a881e2dc54528':
Add equals() and hashcode() to SpannableString
6736d380b7d318f3af84294ae38a881e2dc54528 20-Sep-2013 Chet Haase <chet@google.com> am bdb61865: Merge "Add equals() and hashcode() to SpannableString" into klp-dev

* commit 'bdb6186580875982dd1a537b6c935922d0e62fe3':
Add equals() and hashcode() to SpannableString
9b985721dafaa28d1aa34499d23a83afc6d0a2fa 19-Sep-2013 Chet Haase <chet@google.com> Add equals() and hashcode() to SpannableString

ActionBar uses a transition to animate text changes. This transition
depends on testing the equality of start/end text values in CharSequence
objects. Without equals(), SpannableString will return false for objects
whose references are different, but whose text is exactly the same.

This CL adds the equals() method, and the accompanying hashcode method,
to ensure that two Spanned implementations will always be equal
if their text and span data are equal.

Issue #10760075 Wrong unread count in actionbar

Change-Id: I5e77d40dd302eca035e8c56d40f3cd0aef8e6424
pannableStringBuilder.java
pannableStringInternal.java
0a675ae85a2258908a6fdb0e05434b5135a9a64c 18-Sep-2013 Raph Levien <raph@google.com> am 954f0d7b: am ba1abbba: Merge "Revert "Revert "Take the input device into account for meta state""" into klp-dev

* commit '954f0d7b775b67c3ceeb7d3f646479fbc420fbd7':
Revert "Revert "Take the input device into account for meta state""
954f0d7b775b67c3ceeb7d3f646479fbc420fbd7 18-Sep-2013 Raph Levien <raph@google.com> am ba1abbba: Merge "Revert "Revert "Take the input device into account for meta state""" into klp-dev

* commit 'ba1abbba1f140f4be5956ade8ffd4ef4b3f9ffe0':
Revert "Revert "Take the input device into account for meta state""
14f10e5d5f51bc54ca2a45ee62d3cfb6debd3af0 18-Sep-2013 Raph Levien <raph@google.com> Revert "Revert "Take the input device into account for meta state""

This reverts commit 3954fd9a05232cb6f7fc52aa49a0b34c1539028a, which
is equivalent to re-applying 8a1597b39632956cdbcb6b76874ccca786047d4c.

The change ("Take the input device into account for meta state") was
valid but caused CTS test failures because the test was wrong. The
test injected a key event with the meta state missing. This faulty
test was masked by the old toggle behavior.
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/BaseMovementMethod.java
ethod/DialerKeyListener.java
ethod/MetaKeyKeyListener.java
ethod/NumberKeyListener.java
ethod/QwertyKeyListener.java
c4d7562a93a16f72b9d483857cd6799ec672a74e 18-Sep-2013 Raph Levien <raph@google.com> am 21b0c88b: am c540f8e9: Merge "Revert "Take the input device into account for meta state"" into klp-dev

* commit '21b0c88b3c290141f9a7593bb249ab117af48b91':
Revert "Take the input device into account for meta state"
21b0c88b3c290141f9a7593bb249ab117af48b91 18-Sep-2013 Raph Levien <raph@google.com> am c540f8e9: Merge "Revert "Take the input device into account for meta state"" into klp-dev

* commit 'c540f8e9d704414a06f7a5b4ade1c713042f8c38':
Revert "Take the input device into account for meta state"
3954fd9a05232cb6f7fc52aa49a0b34c1539028a 17-Sep-2013 Raph Levien <raph@google.com> Revert "Take the input device into account for meta state"

This reverts commit 8a1597b39632956cdbcb6b76874ccca786047d4c. That
commit broke some of the handling of meta state, which in turn caused
CTS test failures, notably bug 10210151 (CTS:
android.text.method.cts.BaseKeyListenerTest#testBackspace_withSendKeys
is failing on KLP).

So this revert fixes those test failures, but leaves bug 8303489
(Pressing shift on the hardware keyboard messes with unrelated
keypresses, including virtual ones) still present. We'll plan to
address that in a future release.

Change-Id: Iea42c643b6d08f33cbd2ed1747e8de3b5f8116a6
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/BaseMovementMethod.java
ethod/DialerKeyListener.java
ethod/MetaKeyKeyListener.java
ethod/NumberKeyListener.java
ethod/QwertyKeyListener.java
e631c9ff2ea2838abf7bffb2332fbed3d35b85de 13-Sep-2013 Raph Levien <raph@google.com> am dcb2c68f: am 7558ec40: Merge "Fix for AIOBE at android.text.AndroidBidi.directions" into klp-dev

* commit 'dcb2c68fd145ab6812a49da30731d6cde2f16cd1':
Fix for AIOBE at android.text.AndroidBidi.directions
dcb2c68fd145ab6812a49da30731d6cde2f16cd1 13-Sep-2013 Raph Levien <raph@google.com> am 7558ec40: Merge "Fix for AIOBE at android.text.AndroidBidi.directions" into klp-dev

* commit '7558ec405f67b59afbf6089d13928cfdb2f950ff':
Fix for AIOBE at android.text.AndroidBidi.directions
68669a42fb78682945a9974e50d18cd86fee9607 12-Sep-2013 Raph Levien <raph@google.com> Fix for AIOBE at android.text.AndroidBidi.directions

This fixes bug 9900288: Multiple apps crashing; AIOBE at
android.text.AndroidBidi.directions.

The AndroidBidi.directions() method was not correctly handling the case
of a run of length 0, causing ArrayIndexOutOfBoundsException. This
patch simply avoids accessing the levels array in that case.

Change-Id: I036a85b7792ea3364725a87033ca74b94f0e93a1
ndroidBidi.java
617feb99a06e7ffb3894e86a286bf30e085f321a 10-Sep-2013 Alan Viverette <alanv@google.com> Add View constructor that supplies a default style resource

Also updates the constructor of every class that extends View.

BUG: 10676369
Change-Id: Ifaf27bf82028d180afa4931c0e906df88d858ac3
tyle/SuggestionSpan.java
61dbdabaf71bd7b9eb25b587b1faeb10fd1da527 30-Aug-2013 Brian Carlstrom <bdc@google.com> am 98c9491f: am 39e885dc: Merge "Make MeasuredText.sCached field final"

* commit '98c9491f4d0854c4ba2de2071dee2548d572e6d0':
Make MeasuredText.sCached field final
d4f4526cb4bfa343714dbb63b82c82798db5a4e0 28-Aug-2013 Brian Carlstrom <bdc@google.com> Make MeasuredText.sCached field final

Change-Id: Id3be64c48be1bcf55ac1a4b00b76a40861bf2f61
easuredText.java
f9818d33f94686ee9c80697ec79ef557a7b77176 16-Aug-2013 Elliott Hughes <enh@google.com> Fix NPE in DateFormat.is24HourFormat.

In some cases, we end up being called by code that doesn't have a valid
Context. It got away with this historically because it wasn't formatting
times (just dates), so it never went down a path that tried to query the
user's 12/24-hour preference. This patch just ensures that we don't try
to get the preference unless we actually need it.

Bug: 10339015

(cherry picked from commit 8d8ef00c8276200f108433922761401817fd9a50)

Change-Id: If074a67fa52943c0ec7bb5c5bbe5a11f54fb1f97
ormat/DateUtils.java
ae73645241ff0627ed924a8395b83aa59dc326ea 16-Aug-2013 Elliott Hughes <enh@google.com> am 2a8be3cf: am ecdf20d4: Merge "Fix NPE in DateFormat.is24HourFormat."

* commit '2a8be3cf5ebabbbb0c42d946f28cfe33d5653be6':
Fix NPE in DateFormat.is24HourFormat.
8d8ef00c8276200f108433922761401817fd9a50 16-Aug-2013 Elliott Hughes <enh@google.com> Fix NPE in DateFormat.is24HourFormat.

In some cases, we end up being called by code that doesn't have a valid
Context. It got away with this historically because it wasn't formatting
times (just dates), so it never went down a path that tried to query the
user's 12/24-hour preference. This patch just ensures that we don't try
to get the preference unless we actually need it.

Bug: 10339015
Change-Id: I2df466d85cdeba14dbf882498808cbad9bbb57f4
ormat/DateUtils.java
2fe5e27db849bca2d69af28c1f3acd985772fe70 15-Aug-2013 Elliott Hughes <enh@google.com> am 8a196065: am 82461951: Merge "DateUtils should use the user\'s 12/24-hour preference, not the locale\'s."

* commit '8a196065992a6b2df690467075ef644131465d76':
DateUtils should use the user's 12/24-hour preference, not the locale's.
12285f3d9f756226c13ef93054b87e0d487e1409 15-Aug-2013 Elliott Hughes <enh@google.com> DateUtils should use the user's 12/24-hour preference, not the locale's.

Bug: 10312832

(cherry picked from commit f0b79aeed36f0839e4effaa36893b7ca71292563)

Change-Id: I0d78725d47009553f9003ccfba06f70f178a6ec1
ormat/DateUtils.java
f0b79aeed36f0839e4effaa36893b7ca71292563 15-Aug-2013 Elliott Hughes <enh@google.com> DateUtils should use the user's 12/24-hour preference, not the locale's.

Bug: 10312832
Change-Id: If23c124cf8442988de5feccb6f2c40b808a2eb89
ormat/DateUtils.java
d8415f4bf061000b049143b4f48b96b2005450bb 08-Aug-2013 Amith Yamasani <yamasani@google.com> Developer option to force RTL layout

Make sure screen layout changes are taken into account in Configuration diffs.
Initialize the SystemProperty from Global settings on startup of
ActivityManagerService.

TextUtils checks the override flag to decide if the default layout direction
should be forced to RTL.

Bug: 10244047
Change-Id: I23a2583d790a355060d0d898ba44e5f7dc896b46
extUtils.java
89a8250e242ee1d0b5b853154723b448d732b356 03-Aug-2013 Elliott Hughes <enh@google.com> am 710f3e2c: am 60ae2617: Merge "If frameworks wants ASCII casing, it should explicity ask for it."

* commit '710f3e2cc6bc2cdc2f2cddb2190823ea31efd52a':
If frameworks wants ASCII casing, it should explicity ask for it.
cb64d430627b71221c588ef5f23599dd34a89ee9 02-Aug-2013 Elliott Hughes <enh@google.com> If frameworks wants ASCII casing, it should explicity ask for it.

http://elliotth.blogspot.com/2012/01/beware-convenience-methods.html

Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Iaab02e718a7be7bda22e626dca05d79bfd2a8fc4
til/Linkify.java
efaad3e2c6b74b754b7626fa5d4f9de17a544ac6 25-Jul-2013 Elliott Hughes <enh@google.com> resolved conflicts for merge of a35ec14f to master

Change-Id: Ib2eb18fe6df2e404d0bf739b300fc200ca81f539
6139e64cd6f86c4e3983de976cb0aa976b0d313c 24-Jul-2013 Elliott Hughes <enh@google.com> Switch DateUtils.formatDateRange over to an icu4c-based implementation.

Bug: 7289514
Change-Id: Ia382f49aa23737bde91b7891d95545da084ec57c
ormat/DateUtils.java
ff4ea7987714dad4f4d9065902f0ac5fd61833fd 20-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #9073962 - Carret is still on the left with an empty EditText in Arabic Locale"
e631889e1ae7edc6a2fae495ba504f85820b6a4b 19-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #9073962 - Carret is still on the left with an empty EditText in Arabic Locale

- fix StaticLayout special case with empty string or new line

Change-Id: Icb51feedce49db661ed17b6907eb0db83d0b763c
taticLayout.java
2887271ff3b59cc4bc0925ef08cea190a0017462 18-Jun-2013 Scott Main <smain@google.com> am 8303a203: am 94ba190e: am de04dfb6: Merge "some extra docs for TextDirectionHeuristic" into jb-mr2-dev

* commit '8303a2036efd93eecda6da1e481e1659a40ca12e':
some extra docs for TextDirectionHeuristic
8303a2036efd93eecda6da1e481e1659a40ca12e 18-Jun-2013 Scott Main <smain@google.com> am 94ba190e: am de04dfb6: Merge "some extra docs for TextDirectionHeuristic" into jb-mr2-dev

* commit '94ba190ebbd4fe7f8933d531cce7b4be8e04f287':
some extra docs for TextDirectionHeuristic
e442662330c972aa96986e6f09305be836b6a7f4 23-May-2013 Scott Main <smain@google.com> some extra docs for TextDirectionHeuristic

Change-Id: I8ceac72a76a29bde0e25ed418110a6e4120654e3
idiFormatter.java
extDirectionHeuristics.java
f0542ee466372a29ebaa3c1ea1f362c353a28f4a 17-Jun-2013 Elliott Hughes <enh@google.com> am 704dfbfe: am 48fa06f3: am f6a67139: Merge "Correct Date format for el_GR, sv_SE and tr_TR locales"

* commit '704dfbfec40b4a51000e244a98e8723bb00ba321':
Correct Date format for el_GR, sv_SE and tr_TR locales
48fa06f34fe3098fd820b97d9d28c9f27f8591de 17-Jun-2013 Elliott Hughes <enh@google.com> am f6a67139: Merge "Correct Date format for el_GR, sv_SE and tr_TR locales"

* commit 'f6a671394ca3d269835d5f5b882b46f9539e9a96':
Correct Date format for el_GR, sv_SE and tr_TR locales
5ad2451f9fcce650b018af4bb3eb3252606d9150 16-Jun-2013 howardb <android@howardb.com> Correct Date format for el_GR, sv_SE and tr_TR locales

Amend DateFormat.getDateFormat to CLDR data from icu4c
instead of locale specific resource entries which are incorrect
for several locales.

No CTS tests are added as they require changing the locale which
is not currently possible.

Bug: https://code.google.com/p/android/issues/detail?id=56385

Change-Id: Ibd11c7fd9b595e19a3e2bf508e1585aa50067e03
Signed-off-by: howardb <android@howardb.com>
ormat/DateFormat.java
5d0db65e734b8d3ee1cef5a51b327bb4f12cb5b0 15-May-2013 Raph Levien <raph@google.com> am 38272ad2: am 21403857: Merge "Fix for bug 8911390 RTL text alignment is changed ..." into jb-mr2-dev

* commit '38272ad2b1d3ab90c83fcd74139503fcd3148a19':
Fix for bug 8911390 RTL text alignment is changed ...
38272ad2b1d3ab90c83fcd74139503fcd3148a19 15-May-2013 Raph Levien <raph@google.com> am 21403857: Merge "Fix for bug 8911390 RTL text alignment is changed ..." into jb-mr2-dev

* commit '214038571992a4ba65531297bf4a89af9a0b5fd4':
Fix for bug 8911390 RTL text alignment is changed ...
01524651cb8f7b97a310bd262f4c792e860e140f 14-May-2013 Raph Levien <raph@google.com> Fix for bug 8911390 RTL text alignment is changed ...

The predicate for detecting whether text was right aligned was missing
some cases - it was correctly sensing RIGHT or OPPOSITE aligned text
in the LTR case, but was missing NORMAL for rtl. This patch just adds
that case.

Change-Id: I06691e7122e1ca91d66299cf0d7ef1f8a476a44b
ethod/Touch.java
176498b5eab5bf0702fb5ce08bcbc6683d113e92 07-May-2013 Victoria Lease <violets@google.com> Merge "enable selection of Linkify-annotated text"
ba8d2e58f83971841dc125e73c6a194341150534 30-Apr-2013 Elliott Hughes <enh@google.com> am c2639e58: am 0bb4c701: Merge "Use ICU for getDateFormatOrder."

* commit 'c2639e58fa5724c06a1d910ad76aebed647b4ba2':
Use ICU for getDateFormatOrder.
c2639e58fa5724c06a1d910ad76aebed647b4ba2 30-Apr-2013 Elliott Hughes <enh@google.com> am 0bb4c701: Merge "Use ICU for getDateFormatOrder."

* commit '0bb4c701bab0f69172417b7a511acb6bdfa052db':
Use ICU for getDateFormatOrder.
edd6f9e688698da4f6ba9da5e56a5546f9162200 30-Apr-2013 Elliott Hughes <enh@google.com> Use ICU for getDateFormatOrder.

Bug: 7207103
Change-Id: I680bb727cb74cd4b050f237f036d9e696201fc0b
ormat/DateFormat.java
cd0b01327bd80dc3306ffb28a4cefd5ca20c50b4 29-Apr-2013 Victoria Lease <violets@google.com> enable selection of Linkify-annotated text

Bug: 8515643
Change-Id: I74e8b9e45e2645ec6287abd1cd6e47d383c4f3e0
ethod/LinkMovementMethod.java
16cea16570d34d5d5a417616b4edbc2cb41a140a 21-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> am b241f60f: am c3d0a81a: Merge "Fix bug #8656546 API REVIEW: android.text.bidi / android.text" into jb-mr2-dev

* commit 'b241f60fe76677d106d472d4118d1e6959563331':
Fix bug #8656546 API REVIEW: android.text.bidi / android.text
a5d34593166bf840f45102b9ab6b677e46dfefee 21-Apr-2013 Victoria Lease <violets@google.com> am 7e170b63: am bcf3ec96: Merge "do not attempt to parcel unknown ParcelableSpans" into jb-mr2-dev

* commit '7e170b632147da55f93864223419a9f7fa651410':
do not attempt to parcel unknown ParcelableSpans
8c08fc9a86b28c54968bde2dcbb46d744f1b6201 20-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #8656546 API REVIEW: android.text.bidi / android.text

- clean BidiFormatter APIs

Change-Id: I8591ce3c3e8f2de4138698aa14ddb38b933de5e1
idiFormatter.java
idi/BidiFormatter.java
577ba5354bf5a2899021e385ac9ca3cc07d35a60 19-Apr-2013 Victoria Lease <violets@google.com> do not attempt to parcel unknown ParcelableSpans

Bug: 8639983
Change-Id: I27335f6e9d3a0671ecdd161fdbf765785ef8065d
extUtils.java
98c8c890aa49d1e4d2e32b3c3f08220f3077e715 12-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> am 4febbf35: am bd286426: Merge "Fix bug #8599905 Add simple BidiFormatter getInstance() helper API" into jb-mr2-dev

* commit '4febbf35011ecb30796c78cf3e159ef781564f45':
Fix bug #8599905 Add simple BidiFormatter getInstance() helper API
cd5af79bf96912f996397d0c06ceb02d11390238 12-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #8599905 Add simple BidiFormatter getInstance() helper API

Change-Id: I85ff074904025c724409ccc52bc82a1fd23803de
idi/BidiFormatter.java
9bd94043837d40efe874df1f9b3ca66e192ed3d1 04-Apr-2013 Victoria Lease <violets@google.com> am 1e2c967b: am 8712e4cc: Merge "use libphonenumber for Linkify.PHONE_NUMBER" into jb-mr2-dev

* commit '1e2c967b16afc0750d9d00fbaed8e2175937e1f4':
use libphonenumber for Linkify.PHONE_NUMBER
8712e4cc4a08f9d54013e96cc2420637c2114f08 04-Apr-2013 Victoria Lease <violets@google.com> Merge "use libphonenumber for Linkify.PHONE_NUMBER" into jb-mr2-dev
430fc97e7e5ac286aac0b7298f1b8361ad299586 01-Apr-2013 Victoria Lease <violets@google.com> use libphonenumber for Linkify.PHONE_NUMBER

This commit replaces a regex pattern match for Linkify.PHONE_NUMBER
with a call to libphonenumber's PhoneNumberUtil.findNumbers().

Bug: 5533245
Change-Id: I0e0563b241fb62e77d7f49e4a8484c6b0685dd8f
til/Linkify.java
435d11205aac9948fa6c2307ccb7f3d3420177a1 02-Apr-2013 Elliott Hughes <enh@google.com> am 11139563: am dbca824d: Merge "Add DateFormat.getBestDateTimePattern." into jb-mr2-dev

* commit '1113956349e25bd081590842ec6f6b300765d786':
Add DateFormat.getBestDateTimePattern.
031b581af2a14e9f957e511548b3da41152b2634 02-Apr-2013 Elliott Hughes <enh@google.com> Add DateFormat.getBestDateTimePattern.

Bug: 8283323
Change-Id: Id8d94456b93555d799229b7dd88fcbcf5c6bf7ff
ormat/DateFormat.java
85973db79d9ce67fcb0a086fc8649db99da55d11 29-Mar-2013 Raph Levien <raph@google.com> am 0a914107: am 8fed6bc8: Merge "Make zero width space a line breaker" into jb-mr2-dev

* commit '0a914107205981a8baa079736c959ea9abedbf50':
Make zero width space a line breaker
8fed6bc894a993a195ebcb8e8772b725cd828f0d 29-Mar-2013 Raph Levien <raph@google.com> Merge "Make zero width space a line breaker" into jb-mr2-dev
8d087c349f0a3b7946a95869562f020892d47a86 29-Mar-2013 Raph Levien <raph@google.com> Make zero width space a line breaker

This patch makes ZWSP (U+200B, zero width space) a potential line break
in text layouts. This is a fix for bug 8501809.

Change-Id: I18c1f8464e6c821ff75f819141bacc714a878700
taticLayout.java
4818dbab51782dd4dd8bd5c8aa3da3afef39e54a 27-Mar-2013 Elliott Hughes <enh@google.com> am 08dbf6a8: am 82718153: am 6f14ef70: am 083bfa5a: Merge "Remove dead DateUtils code that was never in an API level."

* commit '08dbf6a88a95771465a3b16c7a1925f36465ed1d':
Remove dead DateUtils code that was never in an API level.
827181538c5c1387d18b9ad5a257295c7dfff686 27-Mar-2013 Elliott Hughes <enh@google.com> am 6f14ef70: am 083bfa5a: Merge "Remove dead DateUtils code that was never in an API level."

* commit '6f14ef70664d13295ffca524fb0b08365351b1f7':
Remove dead DateUtils code that was never in an API level.
fbf37c79bdedbdd7b82ad7d5862dd82e3c068590 26-Mar-2013 Elliott Hughes <enh@google.com> Remove dead DateUtils code that was never in an API level.

Also rewrite @deprecated comments to use an initial capital so they
look right in the generated documentation.

Also improve formatIpAddress documentation.

Change-Id: I317ebe411ef76e16a4535318ce73e00b63af38da
ormat/DateUtils.java
ormat/Formatter.java
3807312e9b4a8022f370ad7c09604c6379f567a0 20-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> am 0bcec06b: am 19eceaad: Merge "Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies" into jb-mr2-dev

* commit '0bcec06b24e7bc67ab4922f6bb18e6bc7737ba69':
Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies
19eceaadd764ca84f386300aafd9a31c270886e9 20-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies" into jb-mr2-dev
665f02c66702b77db25e950ff433230186bc3243 20-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies

- remove the ICU related methods and update the methods using the "reserved" argument
- update to CTS in another CL too

Change-Id: I5509736568c342d9d17bfeafc17951117ab5d3cc
raphicsOperations.java
pannableStringBuilder.java
a25731f87d3525e5be687353ea47925b173237b3 19-Mar-2013 Elliott Hughes <enh@google.com> am 96112802: am 80828f46: am c1562075: am ebebb80b: Merge "Remove dead code from DateUtils."

* commit '96112802bc1f37e2f5c75c53b919231a61866bd2':
Remove dead code from DateUtils.
80828f465aea8cb34928c1467ac518e33bcca1b9 19-Mar-2013 Elliott Hughes <enh@google.com> am c1562075: am ebebb80b: Merge "Remove dead code from DateUtils."

* commit 'c1562075b0be58fa9dd09c2f2e9fa45601088574':
Remove dead code from DateUtils.
9a6fa1d637ddd1be0978d6889270bcd7dad4e46a 19-Mar-2013 Elliott Hughes <enh@google.com> Remove dead code from DateUtils.

This stuff is @hide, @deprecated, unused, and was never in any API level.

Change-Id: I87d132d77d7296a2de8527e05c2def362cab1c37
ormat/DateUtils.java
d81830d67ee77813474ce2f19bb4df9d20bd3fa9 19-Mar-2013 Elliott Hughes <enh@google.com> am 110a98b6: am f7c01e5a: am eda35cb7: am a8974d3f: Merge "Clean up (some of) our many clocks to use H instead of k."

* commit '110a98b67285ec213720c542e6fb4711d9fd3114':
Clean up (some of) our many clocks to use H instead of k.
182af50b2c65f5a84f7a18d98bdf85e69688caf9 19-Mar-2013 Elliott Hughes <enh@google.com> am 561a0ef4: am c3e513e5: am c5c6d416: am 6317315e: Merge "Deliberately break DateFormat.format\'s formatting of \'k\' for compatibility."

* commit '561a0ef4bf4153960d5796cd74d6cc9c8405843d':
Deliberately break DateFormat.format's formatting of 'k' for compatibility.
f7c01e5a8a4e7e3032dd03a3705f6894312e9b5f 19-Mar-2013 Elliott Hughes <enh@google.com> am eda35cb7: am a8974d3f: Merge "Clean up (some of) our many clocks to use H instead of k."

* commit 'eda35cb7c5781a32b038f1ef76b8e50f26f9bfaf':
Clean up (some of) our many clocks to use H instead of k.
c3e513e51caad56a30186d9e20a814dcc53e72ef 19-Mar-2013 Elliott Hughes <enh@google.com> am c5c6d416: am 6317315e: Merge "Deliberately break DateFormat.format\'s formatting of \'k\' for compatibility."

* commit 'c5c6d4167b66c79652c5208a2dfe091a8c735e6d':
Deliberately break DateFormat.format's formatting of 'k' for compatibility.
cdafd37f3148dfc6f44f2e5de8b31adb6bf9e476 19-Mar-2013 Elliott Hughes <enh@google.com> Clean up (some of) our many clocks to use H instead of k.

Bug: 8359981
Change-Id: I3c0c38c2bf5adc4b5bdc11c3d10cf41dd8fb6462
ormat/DateFormat.java
fc55c2ba49957bb696b98d290964dc36f4827190 18-Mar-2013 Elliott Hughes <enh@google.com> Deliberately break DateFormat.format's formatting of 'k' for compatibility.

Bug: 8359981
Change-Id: I44ed816c644f94783c77952d544c5444b966868b
ormat/DateFormat.java
f72b5c920aa47d94310a8cdd658e5255712b7293 15-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> am cf60cc9a: am 261f82ca: Merge "Revert "Clean Paint.mBidiFlags as it is no longer used"" into jb-mr2-dev

* commit 'cf60cc9adedf032c6c97cd2cbb9ff211deaaf3ae':
Revert "Clean Paint.mBidiFlags as it is no longer used"
261f82ca996a4b192b56350dd2eda6016f9d5203 15-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Revert "Clean Paint.mBidiFlags as it is no longer used"" into jb-mr2-dev
da12f389eb4be0c08ca3fa9ca7663f4977858df5 15-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> Revert "Clean Paint.mBidiFlags as it is no longer used"

This reverts commit 6d9fe5bd22b531bfce69b146254a4791c76acddc.
raphicsOperations.java
easuredText.java
pannableStringBuilder.java
extLine.java
14506d8b734c42f8851de2b9772dbf2c2d1f6fd6 14-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> am fc8865d8: am b1b58023: Merge "Code BidiFormatter code" into jb-mr2-dev

* commit 'fc8865d8ccb22797dc571055c463f871bdf80665':
Code BidiFormatter code
9889d559f3b0500a16d89b8831837c415adcc98b 14-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> Code BidiFormatter code

- use standard variables naming convention

Change-Id: Ic99ba5382809d1afc3bcc1527610e291fc21884f
idi/BidiFormatter.java
8a1597b39632956cdbcb6b76874ccca786047d4c 05-Mar-2013 Jean Chalard <jchalard@google.com> Take the input device into account for meta state

Interesting nits about this:
- getMetaState(long) and getMetaState(long, int) do not
seem to be used anywhere in the framework. Maybe we
want to skip adding getMetaState(long, KeyEvent) and
getMetaState(long, int, KeyEvent).
- getMetaState(CharSequence, int) is used extensively
throughout the code. In some places, a KeyEvent is
available and should be considered - this change does
implement this. In many other cases, there is no
relevant KeyEvent for this action (for example,
Editor#extractTextInternal). In these cases, the
behavior is affected by the current latch state, so
it's fine to leave them as is.

Bug: 8303489

Change-Id: I4a948c497c49e48f83ba1048520e7fe5bfe84727
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/BaseMovementMethod.java
ethod/DialerKeyListener.java
ethod/MetaKeyKeyListener.java
ethod/NumberKeyListener.java
ethod/QwertyKeyListener.java
5fbbf2318fd67cd563209ac1dc560867c4df7d18 12-Mar-2013 Jean Chalard <jchalard@google.com> Merge "Preparatory cleanups in MetaKeyKeyListener"
7b517a5c796f4c1120533c62686f7912ebfb2ef8 11-Mar-2013 Elliott Hughes <enh@google.com> am a45bafc2: am c9e0cd2a: Merge "Fix DateFormat k and h, and implement K and H for the first time."

* commit 'a45bafc2f025d2ef513f3e3dcac162ba6a95d575':
Fix DateFormat k and h, and implement K and H for the first time.
7a89f62877a03d249d9e7d0562058b973d747c49 11-Mar-2013 Elliott Hughes <enh@google.com> Fix DateFormat k and h, and implement K and H for the first time.

Bug: 8359981
Change-Id: I52ef937a77e9e28f2719c2ee6f59e4b74514f0b2
ormat/DateFormat.java
a31d507e3fbd8cfa85861714beeb977b4e573b18 11-Mar-2013 Elliott Hughes <enh@google.com> am 7c1e8dbd: am 21d3f294: Merge "use Calendar in DateUtils format method"

* commit '7c1e8dbd3159c88df27d24aa2699358ee139d49b':
use Calendar in DateUtils format method
9a2ada418b0a53cb10e009398116ff8cd914d71e 28-Feb-2013 Sungmin Choi <sungmin.choi@lge.com> use Calendar in DateUtils format method

The DatePickerDialog is using DateUtils to format the dialog's title
and the DateUtils class does not work with dates outside to the
specified range.
For example, if user selects 2038-03-07, DatePickerDialog shows
1902-01-30 on Title.
The reason for the DateUtils class not being able to format dates
outside the range of 1902 and 2036 is because internally it is using
the Time class which does not support such dates.
To fix it, use Calendar class in DataUilts format method.

Steps to reproduce:
1. Settings -> Date & time
2. uncheck Automatic date & time
3. Set Date
4. choose any date before 1902 or after 2037
5. update wrong date on Title

Bug: https://code.google.com/p/android/issues/detail?id=13050
Change-Id: I003266765751b5c340426af84daef271f39f771e
ormat/DateUtils.java
d6875e3334899be84b98d0fd32efff1f1b5775da 09-Mar-2013 Elliott Hughes <enh@google.com> am 2cb314eb: am e0cd3c19: Merge "Improve DateFormat.format."

* commit '2cb314ebc7bb6495a94f577dfb57f9e6c56033ef':
Improve DateFormat.format.
8326b9a429b63b680aa9af116c670ce674744d80 09-Mar-2013 Elliott Hughes <enh@google.com> Improve DateFormat.format.

Add support for the 'c' format character, required in many non-English locales.
Reimplement 'c' and 'E', and 'L' and 'M', so they correctly interpret 5-count
pattern characters.

Replace the old incorrect class documentation with a pointer to the
well-maintained libcore equivalent and the Unicode UTS to which these two
implementations are supposed to conform.

Deprecate the useless constants for pattern characters. No one sane is going
to write MONTH + MONTH + MONTH + MONTH instead of "MMMM".

Correct the documentation for getLongDateFormat and getMediumDateFormat.

Also fix DateUtils.getStandaloneMonthString for LENGTH_SHORTEST.

Tests are in https://android-review.googlesource.com/53291.

Change-Id: I4dda8b18070f05ccdc11c1f0a9381a9d233db4e8
ormat/DateFormat.java
ormat/DateUtils.java
b3a5c23b3a7a55bea7ef0d2cfb15b566809c6dca 08-Mar-2013 Elliott Hughes <enh@google.com> am ac071e36: am 0c25ecfd: Merge "Use getRelativeDayString in getRelativeTimeSpanString."

* commit 'ac071e36aecd47a453641074e81c5ebcf888dd82':
Use getRelativeDayString in getRelativeTimeSpanString.
5acc6e521494f1ea21c793d0b56667dae107a1be 08-Mar-2013 Elliott Hughes <enh@google.com> Use getRelativeDayString in getRelativeTimeSpanString.

The bug we're fixing here is that languages that don't
distinguish the "one" case grammatically (such as Japanese)
would say the equivalent of "In 1 day" rather than "Tomorrow"
because of the misuse of getQuantityString.

This has the side-effect of switching us over to the CLDR
strings for relative day names, which have consistent capitalization;
the Android donottranslate-cldr.xml strings varied even within
a language, so although this is a change, it seems like a step
in the right direction.

In a future change, we should actually push all relative
day formatting down into icu4c.

Bug: 7098707
Change-Id: Ia2f9af3d18c441d6093dd5da7956a3d0130e5b06
ormat/DateUtils.java
f9bd5f69e2b540bbd3187fe1d7c7ca33f77f0cd9 05-Mar-2013 Jean Chalard <jchalard@google.com> Preparatory cleanups in MetaKeyKeyListener

This cleans up a comment mentioning a private API and
declares constants for the return value of some public
functions.

Bug: 8303489
Change-Id: If06cc64952a572c506961e8125d0874428b5580c
ethod/MetaKeyKeyListener.java
548655045a9c9791bd33e77a823afea5846228ab 26-Feb-2013 Jean Chalard <jchalard@google.com> Fix dead key -> space combination.

This also fixes "dead key -> same dead key" combination.
Both these key sequences should only give the non-combining
version of the combining character.

Bug: 8158374
Change-Id: I51f01685dd2997c2c5316ce6aa4f10ac9354c877
ethod/QwertyKeyListener.java
1b15ba5d194c1db71d0a34ee110bd1ab169c8a29 20-Feb-2013 Luca Zanolin <zano@google.com> Resubmitting "Enable correction/deleting notification via EasyEditSpan.""

Re-run "make update-api"

Original CL Ic227b8fd50066699915f69a54f225fb5330867c4

Change-Id: Ifb1a0f61801c544b01193435fbfdedd7f3888971
extUtils.java
tyle/EasyEditSpan.java
1b916301e044d1f6f672c9708c993090ecdf30cf 20-Feb-2013 Luca Zanolin <zano@google.com> Revert "Enable correction/deleting notification via EasyEditSpan."

This reverts commit 8cd8135b95da5b471804604b06084eecbe1cc23b

Change-Id: I6361cc47d58281ab37cb9ae0a67541b43f873147
extUtils.java
tyle/EasyEditSpan.java
8cd8135b95da5b471804604b06084eecbe1cc23b 14-Feb-2013 Luca Zanolin <zano@google.com> Enable correction/deleting notification via EasyEditSpan.

When the "delete" pop-up is clicked (and the wrapped text removed), the
creator of the span will receive a notification of the action.

Similarly, if the user modifies (i.e., add/remove a char), the creator of
the span will receive a notification too. The notification will not contain any
information about how the text has been modified.


Bug: 6905960
Change-Id: Ic227b8fd50066699915f69a54f225fb5330867c4
extUtils.java
tyle/EasyEditSpan.java
0c33ecd209d884a9a2b9ad807cb798583b890a08 13-Feb-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Clean Paint.mBidiFlags as it is no longer used"
4d1937b731d304fffb23a6f37778a84ef09a97e6 13-Feb-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #8185410 BidiFormatter code should not use the Dir enum anymore

- replace Dir enum with static final int constants

Change-Id: Ibfd857e9767f14db92e50edb1681fef0d6598d99
idi/BidiFormatter.java
6d9fe5bd22b531bfce69b146254a4791c76acddc 12-Feb-2013 Fabrice Di Meglio <fdimeglio@google.com> Clean Paint.mBidiFlags as it is no longer used

See bug #7623824

Change-Id: Ie2f9422821f6dcc73c99e8695f448e966b587b1d
raphicsOperations.java
easuredText.java
pannableStringBuilder.java
extLine.java
57a85740d721caf8dcd94a545b2dd920e8e84e01 31-Jan-2013 Fabrice Di Meglio <fdimeglio@google.com> Add BidiFormatter utility

See bug #7587797 Need BidiFormatter class in Android API

Change-Id: I999282b9a4c76d8b4a3fc254b0c12ca95fa6ea4a
extDirectionHeuristic.java
extDirectionHeuristics.java
idi/BidiFormatter.java
5bd48b528e6477c2c3d318cb71cef861392b1b8a 15-Jan-2013 Elliott Hughes <enh@google.com> am 67ae48f3: am fc91d730: am cbfece82: Merge "Switch over to getting 12-/24-hour time formats from CLDR via icu4c."

* commit '67ae48f32545791fe0a0574f02bfe714e106074b':
Switch over to getting 12-/24-hour time formats from CLDR via icu4c.
fc91d73067d76e129869fe472238f4c80aa5d435 15-Jan-2013 Elliott Hughes <enh@google.com> am cbfece82: Merge "Switch over to getting 12-/24-hour time formats from CLDR via icu4c."

* commit 'cbfece8237cb9cf62547e75ab9572ccbf682369a':
Switch over to getting 12-/24-hour time formats from CLDR via icu4c.
4caba61ea0433099fc94e61221d02542c34e9e3a 15-Jan-2013 Elliott Hughes <enh@google.com> Switch over to getting 12-/24-hour time formats from CLDR via icu4c.

I removed the duplication in DateTimeView rather than fix that copy
of the code.

Bug: 7924970
Change-Id: I60c205d06ad3b50fd2f5d5fc432e4eb186f9c0e7
ormat/DateFormat.java
06c5f8a768bcd4f7b6441f7525bd5c639399fc76 04-Dec-2012 Jeff Sharkey <jsharkey@android.com> Examine widget hierarchy to find clocks.

When switching to a widget, examine its hierarchy to determine if it
contains TextClocks that show hour and minute for the local timezone.
If so, hide the status bar clock. Doesn't fix closing walls.

Bug: 7667638
Change-Id: I1e2c40345c9e5eb0193efd70838c7ca9f779190b
ormat/DateFormat.java
955beb2b96a78cf6ee990d0f20bcaf2d22ce608b 10-Dec-2012 Sangkyu Lee <sk82.lee@lge.com> Optimize drawHardwareAccelerated method in Editor class

When inserting a new line or breaking a line,
every display list was invalidated and rebuilt before.
However, we can reuse the display lists above intactly and also
reuse the display lists below with only updating drawing locations.

This patch reuses the display lists if possible.
The display lists above the inserted line are just reused
and the display lists below are reused with only updating
drawing locations not fullly rebuilt.

mIndexOfFirstChangedBlock is the index of the first block
which is moved by inserting or breaking a line.
So the display list whose index is >= mIndexOfFirstChangedBlock
only needs to update its drawing location.

Change-Id: Ica20deb0ebb5750de21356ed31fa9f86e657ff92
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
ynamicLayout.java
afe8e9b6d033cb854afa3024d8198a32896a804a 20-Dec-2012 Raph Levien <raph@google.com> Suppress horizontal scrolling with trailing blanks

The existing behavior of EditText is that trailing blanks can cause a
line to exceed the layout width, causing the cursor to extend past the
line, which in turn causes horizontal scrolling. This patch clamps the
cursor to the layout width in the non-scrolling case, which makes the
spaces effectively invisible when they're at the end of the line, but at
least suppresses the scrolling.

The clamping only works reliably in left-to-right alignments, so this
patch checks for than and only enables the clamping in those cases.

Fix for bug 7699295.

Change-Id: I22bc4e6c9ded3d7716edfcf10dd2b5c31a5da9de
ayout.java
a43e9b7c0ebe1c3a2a77dec73b275b2ce7ad13e4 16-Dec-2012 Elliott Hughes <enh@google.com> am 6647f1bd: am c749261f: Merge "Fix DateUtils.formatElapsedTime."

* commit '6647f1bd2b3a615cf02111aab21eecdd76ce7c09':
Fix DateUtils.formatElapsedTime.
6647f1bd2b3a615cf02111aab21eecdd76ce7c09 15-Dec-2012 Elliott Hughes <enh@google.com> am c749261f: Merge "Fix DateUtils.formatElapsedTime."

* commit 'c749261fea1010dfa2d1337bd210c81d13052540':
Fix DateUtils.formatElapsedTime.
2eda18485cefc5dbc946d7eb32486a7bd67bf8af 14-Dec-2012 Elliott Hughes <enh@google.com> Fix DateUtils.formatElapsedTime.

More reuse of StringBuilders, less broken home-grown formatting code.

Long-term, we should hand this over to icu4c, but they're not ready yet.

Bug: http://code.google.com/p/android/issues/detail?id=41401
Bug: 7736688
Change-Id: Ib3c1e1aad05827df646aa18645cce19dffb7551f
ormat/DateUtils.java
a8f6d5f0720f400b6f59b0809aaefea83c5f51d4 27-Nov-2012 Romain Guy <romainguy@google.com> Add support for face attribute to HTML string resources
Bug #7480719

This change also adds the alias "color" for the attribute "fgcolor".
This change also unifies HTML colors parsing between the Html class
and StringBlock for consistency.

Change-Id: I696a6e080387901d88e9baf7cb989b892f14b9db
tml.java
6dd028cbb9b7657c5491cf2d9c5635bda1376e96 16-Nov-2012 Jeff Sharkey <jsharkey@android.com> am 9f43afad: am 68363456: am 7420ab68: Merge "Utility to format human-friendly durations." into jb-mr1.1-dev

* commit '9f43afad9de92fc36dc7b242585ef734e834285c':
Utility to format human-friendly durations.
9f43afad9de92fc36dc7b242585ef734e834285c 15-Nov-2012 Jeff Sharkey <jsharkey@android.com> am 68363456: am 7420ab68: Merge "Utility to format human-friendly durations." into jb-mr1.1-dev

* commit '68363456c1f360c0f1afe637a1f3028519e059ed':
Utility to format human-friendly durations.
68363456c1f360c0f1afe637a1f3028519e059ed 15-Nov-2012 Jeff Sharkey <jsharkey@android.com> am 7420ab68: Merge "Utility to format human-friendly durations." into jb-mr1.1-dev

* commit '7420ab681eaad22f4b8f884e12d3b2ce82cd203a':
Utility to format human-friendly durations.
53f6e8a9b95a1fe5229295ade4989339d577de08 14-Nov-2012 Jeff Sharkey <jsharkey@android.com> Utility to format human-friendly durations.

Bug: 6777872
Change-Id: Ie7ebcb456306f4f88b4707030dd7beda3fc90368
ormat/DateUtils.java
331b552734ab47bc5256a0e2e4e9d152c67fc069 01-Nov-2012 Romain Guy <romainguy@google.com> am aabe4bb4: am 9c0010f8: am 998d03bd: Merge "A new clock widget to create lock screen appwidgets" into jb-mr1-dev

* commit 'aabe4bb4776c21592db7e0714b3fec960b6778c7':
A new clock widget to create lock screen appwidgets
aabe4bb4776c21592db7e0714b3fec960b6778c7 01-Nov-2012 Romain Guy <romainguy@google.com> am 9c0010f8: am 998d03bd: Merge "A new clock widget to create lock screen appwidgets" into jb-mr1-dev

* commit '9c0010f856d623845b20a7dd13c024023626623c':
A new clock widget to create lock screen appwidgets
9c0010f856d623845b20a7dd13c024023626623c 01-Nov-2012 Romain Guy <romainguy@google.com> am 998d03bd: Merge "A new clock widget to create lock screen appwidgets" into jb-mr1-dev

* commit '998d03bd943053741bab17a8ef0abb355f6bc3ae':
A new clock widget to create lock screen appwidgets
3d1728c03a0cd1aaed6bc81c97de27d62c771a6e 01-Nov-2012 Romain Guy <romainguy@google.com> A new clock widget to create lock screen appwidgets

This new widget replaces DigitalClock. It listens to all the correct
system events and offer the ability to customize the formatting
patterns in 12-hour and 24-hour modes. It also supports fixed
time zones to create world clocks.

One more step towards becoming ClockOS!

Change-Id: I677e5dfca8cd8c8d1f8c49e54d7507f4d1885bf4
ormat/DateFormat.java
103dbdc5a6d61d4a47c6308cf0345e90ddbced23 23-Oct-2012 Raph Levien <raph@google.com> am fdf26397: am 9defd066: am 74437532: Merge "Fix for bug: Gmail (and other places): cursor placed on top of letter" into jb-mr1-dev

* commit 'fdf263971b3bbc93d743195e840967063ccf5fcb':
Fix for bug: Gmail (and other places): cursor placed on top of letter
fdf263971b3bbc93d743195e840967063ccf5fcb 23-Oct-2012 Raph Levien <raph@google.com> am 9defd066: am 74437532: Merge "Fix for bug: Gmail (and other places): cursor placed on top of letter" into jb-mr1-dev

* commit '9defd0663e2b6a486f5bc72621bbbd4dfab666fb':
Fix for bug: Gmail (and other places): cursor placed on top of letter
9defd0663e2b6a486f5bc72621bbbd4dfab666fb 23-Oct-2012 Raph Levien <raph@google.com> am 74437532: Merge "Fix for bug: Gmail (and other places): cursor placed on top of letter" into jb-mr1-dev

* commit '74437532fe2a3e9ebd15c61327fd3f2b68c299b3':
Fix for bug: Gmail (and other places): cursor placed on top of letter
42ef515d185d4fc038d602172789cc264f1d9960 23-Oct-2012 Raph Levien <raph@google.com> Fix for bug: Gmail (and other places): cursor placed on top of letter

This patch fixes bug 7346656. In this particular case, the text line in
the EditText was split into multiple spans, with the boundary between
the "r" and "," in "r,". These were being drawn as two separate runs,
but measured as a single run, leading to inconsistent measurements
because this is a kern pair in Roboto.

The fix is to eliminate the special-case code for measuring. This will
actually improve efficiency, as the value computed in one pass is now
more likely to be reused in another.

Change-Id: I04142a0ec98f280fc1027c7cbdbf903e3096f8e4
extLine.java
cb98505e949e17f813dc05b6e83644dee3725269 08-Oct-2012 Raph Levien <raph@google.com> am e9d419f5: am 6594eca0: am 9704b563: Merge "Fix for 7301594 Html.toHtml creating potentially invalid html" into jb-mr1-dev

* commit 'e9d419f524317828a5edaf2b3350acaacf91cab8':
Fix for 7301594 Html.toHtml creating potentially invalid html
e9d419f524317828a5edaf2b3350acaacf91cab8 08-Oct-2012 Raph Levien <raph@google.com> am 6594eca0: am 9704b563: Merge "Fix for 7301594 Html.toHtml creating potentially invalid html" into jb-mr1-dev

* commit '6594eca0a9d9e9e0b429f950a673fa1820d43813':
Fix for 7301594 Html.toHtml creating potentially invalid html
6594eca0a9d9e9e0b429f950a673fa1820d43813 08-Oct-2012 Raph Levien <raph@google.com> am 9704b563: Merge "Fix for 7301594 Html.toHtml creating potentially invalid html" into jb-mr1-dev

* commit '9704b563d63d8b5fe8e568dfb7190f8440b56698':
Fix for 7301594 Html.toHtml creating potentially invalid html
286da7b6f5389166afa2e71c11809a7db6acf3f8 08-Oct-2012 Raph Levien <raph@google.com> Fix for 7301594 Html.toHtml creating potentially invalid html

Generate <p dir="rtl"> instead of <p dir=rtl>. The form with the quotes
is cleaner and will reduce warnings in apps that consume the output.

Change-Id: Ic9879c8c882c42079598b741e897a24415d96374
tml.java
df0732c3a825f15fd6b323d55150172d460abae5 04-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am b4a80baa: am 5e5169b0: am 33c36895: Merge "Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT" into jb-mr1-dev

* commit 'b4a80baaff113f0f9ba357bfbd5dc0cb85dc8987':
Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT
b4a80baaff113f0f9ba357bfbd5dc0cb85dc8987 04-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 5e5169b0: am 33c36895: Merge "Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT" into jb-mr1-dev

* commit '5e5169b0d0d51e042a79ca32d2825fc5f4a25531':
Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT
5e5169b0d0d51e042a79ca32d2825fc5f4a25531 04-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 33c36895: Merge "Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT" into jb-mr1-dev

* commit '33c36895a294c7b731fd59017a7ea0f06ac2a356':
Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT
db24f0a73f4385aea104367a4bc71b78f25dbc3f 04-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT

- fold LEFT/RIGHT into NORMAL/OPPOSITE cases

Change-Id: Idf14342ffed4840e7b4ea53cc42f1cde8f196a4c
ayout.java
22816c34da9f9e7fc0f6862d4389e0c07d3d94cf 01-Oct-2012 Tadashi G. Takaoka <takaoka@google.com> Fix DigitsKeyListener to be able to accept "+" sign

Bug: 7255318
Change-Id: Id5a6c11ffc62cc79c1db0baaf8d184174691d034
ethod/DigitsKeyListener.java
dbd0abd6f93561649c8fd70877241b046f885187 20-Sep-2012 Elliott Hughes <enh@google.com> am ce14f217: am 3d5be42e: Merge changes I87c2ab9e,I2dafcc34,I731c96c2 into jb-mr1-dev

* commit 'ce14f2176028108b649b3b068ac1275b81287b21':
Fix formatDateRange month names for Farsi.
Use localized digits for Time formatting.
Use proper digits in formatElapsedTime and format3339
3a8b3a85e104d6e574edb3c9d2e2210f4ddeaa28 20-Sep-2012 Elliott Hughes <enh@google.com> am 3d5be42e: Merge changes I87c2ab9e,I2dafcc34,I731c96c2 into jb-mr1-dev

* commit '3d5be42eaa35914d9b37fe052fa7222dc1992dc0':
Fix formatDateRange month names for Farsi.
Use localized digits for Time formatting.
Use proper digits in formatElapsedTime and format3339
3d5be42eaa35914d9b37fe052fa7222dc1992dc0 20-Sep-2012 Elliott Hughes <enh@google.com> Merge changes I87c2ab9e,I2dafcc34,I731c96c2 into jb-mr1-dev

* changes:
Fix formatDateRange month names for Farsi.
Use localized digits for Time formatting.
Use proper digits in formatElapsedTime and format3339
9ccf13cd6b7c840105fbcd6b2a8bd61d4e634653 19-Sep-2012 Elliott Hughes <enh@google.com> Fix formatDateRange month names for Farsi.

This removes the LLLs seen in Calendar and Settings, for example.

Bug: 6811327
Change-Id: I87c2ab9ee8d897171ce7ca4fe06cfa8b11d36536
ormat/DateUtils.java
6323b6c61775992e400c2d38981332583107c32b 19-Sep-2012 Elliott Hughes <enh@google.com> Use localized digits for Time formatting.

This fixes the digits in places like Settings' data usage page
and Calendar's drop-down, for languages such as Arabic.

Bug: 6811327
Change-Id: I2dafcc342e3279937735697b3748b47fdfc8e691
ormat/Time.java
8bf1cb378b6ce7b60ddba67bd8f542a7a1e4f94e 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am 20586fa0: Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev

* commit '20586fa0353f63453766140b32a4778793ce2b43':
Fix bug #7173351 API REVIEW: android.util.LocaleUtil
ad31d027ca0fecb780f3b8618712e1e69a447536 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am 684f1078: am 20586fa0: Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev

* commit '684f10788707f154e54a614b2d60cc28542aee3a':
Fix bug #7173351 API REVIEW: android.util.LocaleUtil
20586fa0353f63453766140b32a4778793ce2b43 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev
315a7c0335fb54beced23b1703c10563ce02ee82 18-Sep-2012 Roozbeh Pournader <roozbeh@google.com> Use proper digits in formatElapsedTime and format3339

Use getZeroDigit() instead of a hard-coded '0' for formatting times using
formatElapsedTime, so locales with different digits like Arabic and Persian
could display the elapsed time properly. This is visible in Settings' list
of running apps.

Also changed android.text.format.Time's format3339 method to always use ASCII
digits, irrespective of the locale.

Change-Id: I731c96c21b3712ec347d9526e4ec3fe884dec276
ormat/DateUtils.java
ormat/Time.java
d3d9f3f1004dfee2649a26cfe8dba948cd364904 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7173351 API REVIEW: android.util.LocaleUtil

Change-Id: I08fd491eff714059e9ec874fadebe7eb556c34d5
extDirectionHeuristics.java
extUtils.java
af73eb852678c6a886ef054e1c95a50397e6e139 17-Sep-2012 Elliott Hughes <enh@google.com> am 45b09c00: am 7134ef60: Merge "Fix date formatting for fa locales." into jb-mr1-dev

* commit '45b09c0044893e9b549de0eeb20a925a8549cd52':
Fix date formatting for fa locales.
e09e3a1a0dc51b0189ff6de499f28e410d2f564d 17-Sep-2012 Elliott Hughes <enh@google.com> am 7134ef60: Merge "Fix date formatting for fa locales." into jb-mr1-dev

* commit '7134ef60b7ebe81b37dffdd65f22a9aae80e3d14':
Fix date formatting for fa locales.
7850a418716c66a6b0c8ee00d71b058b048cf9f0 17-Sep-2012 Elliott Hughes <enh@google.com> am 42e7af25: am 9ceede6d: am 086676a4: am f5437ee8: am 297ad257: Merge "Deprecate those parts of DateUtils the documentation says not to use."

* commit '42e7af25c06e2d1dbf8201d1ff1528311cf8c44e':
Deprecate those parts of DateUtils the documentation says not to use.
34de3bc309fd9077cc1aa1e1af82652670fdb9df 15-Sep-2012 Elliott Hughes <enh@google.com> Fix date formatting for fa locales.

This adds support for standalone months (L versus M) and localized
digits.

Bug: 6811327
Change-Id: I4687a4c67605c31b155c0b8d44b3da6ed378fc82
ormat/DateFormat.java
1a698714b971e244516ecdfad09b31432c4a2ec2 16-Sep-2012 Elliott Hughes <enh@google.com> am c3ff72f5: Use icu4c for CLDR "yesterday", "today", and "tomorrow" strings.

* commit 'c3ff72f5bd5896ad2584e0cc0582cbd2ad8191f2':
Use icu4c for CLDR "yesterday", "today", and "tomorrow" strings.
5f09b9f52d474eee5d3ec0288819018f81926b89 16-Sep-2012 Elliott Hughes <enh@google.com> am 08153ee0: Switch DateUtils and Time over to using the CLDR for all week and month names.

* commit '08153ee01e6aa67061f628bc3fed66c6400dfd1c':
Switch DateUtils and Time over to using the CLDR for all week and month names.
ee783e6075c345dd8ecd89fab4094aa29cbc7f90 16-Sep-2012 Elliott Hughes <enh@google.com> am 23321b88: Merge "Use ICU\'s CLDR data for "AM" and "PM" strings." into jb-mr1-dev

* commit '23321b88578a4b4438e7563ff7616b98a1c1a520':
Use ICU's CLDR data for "AM" and "PM" strings.
c3ff72f5bd5896ad2584e0cc0582cbd2ad8191f2 15-Aug-2012 Elliott Hughes <enh@google.com> Use icu4c for CLDR "yesterday", "today", and "tomorrow" strings.

(cherry-pick of 47a0539ecaf7d7a15008704bd89f748aebf85d47.)

Conflicts:

core/res/res/values/public.xml

Bug: 6811501
Change-Id: Ifb2e030a9fda85a7f664feac812b63e67780e68f
ormat/DateUtils.java
08153ee01e6aa67061f628bc3fed66c6400dfd1c 07-Aug-2012 Elliott Hughes <enh@google.com> Switch DateUtils and Time over to using the CLDR for all week and month names.

(cherry-pick of 99c406e42ba154584070ca7ec100e8be7ff8a800.)

Conflicts:

core/res/res/values-fa/donottranslate-cldr.xml
core/res/res/values/public.xml

Bug: 6811501
Change-Id: I2ad9608ae34804e02c6b0271197e96611df12b0a
ormat/DateUtils.java
ormat/Time.java
4af85345e798c37ab026e93a1ae250d8bca4fc40 26-Jul-2012 Elliott Hughes <enh@google.com> Use ICU's CLDR data for "AM" and "PM" strings.

This brings DateUtils and Time in sync with bionic, icu, WebKit,
DateFormatSymbols, Formatter, and SimpleDateFormat. And specifically
means that DateUtils now knows how to say "AM" and "PM" in Japanese.

Bug: 6719054

(cherry-pick of b12b61a88a029730b1f2b006ff914c9c719f3942.)

Conflicts:

core/res/res/values/public.xml

Change-Id: Ic1a811621a0ec338abd77458ac2046577f87c1e4
ormat/DateUtils.java
ormat/Time.java
f49a31626b406370fdd2b34866933b774970d7ed 15-Sep-2012 Elliott Hughes <enh@google.com> am 9ceede6d: am 086676a4: am f5437ee8: am 297ad257: Merge "Deprecate those parts of DateUtils the documentation says not to use."

* commit '9ceede6d7e250922e63b0d2c90403089f8736e0c':
Deprecate those parts of DateUtils the documentation says not to use.
9ceede6d7e250922e63b0d2c90403089f8736e0c 15-Sep-2012 Elliott Hughes <enh@google.com> am 086676a4: am f5437ee8: am 297ad257: Merge "Deprecate those parts of DateUtils the documentation says not to use."

* commit '086676a4a669b5d3a90c01e4d88ab8d628ca65f0':
Deprecate those parts of DateUtils the documentation says not to use.
f5437ee86a34751fa6d441b95282feb315e19eb6 15-Sep-2012 Elliott Hughes <enh@google.com> am 297ad257: Merge "Deprecate those parts of DateUtils the documentation says not to use."

* commit '297ad257464d2ea65cabd45ddb19f6da34b39157':
Deprecate those parts of DateUtils the documentation says not to use.
d3c01012d8d329e541214e8207272ab5cc9ca004 29-Aug-2012 Elliott Hughes <enh@google.com> Deprecate those parts of DateUtils the documentation says not to use.

Applications using these fields and methods are just asking for i18n bugs.

Also @deprecate two int[]s that were never meant to be public.

Change-Id: I29b3a1c0c663fe344d2567df6ed3bb537270b3b7
ormat/DateUtils.java
5ef49427b6e735ba17d96184ac2bcbcafb434d82 26-Jul-2012 Elliott Hughes <enh@google.com> Fix Time.parse and Time.parse3339 crashing bugs. DO NOT MERGE

Two reported by users, the other spotted by inspection.

Bug: http://code.google.com/p/android/issues/detail?id=16002
Bug: http://code.google.com/p/android/issues/detail?id=22225
Change-Id: I86fe022fda4af68e5a6fb9dc5dd2abdb75e9d966

This was committed to master, cherry-picking to jb-mr1-dev
ormat/Time.java
f252f1dcaf627d7c9dc5e09e5258dab0d702ce84 04-Sep-2012 Luca Zanolin <zano@google.com> Merge "Relax suggestion notification."
e004b868f3e10d133798cfc719a69e3a1db0fa18 29-Aug-2012 Dmitry Tsyganyuk <fdt017@motorola.com> Fix NullException in QwertyKeyListener.KeyDown

Extending null protection for view to "c == i" case in addition to
"c == Character.toUpperCase(i)" case that helped to fix some force closures.
Seems as typo in original implementation.

Change-Id: Ibaa5aea95c5c8cdc8ac981fe0d1dad313e3e692f
Signed-off-by: Dmitry Tsyganyuk <fdt017@motorola.com>
ethod/QwertyKeyListener.java
0c96b81f8e843b8d6e8c21218fb468f1897b999b 29-Aug-2012 Luca Zanolin <zano@google.com> Relax suggestion notification.

Before the suggestion selection were notified only when they were added by
an IME. This CL relaxes this constrain, and the suggestion are notified
even if they are added by an application.

If the context is null and the package name of the apk cannot be determined,
the suggestion are notified using the old method via the Input Method Manager.
This is required to keep the backward compatibility.

Bug: 6905960
Change-Id: If225ef27cded386809fbd899e34e32aced4e0473
tyle/SuggestionSpan.java
989e14bee12b1b7c8056522ec773c0f84f355a30 29-Aug-2012 Elliott Hughes <enh@google.com> Merge "Use icu4c for CLDR "yesterday", "today", and "tomorrow" strings."
47a0539ecaf7d7a15008704bd89f748aebf85d47 15-Aug-2012 Elliott Hughes <enh@google.com> Use icu4c for CLDR "yesterday", "today", and "tomorrow" strings.

Change-Id: Id9e3b678a98751c4ca85f63b130cc7781d2a6cfe
ormat/DateUtils.java
1ce05ed2def3eb8b8c9e549c38be5ac49dba1bf9 27-Aug-2012 Dianne Hackborn <hackbod@android.com> am 737e99d8: am e45ca31a: am aae49432: am 4763989d: am 32d1fec5: Merge "Fixes relative time formatting issue for dates in future"

* commit '737e99d8d621bfdde810c8f9ce23b25c67ad4de4':
Fixes relative time formatting issue for dates in future
e45ca31a613d8692a9db2117be96f442e57abfef 27-Aug-2012 Dianne Hackborn <hackbod@android.com> am aae49432: am 4763989d: am 32d1fec5: Merge "Fixes relative time formatting issue for dates in future"

* commit 'aae4943297a08a659add964a3fef96bdfa0b2c14':
Fixes relative time formatting issue for dates in future
aae4943297a08a659add964a3fef96bdfa0b2c14 27-Aug-2012 Dianne Hackborn <hackbod@android.com> am 4763989d: am 32d1fec5: Merge "Fixes relative time formatting issue for dates in future"

* commit '4763989d95342c25e9b857dc9ee21eb5ebac31d6':
Fixes relative time formatting issue for dates in future
ca3363775e03e0f90bdf111d3e5c54b3ab16df57 27-Aug-2012 Steve Pomeroy <steve@staticfree.info> Fixes relative time formatting issue for dates in future

All variations of getRelativeTimeSpanString() now properly handle dates
that are in the future. Prior, the version used by
getRelativeDateTimeString() would occasionally show the time instead of
a date when the future date was the same weekday as the current weekday.
This resulted in the time output being duplicated, eg.: "11:23, 11:23"

Change-Id: If20972a6942cce792fa233437f94dedfb71379f3
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
ormat/DateUtils.java
0704064cbe1002457537ccc08a31d015197cc2b7 25-Aug-2012 Raph Levien <raph@google.com> am 8dc2d8d2: am 236d0520: Merge "Fix bug 7054190 line breaks at inappropriate places" into jb-mr1-dev

* commit '8dc2d8d287066e6c13e50aec167c496044689a53':
Fix bug 7054190 line breaks at inappropriate places
7c3255f14f83afb00da32aede43664e16da51f53 24-Aug-2012 Raph Levien <raph@google.com> Fix bug 7054190 line breaks at inappropriate places

We were doing line breaks after punctuation as long as they weren't
surrounded by digits. This is a misinterpretation of the Unicode line
breaking algorithm. Punctuation (class IS) is not hugely different than
the default classes (NU and AL) - there are breaks after punctuation
that are allowed (for example, followed by an open parenthesis), but
we're not implementing the algorithm with anything near that level of
fidelity.

The long term fix is to really implement the algorithm. In the shorter
term, the easiest thing to do is to remove the special case altogether.

Change-Id: Ic4dc3216c2a4191fbb7cfa06e9dc038d1a56398c
taticLayout.java
df8ef4b139a8918895f8a5c62536123da06e81fe 18-Aug-2012 Victoria Lease <violets@google.com> DO NOT MERGE LocaleSpan makes Han disambiguation easy!

Cherry-pick of I7f1b0d49a2ece957a7b9b5d65d48385bf2c2a668 from master.

I've also provided TextView.setTextLocale() for use in single-language
TextViews.

Change-Id: I5692859bfd2aafc284172454d943afc250b22535
extUtils.java
tyle/LocaleSpan.java
ec97b4ddb467803d8637af2b64868b7b17861318 18-Aug-2012 Victoria Lease <violets@google.com> LocaleSpan makes Han disambiguation easy!

I've also provided TextView.setTextLocale() for use in single-language
TextViews.

Change-Id: I7f1b0d49a2ece957a7b9b5d65d48385bf2c2a668
extUtils.java
tyle/LocaleSpan.java
a5f93f74df8d0be9b1304e1dd57be68993a1e0c5 14-Aug-2012 Fabrice Di Meglio <fdimeglio@google.com> am e89ad6c2: am d63b9922: Merge "Fix bug #6908329 TextUtils.ellipsize does not work properly when Locale is changed" into jb-mr1-dev

* commit 'e89ad6c20fda6f2d5bf983dc32debfb7a177346e':
Fix bug #6908329 TextUtils.ellipsize does not work properly when Locale is changed
f3e64101bb2af1159518259229d5d429f8915787 31-Jul-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6908329 TextUtils.ellipsize does not work properly when Locale is changed

- load the ellipis resources on the fly to get the correct ones depending on the Locale

Change-Id: I42d591e3f5ed715c983f736f94a80143a3897f47
extUtils.java
99c406e42ba154584070ca7ec100e8be7ff8a800 07-Aug-2012 Elliott Hughes <enh@google.com> Switch DateUtils and Time over to using the CLDR for all week and month names.

Change-Id: I92c73c269c6f90125cf834d434883595ba4b42d4
ormat/DateUtils.java
ormat/Time.java
db9d339d4bc22af067e210f930ca04518087ffa0 06-Aug-2012 Elliott Hughes <enh@google.com> Merge "Use ICU's CLDR data for "AM" and "PM" strings."
68dcd1750eea33b6687f54a03b2fb7fbbb9c44c7 26-Jul-2012 Elliott Hughes <enh@google.com> Fix Time.parse and Time.parse3339 crashing bugs.

Two reported by users, the other spotted by inspection.

Bug: http://code.google.com/p/android/issues/detail?id=16002
Bug: http://code.google.com/p/android/issues/detail?id=22225
Change-Id: I86fe022fda4af68e5a6fb9dc5dd2abdb75e9d966
ormat/Time.java
b12b61a88a029730b1f2b006ff914c9c719f3942 26-Jul-2012 Elliott Hughes <enh@google.com> Use ICU's CLDR data for "AM" and "PM" strings.

This brings DateUtils and Time in sync with bionic, icu, WebKit,
DateFormatSymbols, Formatter, and SimpleDateFormat. And specifically
means that DateUtils now knows how to say "AM" and "PM" in Japanese.

Bug: 6719054
Change-Id: Icdd75c0865505fde4115d71025eeb7515b73da4c
ormat/DateUtils.java
ormat/Time.java
8e136f85f761fe6a31f45a2594405a2d6143716f 10-Jul-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix for bug 6716343. Use correct offset for mPos reset. DO NOT MERGE

The mPos field in the MeasuredText object is relative to the start of
the text (mTextStart), but the pos passed in by the caller of the
setPos() method is relative to the character sequence. When spans
overlap break boundaries and the paragraph doesn't start at 0, the
result is an out of bounds error. This fix uses the correct offset.

Change-Id: I64ef06df0eb06f75aedd25de97e9f347eeb52979
easuredText.java
1341ab6f3808d8c11b147f82bc7735116c7d709f 10-Jul-2012 Raph Levien <raph@google.com> Fix for bug 6716343. Use correct offset for mPos reset.

The mPos field in the MeasuredText object is relative to the start of
the text (mTextStart), but the pos passed in by the caller of the
setPos() method is relative to the character sequence. When spans
overlap break boundaries and the paragraph doesn't start at 0, the
result is an out of bounds error. This fix uses the correct offset.

Change-Id: I12c7a2311a9bdbbea7ab21554a922b7f665a17bf
easuredText.java
884eb4b88459d65a7b3b0b140418ab07cbf1f526 02-Jul-2012 Gilles Debunne <debunne@google.com> Merge "Better handling of spaces at ends of lines in StaticLayout."
81541491946bfc4f2e26c171b4ebff4249dca51c 27-Jun-2012 Gilles Debunne <debunne@google.com> Better handling of spaces at ends of lines in StaticLayout.

Skipping spaces at ends of line used to be done only when ok != here
(a potential line break was found).

Moved this logic up one level to handle all cases.

Also moved maxLine test in the block that actually adds a new line.

Updated the unit tests accordingly.

Change-Id: Ib10bc838b1ffa5b8a60259ea4b622d9fecb2ec70
taticLayout.java
dd0c25c9219d707d3d88bd54b5a1268d9b4d0780 27-Jun-2012 Gilles Debunne <debunne@google.com> Added comments describing the span limit attributes

Patch: replaced left/right by before/after and added a comment on RTL.

Change-Id: Iccd70adfbba4cb5f76d2729eeb81fed9b50403ae
panned.java
099adfba812c00e81f26a3c7099ff4365f071847 19-Jun-2012 Gilles Debunne <debunne@google.com> am 4c268a32: am badf5a94: Merge "Fixed text rendering issue with spans." into jb-dev

* commit '4c268a32714fefe141d093abb59806a2d6f2991c':
Fixed text rendering issue with spans.
badf5a9442e639dc6ae2c4794c202143f6d2f16d 19-Jun-2012 Gilles Debunne <debunne@google.com> Merge "Fixed text rendering issue with spans." into jb-dev
cd943a7a013952af9b7286fd506fd63bf0993ac1 08-Jun-2012 Gilles Debunne <debunne@google.com> Fixed text rendering issue with spans.

Bug 6598784

The algorithm uses three imbricated loops:
- paragraphs
- span regions (called "blocks" in that description) in these
- characters in these

We can ignore the paragraphs and assume paraStart==0.

The span region loop cuts the text into blocks of text which share
the same set of MetricAffectingSpan spans applied to them. Note that
spanStart and spanEnd represent such a range, and not necessarily an
actual span range.

The third loop then iterates over the characters of these blocks, and creates
a new line (calling out() as soon as the width has been reached.

The core of the problem comes from the 'nextSpanStart' variable.
It is used to restart the block loop from a previous position in case
a line has been created that does not intersect with the current block.

However, in case the current block is larger than the width of the text,
the character loop is going to create other lines of text before we exit the
j-loop. Going back to the block loop, we reset spanStart to the nextSpanStart,
which may be too far back in the text. As a result, the same range of characters
is measured again.

The (spanStart == spanEnd) test was used to handle the case where
nextSpanStart was indeed assigned to a value different than spanEnd.

This fix simplifies this logic and removes the nextSpanStart variable:

When the created line ends before the current block (here < spanStart), we
immediately exit the character loop, re-starting the block loop from the
current position.

Patch 4: added a fix in measured to handle overlapping character ranges.

Change-Id: Ie71b3cf4018b332e335ea916fef08acb43a6679e
easuredText.java
taticLayout.java
7fbede44edb6cebaf42ec75a3812ebd15b82925a 14-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> am 99745c01: am 15c9c614: Merge "Fix bug #6661824 Hebrew Text can be clipped" into jb-dev

* commit '99745c01797c34ce7ca76640deab09fc728aee4e':
Fix bug #6661824 Hebrew Text can be clipped
15c9c6141a00cd91290928bce742a2ae6761aca2 14-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6661824 Hebrew Text can be clipped" into jb-dev
8d44fff7e62f77c3b3072a96712cc1389e63ca64 14-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6661824 Hebrew Text can be clipped

- use the correct ellipsis char in both measurement and rendered string

Change-Id: Ia00285fc16da528f18702719026503b5d0610642
ayout.java
taticLayout.java
30103f66982273aebed1a07275351c924874ac17 12-Jun-2012 Gilles Debunne <debunne@google.com> am 735b9598: am a447eaca: Merge "Prevent a crash when maxLines is set to 0" into jb-dev

* commit '735b9598a2c7824befbdfc55ef4991ca01550d84':
Prevent a crash when maxLines is set to 0
49ccb116e9f2f3cf1233738c931f3e620287afc4 12-Jun-2012 Victoria Lease <violets@google.com> am 1b15102f: am 72b8fc7e: Merge "Revert "Fix fake bold for fallback fonts in frameworks."" into jb-dev

* commit '1b15102fc040f59c72c6453dee15b791f54c9f06':
Revert "Fix fake bold for fallback fonts in frameworks."
a447eaca555e45ebbbc5e4de2762e19dbca12980 12-Jun-2012 Gilles Debunne <debunne@google.com> Merge "Prevent a crash when maxLines is set to 0" into jb-dev
2fba3387c31b675c419030145250e5be246c50b0 12-Jun-2012 Gilles Debunne <debunne@google.com> Prevent a crash when maxLines is set to 0

Bug 6642222

Using setMaxLines(0) and setMinHeight(30) causes a crash
because Layout#getLineRangeForDraw() returns a [0,0] interval
in that case.

Accessing the Direction in draw causes a NPE.

Change-Id: If50f9b554e3cdc598a721b623992e9196982838c
ayout.java
aa0980afab57a6aebb06e70f60e92511708fa5af 11-Jun-2012 Victoria Lease <violets@google.com> Revert "Fix fake bold for fallback fonts in frameworks."

This reverts commit b26fa0ce68d3311b2fdffb930b27d897e481dd5a
tyle/StyleSpan.java
tyle/TextAppearanceSpan.java
tyle/TypefaceSpan.java
c3672a4e19d3a0063c6d467453e9d7e03b2c1d2f 09-Jun-2012 Victoria Lease <violets@google.com> am 2203fab2: am 2e6f9be5: Merge "Fix fake bold for fallback fonts in frameworks." into jb-dev

* commit '2203fab24966c80af5c37f0a58263218dbbcd610':
Fix fake bold for fallback fonts in frameworks.
b26fa0ce68d3311b2fdffb930b27d897e481dd5a 08-Jun-2012 Victoria Lease <violets@google.com> Fix fake bold for fallback fonts in frameworks.

This change is analogous to Ic0e9f1bbd8cae9fdd3a6d1d015bb9224c8be545c
in WebView, and depends upon the same Skia change that that CL makes
use of.

This flips the "fake bold" flag on for bold fonts in
TextView.setTypeface(), with the expectation that Skia will ignore
the flag if the final typeface used to render the glyphs is already
bold. It also does the same for StyleSpans, TextAppearanceSpans,
TypefaceSpans, and the Switch widget.

With this, fake bold should work uniformly across all scripts - if
fake bold works for a primary typeface, it should also work for all
fallback typefaces.

Bug: 6629786
Change-Id: Id3b8639ab0df83052ffd82809cb12adaacc1d46b
tyle/StyleSpan.java
tyle/TextAppearanceSpan.java
tyle/TypefaceSpan.java
76abb24afa366b6de0176cc14bc50ea7533418a6 30-May-2012 Jean Chalard <jchalard@google.com> am 887568c4: am 01bf82f2: Merge "Add/refine comments to reflect key event policies" into jb-dev

* commit '887568c4f4e49b78b1549459b265377c7ee4e8c0':
Add/refine comments to reflect key event policies
405bc51c5dc73846a4abdc325cd234eb2d37469f 29-May-2012 Jean Chalard <jchalard@google.com> Add/refine comments to reflect key event policies

Make clearer how the platform is handling key events following some
unfortunate uses by third party applications. Also highlight the
changes in Jelly Bean default keyboard.

Bug: 6566711
Change-Id: Ibcdaf54c6d629fd0733529bfe2fffc82f555f084
ethod/BaseKeyListener.java
ethod/DateKeyListener.java
ethod/DateTimeKeyListener.java
ethod/DialerKeyListener.java
ethod/DigitsKeyListener.java
ethod/KeyListener.java
ethod/MultiTapKeyListener.java
ethod/NumberKeyListener.java
ethod/QwertyKeyListener.java
ethod/TextKeyListener.java
ethod/TimeKeyListener.java
579cc204a23e05f5db3824be1a0c025af0129578 14-May-2012 Gilles Debunne <debunne@google.com> am b00ceecb: am 0ae107ff: Merge "Cut long text into multiple DL at start" into jb-dev

* commit 'b00ceecb96063a30bb73b13e156a6da00e3900e7':
Cut long text into multiple DL at start
0ae107ff34dd998dbe86736297e9325051ad5152 12-May-2012 Gilles Debunne <debunne@google.com> Merge "Cut long text into multiple DL at start" into jb-dev
71afc39d68413d125d46ea69e6c9fb077016bb9b 10-May-2012 Gilles Debunne <debunne@google.com> Cut long text into multiple DL at start

Bug 5763685

To improve performance, preventively cut the the into display
list of 3-10 lines of text. Further updates to small parts of
the text (such as adding an underline on a word) will only
invalidate and redraw the affected sub display list.

DLs are aligned with paragraphs, just like they will be during
text edition.

Change-Id: I0d60debc7fdaea8b29080a6eacb2d60205e7d547
ynamicLayout.java
2ab65680466e2dc9018020f99c2681f30ef2e42d 11-May-2012 Raph Levien <raph@google.com> resolved conflicts for merge of a9cc30ce to master

Change-Id: I507bd7a4650f9a7bfe6a0ad7bb8dd4067adb6a8b
d570e8987ae50ee101c3d4cfa973e1a6b6ecc8f5 09-May-2012 Raph Levien <raph@google.com> Add fontFamily XML attribute to select font family by string

Change-Id: I0b649528d3d9888e3561a1a3907a6b6ee2e30238
tyle/TextAppearanceSpan.java
bb5971a78f6fa8b33756c0aed45512c94691a1c3 08-May-2012 Gilles Debunne <debunne@google.com> am 8779c022: am 0caf421e: Merge "Final fix in SpannableStringBuilder." into jb-dev

* commit '8779c022b401b2a269e058c2c27b885694b696f3':
Final fix in SpannableStringBuilder.
0caf421e3aacea928f2ce0e99e101a6584127527 07-May-2012 Gilles Debunne <debunne@google.com> Merge "Final fix in SpannableStringBuilder." into jb-dev
e244868053cfe44742b42e75df3a08d0c5914bca 05-May-2012 Gilles Debunne <debunne@google.com> Final fix in SpannableStringBuilder.

Bug 6448052

The empty EXCLUSIVE removal condition was incorrect.
Also changed the unit test the didn't catch this problem.

Change-Id: I5576d830cdfa6cc3716c878fb698695a2978b296
pannableStringBuilder.java
66388dcb09018933ccd1d38eae563f0890ba4f06 04-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Hide RTL related APIs - DO NOT MERGE

- fix bug #6441155 API review: @hide RTL layout APIs

Change-Id: I13c5ea5f579cecffed9d517f06180ab0576cd26a
extDirectionHeuristics.java
cefb4bc011fe47ec83b2fd9ec4da28bdf806c0cd 03-May-2012 Gilles Debunne <debunne@google.com> Hide TextDirectionHeuristics

Bug 6435363

Change-Id: I9ba0a3c057af67e2876e64fd8c18adbb8f4d0860
extDirectionHeuristic.java
extDirectionHeuristics.java
2d589ffa1e8a2721f0d19f38a01337186561e559 01-May-2012 Gilles Debunne <debunne@google.com> Merge "SpannableStringBuilder correctly manages MARK and POINTS" into jb-dev
26b62d432101084c832f5587798cfd24a4ed9c59 27-Apr-2012 Gilles Debunne <debunne@google.com> SpannableStringBuilder correctly manages MARK and POINTS

Bug 6343982

Finally deeply understood the meaning of the POINT and MARK flags.

Updated the Spanned documentation to reflect this.

Updated tests to come.

Change-Id: I400d56b7b4929bc1e7eb4f0497d8e081ee23682e
pannableStringBuilder.java
panned.java
eca5b7385a641ae5d8c4aa2b7823a4e573737376 26-Apr-2012 Gilles Debunne <debunne@google.com> Basic renaming refactoring in Layout

Change-Id: I79f5444a097f1e2b2a81ececf1f0a14b6d7d5179
ayout.java
97c03cac4d9a73b75096e1fa1d8927263dce39e1 25-Apr-2012 Gilles Debunne <debunne@google.com> Merge "Do not notify text watchers when replace is a no-op"
9177947741976f61ff1c446ccb63e3120bad7069 24-Apr-2012 Gilles Debunne <debunne@google.com> Merge "Fixed SSB. Correct broadcast of removed spans' positions"
157aafcbee0eabda798a3be406ccc4200ee86756 20-Apr-2012 Gilles Debunne <debunne@google.com> TextView's sub display lists have tighten bounds

An editable TextView caches text rendering inside an adaptive
number of sub display lists. The bounds of these use to be those
of the entire View.

This CL creates block display lists with tighten bounds, so that
(a still-to-be-implemented) quick rejection can occur.

Also cleaned-up the contradictory translations that were used to
handle the TextView's internal scroll and removed the invalidation
of display lists in that case.

TODO: When internal scroll sets a tighter clipping rect, quick
reject the creation and display of the clipped display lists.

Also renamed blockEnds to a more explicit blockEndLines.

Change-Id: I7d79bea78d06d19b6935aef75ff7aa7df2594050
ynamicLayout.java
d60da058c6a9a63ef7347685f39a9dedebbc6afa 19-Apr-2012 Gilles Debunne <debunne@google.com> Do not notify text watchers when replace is a no-op

Bug 6344997

The early exit we used to do when both replaced and replacement
strings were empty has been added back.

Only this time it correctly also makes sure no spans from the
replacement string would get added with a 0-length.

Change-Id: Ifc38a7e3619c57aa7647c0a8e63d7627d86f1036
pannableStringBuilder.java
90985286442340b9ad9433d6bf8d51702c8d0fd9 18-Apr-2012 Gilles Debunne <debunne@google.com> Fixed SSB. Correct broadcast of removed spans' positions

Found while tracking bug 6326750

A bug in the SpannableStringBuilderSpanTest JUnit CTS test was hiding
this problem.

Also removed the instanceof test on SpanWatcher. All spans, including
those implementing this interface should be copied.

Change-Id: I5233818fb0c08ab56477720db932a5be453e88ee
pannableStringBuilder.java
acb69bb909d098cea284df47d794c17171d84c91 14-Apr-2012 Dianne Hackborn <hackbod@google.com> Add direct support for HTML formatted text in ClipData etc.

When using the clipboard, ACTION_SEND, etc., you can now supply
HTML formatted text as one of the representations. This is exposed
as a set of methods on ClipData for building items with HTML
formatted text, and retrieving and coercing to HTML (and styled)
text. In addtion, there is a new EXTRA_HTML_TEXT for interoperating
with the old ACTION_SEND protocol.

Change-Id: I8846520a480c8a5f829ec1e693aeebd425ac170d
tml.java
174c44c6cfeead714bb180d21332e712e8b0bbd8 11-Apr-2012 Gilles Debunne <debunne@google.com> SpannableStringBuilder correctly broadcast span changes during replace

Bug 6331765

A call to replace was previously not sending any span modification to the
attached span watchers.

Change-Id: Ic9e4a8ac0210e422961adfb18e205d80531889fe
pannableStringBuilder.java
34ec2b54da52eeed39d9cf9e5f215650b447edd7 10-Apr-2012 Gilles Debunne <debunne@google.com> Removed exception from SpannableStringBuilder

Bug 6312196

Change-Id: I9cece36b40d8948e0e85bd433954818991009ad5
pannableStringBuilder.java
0249b43f6ce59bfec104f0fe606d9059244f8797 10-Apr-2012 Gilles Debunne <debunne@google.com> Faster and simpler replace in SSB, take two

This is a new version of CL 179343 which had to be reverted.

This problem of the previous CL is that the ComposingSpan that
was part of the replacement text was correctly added during the
replace but was immediately removed because it had a zero-length
size.

Swapping the add and remove blocks solves the problem.

The new non-zero length enforcement also revealed a bug in the
spell checker where we were creating useless range spans.

Change-Id: I59cebd4708af3becc7ab625ae41bc36837f1a1cf
pannableStringBuilder.java
425c726ae0691cadc1b03b5f3726368fbdc46bff 09-Apr-2012 Gilles Debunne <debunne@google.com> Merge "More minor refactoring in SpannableStringBuilder"
bc6862300fe5675addfe4ed5d0c7c345aad463aa 06-Apr-2012 Gilles Debunne <debunne@google.com> Revert "Faster and simpler replace in SSB"

Bug 6300658

This change reveals a weird race condition where sometimes the
text is entered twice. Adding a debugger slows down everything,
and the problem is no longer reproducable. Reverting for now.

This reverts commit ebd9a23817052c4d2aaa1058efa2b80b08003d4a.
pannableStringBuilder.java
7c5f670bd698c984dcafea8125f4d3939bc42972 06-Apr-2012 Gilles Debunne <debunne@google.com> More minor refactoring in SpannableStringBuilder

No change in the functionnalities.

Change-Id: I009acc75b4f70e65a810cdc67505bc0b13e627b2
pannableStringBuilder.java
ebd9a23817052c4d2aaa1058efa2b80b08003d4a 05-Apr-2012 Gilles Debunne <debunne@google.com> Faster and simpler replace in SSB

The original method was adding a suspicious space that was eventually
removed with a series of 3 calls to change.

This should not be necessary. I have tested this with various gap
positions and lengths, for all replace cases I could think of.

The test can not be added to the CTS as it would need to expose the
internal resizeFor and moveGapTo methods.

Change-Id: I194457fbcfd758fa69a7f380665cfd5ae4d3f1d4
pannableStringBuilder.java
b51036f72aa69e56133fefbf2b56724768423512 02-Apr-2012 Gilles Debunne <debunne@google.com> Refactoring SpannableStringBuilder

Made TextWatcher notification process clearer by moving it to
a single place, with methods renamed.

Also reverts CL 177544: we cannot broadcast span chages just yet,
the layout has not been reflown. A future CL will change this
behavior to make sure span changes are correctly broadcasted.

Change-Id: I9ef88dce91dff5f5f45e2845d5b3f18f1c853de3
pannableStringBuilder.java
fc1190b8f143bd00c825d4e52928c577e40e6c49 30-Mar-2012 Gilles Debunne <debunne@google.com> Spans added during a text change are broadcasted

More consistent with the SpanWatcher design.

Change-Id: I3a1e4d92fb422f4cc689dabcdef1473d93fef5ad
pannableStringBuilder.java
1e130b2abc051081982b5a793a18a28376c945e4 15-Mar-2012 Gilles Debunne <debunne@google.com> Added a unit test for DynamicLayout#updateBlocks

Change-Id: I1824ebeae2bbb5c60a65de36fe1696bf003347c9
ynamicLayout.java
cde6adf45c90ad3fdc94446ede6a228ce264c886 16-Mar-2012 Romain Guy <romainguy@google.com> Fix the build

Change-Id: I6de62c7bfaecd85810178f58707157466291eca3
ynamicLayout.java
33b7de85b6918b7714641f12f1ba2ff03a344740 12-Mar-2012 Gilles Debunne <debunne@google.com> Multiple display lists for editable text

Bug 5763685

Long text in a ScrollView (not when the View's internal
scroll is used) is cached as a unique display list when hardware
rendering is on.

As a result, each time the text is edited, the entire display
list has to be updated, which takes a significant amount of
time (up to 500ms for a few thousand lines), proportional to the
size of the text.

This CL splits the text into multiple display lists as the
text is edited. The boundaries of the display list are aligned
with paragraphs.

There is still an issue when the number of lines changes: onLayout()
is called which invalidates all the display list. When the source
of that change is line wrapping and not a change in the view's
dimensions, we should be able to simply shift down the previous DL
instead of re-creating everything.

Change-Id: I7de49a1e5637cdfc9ef06b64b1ec4b61d9ea2415
ynamicLayout.java
60e3b3fa60a672583fe6294139feb940845efc9b 13-Mar-2012 Gilles Debunne <debunne@google.com> Use SpanSet to accelerate Layout.drawBackground

The main performance improvement should come from the fact
that we entirely skip the loop (which calls getLineStart, getLineTop
and getLineDescent on each line) in the frequent case where there
are no LineBackgroundSpans.

Change-Id: Ie2d3168521e88d43f1a4236da2b3e8447606df1e
ayout.java
4ffb879f4866f7d51070bfc9d10e7a2fdac62d4c 13-Mar-2012 Gilles Debunne <debunne@google.com> New SpanSet class extracted from TextLine.

Change-Id: I424dbd7ff0693fd465b6c83ebabba221b2eca6fe
panSet.java
extLine.java
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
ethod/BaseMovementMethod.java
957c800ac0cb8e375dc3d4c38011456d5c429f95 06-Mar-2012 Gilles Debunne <debunne@google.com> Merge "Ellipsize avoids spaces and starts right after text"
6c488de023a4797069673dc619c1a4096079ea9e 02-Mar-2012 Gilles Debunne <debunne@google.com> EditText caches only text in its internal display list.

Decorelate background and text in layout display. This allows
to only store the text in the editable TextView's display list.

Selection and cursor changes no longer need to invalidate the
display list, leading to faster rendering.

Change-Id: I3af3a98846e1bfe2d9ec6c42590e71bf3704595e
ayout.java
extUtils.java
81c4350a8931db748ed2843d33261fc54b4133e4 01-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #3389545 android:ellipsize="end" doesn't work without using android:singleLine="true" which is deprecated"
34a126e51aaf22e32c7af808ec6b5a0c41ae3311 01-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #3389545 android:ellipsize="end" doesn't work without using android:singleLine="true" which is deprecated

- take care of single line case too

Change-Id: I73c3dcb96f22241b35d7cbaf43cd9bd46a4abcaa
taticLayout.java
c97f9c14a5d35b9a1e89cfff996d4d997f68eb1a 29-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5217606 LocaleUtils constants TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE and TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE should be renamed"
cd4161b134387457bac9943db569afbfa427b87b 29-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5371909 Hebrew & Arabic mails are sent as LTR intead of RTL

- make paragraphs aware of text direction

Change-Id: I0b0cf5a47c7da870dea836cb6150aa83e9de0e90
tml.java
3fb824bae3322252a68c1cf8537280a5d2bd356d 29-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5217606 LocaleUtils constants TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE and TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE should be renamed

- replace them by the View constants

Change-Id: I7c2bf0213319247d3db369b6f7c36771fdf3e509
extDirectionHeuristics.java
c70e7a0b8add16d2e6cec4d58c3cc74d08cc20b4 24-Feb-2012 Gilles Debunne <debunne@google.com> Ellipsize avoids spaces and starts right after text

Bug 5509226

Change ellipsize bounds to take spaces into account

The hardcoded ' ' character may be problematic with other langages.

Note that a different ellipsize logic also exists in StaticLayout.
Created 6062415 to track this.

Change-Id: I3406ec23a592f952bf3e0ca68f0838ee807baba0
easuredText.java
extUtils.java
d7c845c39a5585bd23952639d1a03f2fa603a0f1 14-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Make textDirection API public"
07ba2a2131abb4939d5b71ba27dcb68b2bba9255 14-Feb-2012 Gilles Debunne <debunne@google.com> Minor typo fixes

Change-Id: I8cd9500cc50b7a484bf387e6a6a0c9b4ffb175a4
ethod/KeyListener.java
ethod/TransformationMethod.java
e7beae3f4c9c170c7c6c42cf9b572f0ee1ec9c81 14-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Make textDirection API public

Change-Id: I2d5a0e3a990b9a5b78a3bbc8df7f655702743e4b
extDirectionHeuristics.java
f4832da16a9513e19881397abdbbf62285f8b852 13-Feb-2012 Marc Blank <mblank@google.com> Use &#39; for apostrophe in HTML encoding

* We were using &apos; which is not correct

Change-Id: I4872da7d5e19f18ecd570dbcaac295020d66681c
extUtils.java
815af1ff595a6c028f28c16139a9e64ad98507a3 27-Jan-2012 Alon Albert <aalbert@google.com> Merge "Throw NPE if s is null"
11afa8a466be7fd0bb486b36612d656a09f88f46 26-Jan-2012 Alon Albert <aalbert@google.com> Throw NPE if s is null

Bug: 5926510
Change-Id: I3d0a38d31695a8b103b3d153d90d83474f56990e
ormat/Time.java
6e0b22bea91398403ea500360b02ff2fc7a03d00 25-Jan-2012 Gilles Debunne <debunne@google.com> Modified algorithm to remove duplicated suggestions

Bug 5916225

Duplicates were removed when received from SpellChecker, in a way
that could move the top candidates lower in the list.

Moved that code to the part that creates the actual suggestion list,
to make it more generic. The order of the first SuggestionSpan is
guaranteed to be respected.

Also mentionned non null suggestions and fixed a problem in SuggestionSpan
constructor.

Change-Id: Iaa3b1b84ae512451e439e5c5e63448c2a19145b5
tyle/SuggestionSpan.java
ba3634f35523224d9b4238dbd0b9b5e0cf3b0b9b 24-Jan-2012 Gilles Debunne <debunne@google.com> Fix for AOOB in MeasuredText

Bug 5707593

Change-Id: I3c21343b2938119d7ae9d7892733dc83a209c991
easuredText.java
004b02d62605c172c3c9a332a22356cd4edf3598 18-Jan-2012 Gilles Debunne <debunne@google.com> Touch moves cursor in text refactored

Code was moved back from the movement method to the touch event code in TextView.

Change-Id: I7dc0d957554ddce08e810d20e0385f98802ef1a4
ethod/ArrowKeyMovementMethod.java
78efa026c7b5e7bcd06ab1f58ccd024366687cd3 13-Dec-2011 Gilles Debunne <debunne@google.com> am 0d3a5e4c: am 67d54ac0: Merge "NPE in GMail / TextLine" into ics-mr1

* commit '0d3a5e4cbddc9a6a0a551698b5152c815842952a':
NPE in GMail / TextLine
fc997b4f7867005bd0f1461822b494c79c1231ea 13-Dec-2011 Gilles Debunne <debunne@google.com> NPE in GMail / TextLine

Bug 5753061

https://android-git.corp.google.com/g/#/c/154756/1 revealed an
other bug in SpanSet. The fitered (non empty) spans were added
in their original position instead of being indexed by count.

The nullation on recycle hence left null holes in the array.

Change-Id: If5c1435cee9a2cb88a608aa8e5f4f2f23382154c
extLine.java
ba3642850295ac3bdf57cb1ce9a26ec430c2b4c3 13-Dec-2011 Gilles Debunne <debunne@google.com> am 8e22ec9b: am a1277de3: Merge "Prevent a memory leak in TextLine." into ics-mr1

* commit '8e22ec9bc6c59d9e54a6b48f1133881be97af1a7':
Prevent a memory leak in TextLine.
c3fb7a11ad72c5e51ff93e1ad6958f843af0d5b1 12-Dec-2011 Gilles Debunne <debunne@google.com> Prevent a memory leak in TextLine.

Bug 5740435

The new SpanSet cached objects should be recycled when the TextLine is
recycled to prevent a reference to their span, which may lead to the
entire activity.

Change-Id: I4469e418a228bd71eb8be1d43ed86de49baba165
extLine.java
e495cc3fd9dbf99fcba4f5a65032c6a5c105eeac 12-Dec-2011 Gilles Debunne <debunne@google.com> am e912a16b: am 316ca505: Merge "Re-use SpanSets in TextLine" into ics-mr1

* commit 'e912a16ba2a6e913b47893bc99c9a846d7ce80a9':
Re-use SpanSets in TextLine
c789b60076aa8ff4b2824ced6c998d667f6945c1 12-Dec-2011 Joe Malin <jmalin@google.com> am 8e94d912: am 556e4ca5: am 0a9005ed: Merge "DOC CHANGE: Package text and Formatter javadoc" into ics-mr0

* commit '8e94d912c6e0fc3c6d5e992b6559a0efc20372be':
DOC CHANGE: Package text and Formatter javadoc
2afcfa42392996525c6a995b354b241f22429959 10-Dec-2011 Gilles Debunne <debunne@google.com> resolved conflicts for merge of 5371a165 to master

Change-Id: I61830ec96c277ebba9db3e40842597b9c98d53c7
47a4b78eb7c662cc12c68690ff57b4004c39980c 09-Dec-2011 Gilles Debunne <debunne@google.com> am 9f4b70c7: am 89f2e8a0: Merge "Prevent NPE in SuggestionSpan" into ics-mr1

* commit '9f4b70c72508077f39a71bb17df265eb883c7a20':
Prevent NPE in SuggestionSpan
316ca5059ebd7270a04da5649d25653c355e158d 09-Dec-2011 Gilles Debunne <debunne@google.com> Merge "Re-use SpanSets in TextLine" into ics-mr1
556e4ca54161be17333ec98fadc113485120a6e8 09-Dec-2011 Joe Malin <jmalin@google.com> am 0a9005ed: Merge "DOC CHANGE: Package text and Formatter javadoc" into ics-mr0

* commit '0a9005ed58d3a6173e8fffbd72933f7646c6fdba':
DOC CHANGE: Package text and Formatter javadoc
c1f44830809f0a8526855f13822702ea756214fa 09-Dec-2011 Gilles Debunne <debunne@google.com> Re-use SpanSets in TextLine

TextLine objects are already stored in a pool to limit allocation.

Associate SpanSet objects to each TextLine to further limit the
allocation of these and re-use their internal arrays (re-sized if needed).

Drastically reduces new objects allocation during rendering.

Priority code removed in init: priorities are already handled by getSpans.

This is a duplicate of the already accepted
https://android-git.corp.google.com/g/#/c/153970/
but without the dependency on an other CL.

Change-Id: Iaa7e2f7a8ea4337c8d60c3a9a620e9e3e60caf12
extLine.java
0e7b8020fd8607957844f7d67e8aaa6dc2ef816f 08-Dec-2011 Gilles Debunne <debunne@google.com> Merge "Limit created string size in Spell Checker" into ics-mr1
41e2e1f9919c9ae3593610f7e05f0d9cf69ec9b2 07-Dec-2011 Joe Malin <jmalin@google.com> DOC CHANGE: Package text and Formatter javadoc

Change-Id: Ia34bf38d07b474522f65b89db4991c32909ecff2
ormat/Formatter.java
ormat/package.html
653d3a27878d5358b4a91518a756f6b9b3407b07 07-Dec-2011 Gilles Debunne <debunne@google.com> Limit created string size in Spell Checker

Change-Id: I2f4e7a8b0022d76bc30199ff80c2fe637dbe03ef
pannableStringBuilder.java
ethod/WordIterator.java
c5436f204ba938219223a57c83586aba543f6888 06-Dec-2011 Gilles Debunne <debunne@google.com> Prevent NPE in SuggestionSpan

One SuggestionSpan constructor provide null as the default context.

This will always create an NPE in initStyle. Prevent this.

Change-Id: Ic2acffd2c8b9cda9c99b689d1b1a7f15d17b65d0
tyle/SuggestionSpan.java
58d8953958ce452c5080eaa582d7e5d2b5017398 02-Dec-2011 Gilles Debunne <debunne@google.com> Merge "Scroll performance improved in multiline TextEdit" into ics-mr1
8a439ac7a34d6b83782a672f3d6aa90fa262409c 27-Oct-2011 Gilles Debunne <debunne@google.com> Performance improvement in TextView

Using a SpanSet to minimize the number the calls to getSpans.

This is a cherry pick of 145653 in ICS-MR1

Change-Id: I0a6e1fc7bd7a89325c2925bf98d59626d5e12995
extLine.java
70b34a1e0525c8e13f431c2e6c9d37d1954de1b2 27-Oct-2011 Gilles Debunne <debunne@google.com> Scroll performance improved in multiline TextEdit

Measuring line widths, glyph by glyph slows down the scrolling
process for long text (for some reason, width measure efficiency
is affectedi by text length, maybe because the whole text has to
be passed to JNI layers).

This optimization avoids this computation in the case where there
is no possible horizontal scroll.

This is a cherry pick of 145957 into ICS-MR1

Change-Id: I2082e3d0eedace1a86122a03e4b21f90f3bc8522
ethod/Touch.java
4cf8a3914aa365fefc6c231c48075ecc5a096a65 23-Nov-2011 Owen Lin <owenlin@google.com> am 85c38af1: am 8bb56180: Merge "Fix 5654631. It forgot to consider the year in formatDateRange." into ics-mr1

* commit '85c38af1d47e288775052cd188e3f014fa40e8a2':
Fix 5654631. It forgot to consider the year in formatDateRange.
b193e35ed131769e6c98b2752635065489198aeb 22-Nov-2011 Owen Lin <owenlin@google.com> Fix 5654631. It forgot to consider the year in formatDateRange.

Change-Id: I494e3ecc7a2e7c418ed61930ffd7311338c11783
fix: 5654631
ormat/DateUtils.java
99a64f4b1d2519b71558fdc62721686445865b60 11-Nov-2011 Jesse Wilson <jessewilson@google.com> Document our potentially suprising behavior on date ranges ending at midnight.

Bug: http://code.google.com/p/android/issues/detail?id=18512
Change-Id: I968ca1cfcef79273ee856624a640d56b038b96be
ormat/DateUtils.java
e03ba026c69c80bae5ed4d28504a3c010f7478ca 29-Oct-2011 Gilles Debunne <debunne@google.com> Merge "Performance improvement in TextView"
4e13ebed6b900ab7e977ec7bfd385b35b300a67c 29-Oct-2011 Gilles Debunne <debunne@google.com> Merge changes I2082e3d0,Ibf8e9827

* changes:
Scroll performance improved in multiline TextEdit
Performance improvements for long text edition.
f2a02018e2fa3089f6d39fc838a04818ae6cf26b 27-Oct-2011 Gilles Debunne <debunne@google.com> Scroll performance improved in multiline TextEdit

Measuring line widths, glyph by glyph slows down the scrolling
process for long text (for some reason, width measure efficiency
is affectedi by text length, maybe because the whole text has to
be passed to JNI layers).

This optimization avoids this computation in the case where there
is no possible horizontal scroll.

Change-Id: I2082e3d0eedace1a86122a03e4b21f90f3bc8522
ethod/Touch.java
a30946e8201e47ec48aad5c4724a9b177a8d1d1e 27-Oct-2011 Gilles Debunne <debunne@google.com> Performance improvement in TextView

Using a SpanSet to minimize the number the calls to getSpans.

Change-Id: I0a6e1fc7bd7a89325c2925bf98d59626d5e12995
extLine.java
0f0a3945ef98b3c30839ab7b746bf8cc55b78d33 26-Oct-2011 satok <satok@google.com> Make FLAG_AUTO_CORRECTION public

Bug: 5440299

Change-Id: Ia82745e793be741c1558ce15b189b63872107ddb
tyle/SuggestionSpan.java
d300e75eff0d5e54390400cbd3f80dc4cea8b617 17-Oct-2011 Gilles Debunne <debunne@google.com> Wrong word cut at end of lines with spaces

Bug 5185017: when the line length is exceeded at a space character,
we use the previous ok width, and the last word is wrapped to next line
although it fits.

This back-track also generates problem with the span parsing, where the
spanStart indexes are no longer monotonuously increasing.

Plus some refactoring in this code (unused parameters, calls to out())

Change-Id: Ia8cd310a732752af3bd370bf0a16db23d40e83f2
ynamicLayout.java
taticLayout.java
9d8d3f1539ce5bdf512bd47ec1648609d6cde5b1 13-Oct-2011 Gilles Debunne <debunne@google.com> Spell checher's language synced with keyboard.

Bug 5379440. The spell check is now using the IME's language to
do the spell checking. Changing the input language triggers a
new spell check of the entire text.

Optimizations: ArrowKeyMovementMethod re-uses the TextView's
wordIterator, already set to the correct language.

One wordIterator shared by all SpellParsers in SpellChecker.
Cannot re-use TextView's because of concurrency issues.

With the current implementation, one has to type a new character
to see the new spell checking take place.

Change-Id: I0e460c0a6777548f89d03d6b68f3deea6606c17f
ethod/ArrowKeyMovementMethod.java
59ba2b2fabf91af7685f3c00eea7fc155d05f1fc 10-Oct-2011 Gilles Debunne <debunne@google.com> Merge "Bug 5250788: LatinIME slows down as amount of Text increases"
9ca4b4377c6c94cca181c57bd9c784386223d274 07-Oct-2011 satok <satok@google.com> Add a hidden flag for the auto correction indicator in SuggestionSpan

Bug: 5245468

Change-Id: Ic111554da86fefd47dd9a26c1bd41e4ee57dc552
tyle/SuggestionSpan.java
287d6c6e12a38864d019fa7b9184206bc8a31ea1 06-Oct-2011 Gilles Debunne <debunne@google.com> Bug 5250788: LatinIME slows down as amount of Text increases

Removed unnecessary CharSequenceIterator and made the WordIterator
work on String instead of CharSequence

Submit words to the spell checker by batches.

Refactored WordIterator to make it intrinsically local.

Change-Id: Ie9e30691985a130fa55cd052005ddb22a21761cb
harSequenceIterator.java
ethod/ArrowKeyMovementMethod.java
ethod/WordIterator.java
e921572bda621b75a217bce115c2b605caf9b26a 05-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Revert "Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)""
ad0b051b133baf92f199c96a8ac1e81b3393190c 05-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Revert "Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)"

This reverts commit a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7
ynamicLayout.java
taticLayout.java
67ed574cdb0a66c42a9827f7dbc54df98578271b 30-Sep-2011 Gilles Debunne <debunne@google.com> Merge "Bug 5250788: EditText gets slower has the entered text gets longer"
46c78b4de14b18152db031d155006e6f45aa9eaa 30-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)"
a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7 29-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)

- make DynamicLayout honor max lines
- make StaticLayout.generate() take maxLines as a parameter instead of using the field mMaximumVisibleLineCount

Change-Id: I9eafb1be4b8bb2aa881514955a6903f559cb6a1e
ynamicLayout.java
taticLayout.java
f4314dffbd1b082bb6458b2d6bee69bda4ce2673 29-Sep-2011 Gilles Debunne <debunne@google.com> Merge "Too many SpellCheckSpans are created."
31e04656e77a881960daa7a6974e8f805d9cef43 29-Sep-2011 Scott Main <smain@google.com> docs: add some more info to Time javadocs

Change-Id: I3c5ca668acda734f8a0da0ffbbc1bfa77ed72c2a
ormat/Time.java
d5ea0a1bc2fae7c6084b0c5cc9b68a925a0f50f6 29-Sep-2011 Gilles Debunne <debunne@google.com> Bug 5250788: EditText gets slower has the entered text gets longer

Profiling showed that the bottle neck was in the word iterator.
Now initializing the word iteerator to only a window around the region
of interest to reduce the text analysis.

Change-Id: Ibfa4952cbf52a1b36726f965143ac7a6dc63673e
ethod/WordIterator.java
b062e81e3a16af43db3619d721aa522c137d1aa9 27-Sep-2011 Gilles Debunne <debunne@google.com> Too many SpellCheckSpans are created.

Removed the Runnable in SpellChecker, spell check is triggered at the end
of updateSpellCheckSpans instead of when a new SpellCheckSpan is created.

Cache the spans in updateSpellCheckSpans to limit the calls to getSpans.

When typing, every new letter in a word will create a SpellCheckSpan
(this is needed in case the user taps somewhere else on the screen)
The SpellCheckSpans are pooled in SpellChecker to limit unnecessary new
SpellCheckSpan creation.

Minor optimization on test order in getSpans to avoid some calculation.

Spell check is not started everytime the selection is changed (would be
triggered when the insertion handle is moved). Explicitely do that only
on tap.

Change-Id: Ibacf80dd4ba098494e0b5ba0e58a362782fc8f71
pannableStringBuilder.java
tyle/SpellCheckSpan.java
52edaa9cfb612bd20b0f718dc95e576f55d9367e 26-Sep-2011 Gilles Debunne <debunne@google.com> Merge "Bug 5250788: TextView gets slower as the text length grows"
8013290dd0e9d3eabc3611d7eca47aa50bdceed0 26-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5366547 TruncateAt.MARQUEE should be replaces with "two dot" ellipsis on hardware that dont support MARQUEE"
09175735c562652be1a1b0dc0f941d36ac4f076a 26-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5344067 android.text.DynamicLayout.sStaticLayout can hold onto an Activity, potential memory leak

- make the StaticLayout constructor not depending on the text as we just need the "generate()" call to be done

Change-Id: I65249e65ed6446b6ac13dbf8c8f58fcdf54046cb
ynamicLayout.java
cb332649e44db86ff8b4e7f006db4bbfd82fed55 24-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5366547 TruncateAt.MARQUEE should be replaces with "two dot" ellipsis on hardware that dont support MARQUEE

- introduce TruncateAt.END_SMALL
- code refactoring for suppressing use of hardcoded constants

Change-Id: I70e24857cd5d6bd012a743cbc0ba46fbd06d5457
taticLayout.java
extUtils.java
ba7bc591018c7a8a7f5c123f71161b69652f9bde 24-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5349461 TextView: text that ends with an ImageSpan causes line height to shrink to ImageSpan height"
8a5137a5aeba39cbc2c57c83ef79241b446d0cb7 23-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5349461 TextView: text that ends with an ImageSpan causes line height to shrink to ImageSpan height

- save current metrics values before updating them

Change-Id: I2d88dd7d30e8e01d0c5e2328973f256b689672b2
extLine.java
945ee9b1661e60e0074d4f16f61fc147c728c6bf 20-Sep-2011 Gilles Debunne <debunne@google.com> Bug 5250788: TextView gets slower as the text length grows

getSpans was called too many times in handleRun. Pre-compute the
subset of intersected spans and iterate over a subset of it instead.

Moving the instanceof test in getSpans after the other tests also
speeds things up a lot.

On a text with ~300 words, all with a span attached, getSpans went down
from 78% to 14% of the CPU usage.

Change-Id: I59bc44f610e9a548e0dcec68b180934da9e5c559
pannableStringBuilder.java
extLine.java
b2beb92073cea6e472748e729ac8e265ca83a925 22-Sep-2011 Gilles Debunne <debunne@google.com> Bug 5279842: mis alignment after scroll

Refactored.

Original problem was the ALIGN_RIGHT case that was not handled.

Change-Id: Id01b75ac404b7ee92143e8cf6e3a3a838b794da8
ethod/Touch.java
c9fd978da60f76c0576150c55629a034e1fa19fb 09-Sep-2011 Gilles Debunne <debunne@google.com> Bug 5281947: add to dictionnary option promoted in suggestions.

When several SuggestionSpans are available at a given position, their
content are merged, in creation time order.

As a result, the IME's suggestions are picked before the spell check, and
no add to dictionnary option is created.

This CL modifies the comparator to make easy correction spans appear first
(Voice IME), then misspelled words and then regular suggestions.

Also avoids the creation of a new comparator and length hash map on every display.

Change-Id: I1f9f031a6fdcbbc09f248a192b83051092765f8e
extLine.java
extPaint.java
tyle/SuggestionSpan.java
51322732739b355dd842abc9cef34df8613b2626 10-Sep-2011 Gilles Debunne <debunne@google.com> Hide method to fix the build

Change-Id: I5a556454a722bf037932632fa7e6ee6a2832a68d
tyle/SuggestionSpan.java
fa4e2d994bb398b89d08304bb233671ef1a5d5f8 09-Sep-2011 Gilles Debunne <debunne@google.com> Bug 5278456: text highlight color depends on the type of suggestion spans.

Change-Id: I76ac02b7688a297c0e83d593f446a4cf2ee36015
tyle/SuggestionRangeSpan.java
tyle/SuggestionSpan.java
63c885f881b64a20466fc351731cd7018e6d7a80 07-Sep-2011 Gilles Debunne <debunne@google.com> Bug 5250788: Fix memory consumption issues in TextPaint.

The increased size array was discarded in set. Reuse it instead if
possible to avoid more size increases later.

Change-Id: I9ab95ed0f4d4613dd1e28f02894bb19ecee7df41
extPaint.java
c6fc20a91bdf6f5d8cd8784324a55e39bcb7077c 07-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5262565 Need to remove CharCount TextDirectionHeuristics"
be724dbc45154f2c33cc789c89eb2ac2a7516cbe 06-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it"
e3bf88da23bfadd89a35b6dec769ea825e5ecd6e 06-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5262565 Need to remove CharCount TextDirectionHeuristics

- update unit tests too

Change-Id: I7c518f58a9f17cb679bc3913bdd38243f7ad2195
extDirectionHeuristics.java
d3462ad713a1ef101ee11b03a088343254faad97 06-Sep-2011 Romain Guy <romainguy@google.com> Merge "Prevent crash when using <em> or <strong> in spanned strings Bug #5258853"
dd808c0bd498854e878db257bbf82b73ea5000b4 06-Sep-2011 Romain Guy <romainguy@google.com> Prevent crash when using <em> or <strong> in spanned strings
Bug #5258853

Change-Id: Ifde1efe9ba3b44cfa0be55d51b2c9696cbe096f5
tml.java
34d2eba560f83f4eb665cdc039cf02bf96c201da 01-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it

Part 2

- make selection handles aware of the run direction

Change-Id: Idf41036de53d8968e7ae27eb87aea09e86bcd652
ayout.java
572527f2c337ec9266ebcd931a66e17d2ae63e01 02-Sep-2011 Gilles Debunne <debunne@google.com> Merge "Remove the suggestion underline when the TextView loses focus."
f3d78eac0f565b51d5e657e6cb21b4a48ef6f660 02-Sep-2011 Gilles Debunne <debunne@google.com> Merge "Added an add to dictionary option in suggestions for misspelled words"
fe5e9834a3086ab6bd99a4cb0d9273fdeb52ecd8 02-Sep-2011 Luca Zanolin <zano@google.com> Remove the suggestion underline when the TextView loses focus.

Only the easy correction (i.e., voice ime corrections) will lose the underline, while the misspelled span will not.

Change-Id: If96c17473dd70c99b808739ddde800cc93551e2a
tyle/SuggestionSpan.java
70a6312f09329bd0b19343bc7906f9ce665fe3ad 01-Sep-2011 Gilles Debunne <debunne@google.com> Fixes around text selection

Text selection mode was started by two consecutive taps inside a
field with selectAllOnFocus.

ArrowKeyMovementMethod does not respect the possible cancelLongPress and handles up events.
As a result a scroll that happens to end up at its initial position will be considered a tap
and will move the cursor.
This is however not considered as a tap in TextView and a possible selection mode would not
be stopped in that case.
Fixed by making ArrowKeyMovementMethod aware of the cancel that happened in Touch.

Change-Id: I07372b703f250e1edc7ee0665318ce30441b9187
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
e90bed18cc123c0963bbcc023976fa355c16a352 30-Aug-2011 Gilles Debunne <debunne@google.com> Added an add to dictionary option in suggestions for misspelled words

Change-Id: I031f17a76b4a81ae375b778046b8c391f9b8b2b2
extUtils.java
8a16f92270f4cc803292adfb533838603c67d742 01-Sep-2011 Gilles Debunne <debunne@google.com> Merge "Using ListView for Suggestion popup window"
be566b488a78e9e5ba0971ebe888d41511a11fa8 31-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it"
3716601573f5a562f98721130e25002ad88eb164 31-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it

- make the selection green highlight work

Change-Id: I4e3b88e3720288f973b1b9e68afa8f800ad13779
ayout.java
0eea6681519277310e1733d791bfc0342b8e5cea 29-Aug-2011 Gilles Debunne <debunne@google.com> Using ListView for Suggestion popup window

New background assets from Bug 5204807.
New text selection color and associated handles, bug 5217848.

Change-Id: I4eaea6be732843d8ff344400d029b4a1b80b084f
extUtils.java
tyle/EasyEditSpan.java
tyle/SuggestionRangeSpan.java
b5305007a6eb10457aa97b9791fed62d3542e3c1 31-Aug-2011 Gilles Debunne <debunne@google.com> Merge "Add EditTextShortcutSpan to provide edit short cut in the text view."
c6f19da0ff703adff8a6a06e0b19ea46abada644 30-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5197549 android.text.cts.StaticLayoutTest#testGetEllipsisCount fails on IRK49E mysid-userdebug"
e6d368218918f911b1954296dab25bf84147b4c6 30-Aug-2011 Luca Zanolin <zano@google.com> Add EditTextShortcutSpan to provide edit short cut in the text view.

At the moment, EditTextShortcutSpan allows only the deletion of the text. In the future, we may decide to add extra functionality,
like "retry" where all the text is removed and a specific IME is triggered.

Fix the underline. The underline is not defined in thickness, and not as a multiplier of the default underline thickness.

Change the behaviour of SuggestionRangeSpan to match the specification.

Change-Id: I80437d9887c7a2ff8f62c38afbb0cb7add7ee9c8
extLine.java
extPaint.java
extUtils.java
tyle/EasyEditSpan.java
tyle/SuggestionSpan.java
aef455fd5b4c667267deb050bc7997e737b7507e 30-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5197549 android.text.cts.StaticLayoutTest#testGetEllipsisCount fails on IRK49E mysid-userdebug

- make the ellipsizing condition easier to read
- allow ellipsizing only and only if
- not MARQUEE
- single line
- END only on the last visible line when multiple lines

Change-Id: I6b08e4a735ebc4875a208f0538d9cf937240316e
taticLayout.java
474cac1c212e1f02deaffe5512941af9cb2a760b 29-Aug-2011 Gilles Debunne <debunne@google.com> Merge "Suggestions popup window is dismissed on tap outside."
94d5e9ad6533864f098b99c231d69c77230a828f 29-Aug-2011 Romain Guy <romainguy@google.com> Italic should be italic and bold should be bold.

Change-Id: I68933a7d7c32951c4d52d945baaedcb2583caef4
tml.java
d32f27aec04dd91edf488f280ca609e0b55aec9e 26-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5199577 TextView with android:password="true" is showing the "dots" on the left even if the password chars are RTL"
7810b5f8cffb3c2c98fd0df579f4da5a9ac6cc73 25-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5199577 TextView with android:password="true" is showing the "dots" on the left even if the password chars are RTL

- force TextView to LOCALE text heuristic when in "password" mode
- remove TEXT_LAYOUT_DIRECTION_UNKNOWN_DO_NOT_USE
- LocaleUtils.getLayoutDirectionFromLocale() returns "LTR" is locale is NULL or ROOT

Change-Id: I182c46aaf2d73c8b18967fffa230bfabec91ed06
extDirectionHeuristics.java
28294cc74491885c7fe4442353026f01f5b773e8 24-Aug-2011 Gilles Debunne <debunne@google.com> Suggestions popup window is dismissed on tap outside.

But now the tap is not handled at all, as it was before. To do this, the popup window
is now focusable. As a result, the TextView's window loses focus. We hide the
cursor to prevent a non-blinking visible cursor. We should also fake the
state of the parent TextView to keep it visually focussed.

SuggestionRangeSpan and SpellCheckSpan had to made Parcelable since they are recreatedi
when the TextView is re-created when the popup is dismissed.

Change-Id: Ic99b2c4f02c282394f214938dd19168547af4886
extUtils.java
tyle/SpellCheckSpan.java
tyle/SuggestionRangeSpan.java
6435a56a8c02de98befcc8cd743b2b638cffb327 05-Aug-2011 Gilles Debunne <debunne@google.com> Spell checking in TextViews

New UX interactions (the Paste action is no longer displayed after a delay)
suggestionEnabled flag replaced by existing input type flag.
removeSpans fixed in SpannableStringBuilder to always send notifications
SuggestionSpan handled by TextView instead of SpannableStringBuilder

New span update algorithm to correctly handle edition around word boundaries.

Change-Id: I52c01172f19e595fa512e285a565a3fd97c3c50e
pannableStringBuilder.java
ethod/WordIterator.java
tyle/SpellCheckSpan.java
tyle/SuggestionSpan.java
c2d256b41587ff44efb6373885affe02e5df80b5 23-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Improve TextDirection resolution"
a646145c335ba821f01d9e4f8be2583eb9fd7266 20-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Improve TextDirection resolution

- remove unuseful heuristics
- tune Javadoc

Change-Id: Id72a158b3a17a528423d278b1cbfd95b8c2951b5
extDirectionHeuristics.java
1666dc60412c4a2506c08dbc19a992514fe7dffb 18-Aug-2011 Jeff Sharkey <jsharkey@android.com> Merge "Combine list of CharSequence with delimeter."
3de510313a44977a25ecb5253603fb2df2cc34b2 18-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5175022 Easy mode in MeasuredText.setPara() is no more used"
4b60c30838fbd635964f1e79c057de5048dcc66f 18-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5175022 Easy mode in MeasuredText.setPara() is no more used

- use the real TextDirectionHeuristics constants
- make more formal that LayoutDirection should be resolved BEFORE TextDirection
- reset TextDirection if LayoutDirection is recomputed
- remove non used TextDirectionHeuristic.isRtl(CharSequence...)

Change-Id: I1d53a7e3ee324cfd27785bb4d715d93de8d9ff4d
oringLayout.java
extDirectionHeuristic.java
extDirectionHeuristics.java
fa4d7754edcbca7a3f651fe319e42d7624518452 18-Aug-2011 Jeff Sharkey <jsharkey@android.com> Combine list of CharSequence with delimeter.

Change-Id: I7d86b89a84f6d91e5441c8af63310b37f16974fc
extUtils.java
4cee03a85f5756227e3c74965a5d3fb52bbf57a9 16-Aug-2011 Gilles Debunne <debunne@google.com> Merge "Change the behavior of SuggestionSpan."
7d1c55fad8194e2c82f5f88f98ab5569f9c52ab9 16-Aug-2011 Luca Zanolin <zano@google.com> Change the behavior of SuggestionSpan.

SuggestionSpan can be accessed in two different ways:

- by tapping on the text (easy access)
- by tapping on "replace" pop-up (not easy and difficult to discover)

The "easy access" will be used for dictionary suggestions and voice recognition suggestions.

The suggestion span can be rendered into two different way:

- default, text is underlined in blue
- spelling error, text is underlined in red

Change-Id: I0af0fe6700d0ad588facb21c021dc6f59ef172f1
tyle/SuggestionSpan.java
8059e0903e36cbb5cf8b5c5d5d653acc9bbc8402 11-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #3388534 Long file names are improperly displayed when played

- force ellipsising when there are more lines found than maxLines
- do not care about lines when we have reached maxLines
- also fix relayouting when changing maxLines thru setMaxLines()
- do not allow START / MIDDLE ellipsis when there are multiple lines
(and print a log accordingly)

Change-Id: I90f5a7f5200a220aceee01fb7300bec2c4c3a075
ynamicLayout.java
ayout.java
taticLayout.java
extLine.java
b724c346e19d63d7ff194b2b06c4a1e0f7bc07b7 13-Aug-2011 Amith Yamasani <yamasani@google.com> Revert "Use a weakreference to prevent the static variable from holding an Activity."
Bug was fixed in a different way.

This reverts commit 352c01e2133b71918fa1cb2783a0a10e56117775.
ynamicLayout.java
352c01e2133b71918fa1cb2783a0a10e56117775 26-Jul-2011 Amith Yamasani <yamasani@google.com> Use a weakreference to prevent the static variable from holding an Activity.

Bug: 5057764

Change-Id: If734e3ef4928b21a5e31e0ad50c97da287c3c116
ynamicLayout.java
dd8f5ed79c7baed35b3f04e4778aff7867653255 11-Aug-2011 Gilles Debunne <debunne@google.com> Added support for colored / thick underlined text.

Change-Id: Ib0e259dd20546855899bf091f694e41e7051fecb
extLine.java
extPaint.java
3aa7bf7330eaf231d00f7dfdcb504215822148be 10-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5017432 NPE when mixing different spans with different font sizes"
b8503eb8ac26c4801b565fcfc655fca02f9bb726 10-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5017432 NPE when mixing different spans with different font sizes

- fixed typo

Change-Id: I282f8bf2a72117709666e1ffc9ec8e8b5583d321
tyle/TextAppearanceSpan.java
61ccc6a203e1b0fb235a4eed2b40e0c080f57f0c 09-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge changes I46744e51,I1f566cce

* changes:
Solidify and optimize Paint text related APIs
Add more optimizations for Text measuring / breaking / getting advances
98d29b44f76fea1dd325f06240557dfb253d635e 08-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Follow up to TextView's baseline is correctly computed for empty text"
15c097a1c23105cdc0dd66dd5605ff35467d7118 08-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Add more optimizations for Text measuring / breaking / getting advances

- do not go to native if this is not needed (empty or null text)
- do expandMetricsFromPaint() in TextLine when needed instead of calling handleText()
with emty string just for doing expandMetricsFromPaint()

Change-Id: I1f566ccef66cbc990ebbb77ef149899119e37e84
extLine.java
9c89d5dc8268c9740ffabbcbc3bbd39a37fc57f0 08-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Revert "Fix bug #5114358 If writing Numbers with Hebrew & Arabic keyboard, they appear as LTR"

This reverts commit 6850c7aff5b08225ab1793dd721a795cb4192f6f

The referenced bug was actually not a bug. It was working as intended.
extDirectionHeuristics.java
850dffa01ba9111799f24800ae8550eca457d757 08-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Follow up to TextView's baseline is correctly computed for empty text

Was bug http://code.google.com/p/android/issues/detail?id=15598

- optimize https://android-git.corp.google.com/g/#/c/107901/1

Change-Id: I20abd82a97adc71f04a5afba54eb679f708236f8
extLine.java
6850c7aff5b08225ab1793dd721a795cb4192f6f 04-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5114358 If writing Numbers with Hebrew & Arabic keyboard, they appear as LTR

- add missing case for Arabic numbers

Change-Id: I7efe8172efee410eaafddec4a1465c1aa93a125b
extDirectionHeuristics.java
e5ea4403ce58982522554b7ff23f41e6551923c1 01-Aug-2011 Romain Guy <romainguy@google.com> Plug memory leak in EditText.

Change-Id: I0b42c23ceeaa958d02255945c35ff6807c177114
ynamicLayout.java
easuredText.java
taticLayout.java
467cabe879cb58df96f6a84879f5fb226e049aeb 26-Jul-2011 Kenny Root <kroot@google.com> Throw NullPointerException on args to Time#compare

Check for null on arguments to Time#compare(Time, Time) before passing
it down to JNI code.

Bug: 5073949
Change-Id: I077e9d5194a89206d1e51fc89a72c8a72e29f8f1
ormat/Time.java
cb379120456d8065d742021fc5c66748fc8a11a8 07-Jul-2011 Doug Felt <dougfelt@google.com> Implement textDirection heuristic selection.

Change-Id: I2fcf18de573f2d66494fa5ed61e4273c3c6078c7
oringLayout.java
ynamicLayout.java
ayout.java
easuredText.java
taticLayout.java
extDirectionHeuristic.java
extDirectionHeuristics.java
extUtils.java
4dacef25662de37825fa7a67fd6bdb318b31d8d9 08-Jul-2011 Gilles Debunne <debunne@google.com> Fleshed up SuggestionSpan documentation. Bug 4553472

Change-Id: I3b5be9a6da79398b03d98eb33eb61a55fd702960
tyle/SuggestionSpan.java
7f8f79a1ff086c04a3ad2a442b1d39a8186e3e50 08-Jul-2011 Adam Powell <adamp@google.com> Add ALL CAPS style to TextView/TextAppearance

Switch out ugly hack in action menu items for the new style.

Change-Id: I68a0ed62a352b14d499e6478b82bbc12dcb5a030
ethod/AllCapsTransformationMethod.java
ethod/TransformationMethod2.java
c0ccf0c47c00942a9d0f2670600a8f2d4d7adb5b 24-Jun-2011 Doug Felt <dougfelt@google.com> Support control of text alignment.

Change-Id: Id6f3682f67ba2e6811e3014cd34a281e6dd0a469
ayout.java
da188fbe4b4d7b91e1440afe5a1279d0fd7a91eb 31-May-2011 Gilles Debunne <debunne@google.com> Merge "Fix for bug 4499752 - Detect nulled layouts in HandleViews"
e8e833fbe8faaa0d49de517040bf01d18c7b9330 28-May-2011 Gilles Debunne <debunne@google.com> Merge "Replacement spans correctly measured in TextView"
d4bb0b01c6caccbaef1baec377a59c10790da35c 28-May-2011 Gilles Debunne <debunne@google.com> Fix for bug 4499752 - Detect nulled layouts in HandleViews

Change-Id: I6a7289150bf461cdf4cca0aff4aa4a0400e0d553
ethod/WordIterator.java
9a3a8848643faf477335675136efba9a6e58db75 27-May-2011 Gilles Debunne <debunne@google.com> Replacement spans correctly measured in TextView

Bug 4444591

Change-Id: I74c94445806d6c00b0971146cac57363c7d3f205
easuredText.java
bc7cdb6783d059249133b1c0baf52c305c6b4a33 27-May-2011 Romain Guy <romainguy@google.com> Remove extraneous log.

Change-Id: I91b248410d69836c7a3b56eb0867224ccb4a5336
extLine.java
42c5a1666c4e576ccd5974233513100aad2c1534 26-May-2011 satok <satok@google.com> Fix internal variables and equals in SuggestionSpan

Bug: 4443922

- Instantiating other package's class for the name is complicated, so we changed the internal value for the notification target class from Class to String.
- Implement equals

Change-Id: Iaf7682be777f0027d33c9a3be4609ac01b6950ad
tyle/SuggestionSpan.java
f9f01008624e2d28c15a90d942fa36f98c8c967d 19-May-2011 satok <satok@google.com> Add Apis to send notifications when the suggestion was picked

- Due to a strong request from VoiceIME

Bug: 4443922

Change-Id: Ia539de0acf66053e0349daec459d75e36805f6bf
tyle/SuggestionSpan.java
3bca69b09fb51116b5eb18fb91cb991c1450e384 24-May-2011 Gilles Debunne <debunne@google.com> TextView uses floats for touch event positions.

This is the type returned by event.getX/Y methods. Conversion
to ints is only performed when needed. Low performance impact
since there is only a minimal amount of computations on these
values.

Change-Id: I53a56efe5e3a1a96911adc25fedaab7f40f1ba8e
ethod/ArrowKeyMovementMethod.java
ee511cc529bcbb8551af4313cf1d2bbf0362de14 05-May-2011 Gilles Debunne <debunne@google.com> SuggestionSpans are preserved when picked.

This is the exception case: text replacement should NOT remove SuggestionSpans
when this is the result of a Suggestion pick in the popup.

Save them and restore them after the text replacement.
Only spans that entirely englobe the replaced region make sense after the
text replacement.

Change-Id: Ib18eb6437c3a63fd0e788ebd4565c8f42e83503b
tyle/SuggestionSpan.java
f4c4a276e2a78528d2387319313e99c559142cf9 02-May-2011 Conley Owens <cco3@android.com> Merge commit 'f395e304' into m

Conflicts:
core/tests/coretests/src/android/text/TextUtilsTest.java

Change-Id: I7439f7f80cf91ff654c0ddd79c3e6b3808ba4784
f395e3042accd7f3f5df466dbb532befcd1db5d4 30-Apr-2011 Conley Owens <cco3@android.com> am 19653c64: am 425db473: Merge "CHAR_SEQUENCE_CREATOR cannot handle null string"

* commit '19653c6440eaf7328ecbc01c3ca6d7a910906484':
CHAR_SEQUENCE_CREATOR cannot handle null string
a02a9e602bf1b5337cde30ee16ca6c4a36d9f07b 30-Apr-2011 Conley Owens <cco3@android.com> am 27e8f1a3: am 8b22ef66: am e41d2aed: Merge "Using robust equality check."

* commit '27e8f1a3a6b43592e3d419d7a3cfc6192a86bf5c':
Using robust equality check.
1b38cc30573589b5cdf7bf5c1d848333477269e3 30-Apr-2011 Conley Owens <cco3@android.com> am 014757ee: am a9517012: am 1e29552b: Merge "We don\'t need these local references."

* commit '014757eea22fc9cceede1548c579c33c79464001':
We don't need these local references.
95b533911cfcb1d0532f9277167edab478130006 30-Apr-2011 Conley Owens <cco3@android.com> am 49df110a: am d66a92e6: am da882181: Merge "Eliminating dead code with no other effect than consuming battery life."

* commit '49df110aeb94ada810a8eec0540e30a25c267a56':
Eliminating dead code with no other effect than consuming battery life.
27e8f1a3a6b43592e3d419d7a3cfc6192a86bf5c 29-Apr-2011 Conley Owens <cco3@android.com> am 8b22ef66: am e41d2aed: Merge "Using robust equality check."

* commit '8b22ef66ef1a67333e2f1d4250d2c134b50ef91a':
Using robust equality check.
014757eea22fc9cceede1548c579c33c79464001 29-Apr-2011 Conley Owens <cco3@android.com> am a9517012: am 1e29552b: Merge "We don\'t need these local references."

* commit 'a95170122619f5442d5efbdf2e37f91dbf455ab9':
We don't need these local references.
49df110aeb94ada810a8eec0540e30a25c267a56 29-Apr-2011 Conley Owens <cco3@android.com> am d66a92e6: am da882181: Merge "Eliminating dead code with no other effect than consuming battery life."

* commit 'd66a92e6875bfc835adf0b100607afbf4bfc2761':
Eliminating dead code with no other effect than consuming battery life.
75beb336f4b164c3bed5d4b91f0b9c6ea49a3437 29-Apr-2011 Gilles Debunne <debunne@google.com> SuggestionSpans are removed around edited text.

SuggestionSpans do not make sense anymore when the text they
refer to is modified. Removed these at the lowest possible common
level: In the SpannableStringBuilder that is used to back the Editable.

This way, IME do not have to care about removing these when they change
text. And they cannot forget to so either.

Also fixed a bug in TextView's paste with multi-item paste text (never
exercised, since we have no source for such a thing).

Change-Id: I08ed921f8c04ffb1a00936a3e554a85ee82f103c
pannableStringBuilder.java
425db473a05e4204301bf46d4ab6f51b12d9c447 29-Apr-2011 Conley Owens <cco3@android.com> Merge "CHAR_SEQUENCE_CREATOR cannot handle null string"
988ec4bdc8a06a95628613e1e98c2ba30bc2ff71 29-Apr-2011 Gilles Debunne <debunne@google.com> Merge "TextView's baseline is correctly computed for empty text."
f483e514d4ed3b93cc5ba22beb9c85efcda75535 29-Apr-2011 Gilles Debunne <debunne@google.com> TextView's baseline is correctly computed for empty text.

Bug http://code.google.com/p/android/issues/detail?id=15598

Change-Id: I3aae29b55dc92acca3883b8d14e01dc1c79c2243
oringLayout.java
extLine.java
e41d2aed9c8d990d31af70642ae688dad1d8fb4b 28-Apr-2011 Conley Owens <cco3@android.com> Merge "Using robust equality check."
1e29552bd5feeb24952a0486e3263396978212df 28-Apr-2011 Conley Owens <cco3@android.com> Merge "We don't need these local references."
da882181245fdf3eca827680d656cd298c9c318f 28-Apr-2011 Conley Owens <cco3@android.com> Merge "Eliminating dead code with no other effect than consuming battery life."
0f9ae274b4a9641d8e6933108466dc432f5a0474 27-Apr-2011 Gilles Debunne <debunne@google.com> Typo in TextAppearanceSpan documentation

Dim does not exist anymore.

Change-Id: I83268657accfef15561ce313b66108adc108dfc6
tyle/TextAppearanceSpan.java
3f92b8b18856371f561955197b488191433977e6 23-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Clean getTextRunAdvances() APIs"
0a1413e4bf9dcda2a8abb2287e43f612a7fb2453 22-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Clean getTextRunAdvances() APIs

- remove ICU reference in API names
- use a "reserved" int parameter to pass either "0" for Harfbuzz or "1" for "ICU"

Change-Id: I88b4f76feafd203a6999cd7349402fa36a9a4b2a
raphicsOperations.java
pannableStringBuilder.java
e193fd14346e6e808c6c266d2bb13c0c0cc6890e 18-Apr-2011 Gilles Debunne <debunne@google.com> Extracted WordIterator class.

This class will be used by TextView and the IMEs to cut the
text into words.

New getBeginning and getEnd methods that return word limits.

Added Locale to constructor.

Change-Id: Ie8ad590ebca4b48517ec7b4c3768b3e41879166e
election.java
ethod/ArrowKeyMovementMethod.java
ethod/WordIterator.java
a00972ab9a95f945342fdbf58956992e01310398 14-Apr-2011 Gilles Debunne <debunne@google.com> Fix around suggestionSpan.

Since the kind was unknown, doing a copy/cut on text with a SuggestionSpan crashed.

Change-Id: I10c0677b3587897b82c794db57d7b07149f12e09
extUtils.java
tyle/SuggestionSpan.java
e9f05b00794529ceb05301d94a6e08b05c43a5cb 12-Apr-2011 Gilles Debunne <debunne@google.com> Merge "Fix in BreakIterator."
daa4a95a54909d53a325eb06ca22130743b5be04 08-Apr-2011 Gilles Debunne <debunne@google.com> Fix in BreakIterator.

An index equal to the length of text is indeed a valid position,
representing a cursor located after the last character.

Also changed iterator to comply to the documentation.

Change-Id: I7b9e427e4e37df20ab7e66d99053a9d8a6af6eb3
harSequenceIterator.java
ethod/ArrowKeyMovementMethod.java
b3fc1a5b8b8f88eaf00b05957523cbdc0944b24b 06-Apr-2011 satok <satok@google.com> Rename CorrectionSpan to SuggestionSpan

Change-Id: I004b2e012b2de4de959a31da1f55b63ca7c14199
tyle/CorrectionSpan.aidl
tyle/CorrectionSpan.java
tyle/SuggestionSpan.aidl
tyle/SuggestionSpan.java
cee2051adac53a85653ba8ead3a671c0978af43b 07-Apr-2011 Martin Wallgren <martin.wallgren@sonyericsson.com> CHAR_SEQUENCE_CREATOR cannot handle null string

TextUtils.writeToParcel can handle null as input CharSequence
but createFromParcel will throw NullPointerException. Transforming
to and from parcel should handle null in the same way.

Change-Id: I707ea9be2091d2655c5f63eaa57c5674befa5ad3
extUtils.java
bc20ac85a56dec157226a2aa4239190d5714366d 05-Apr-2011 Brad Fitzpatrick <bradfitz@android.com> am e511fb33: am 9b1b6439: am 2ed72048: Merge "Always return a valid index from Rfc822Tokenizer.findTokenEnd()"

* commit 'e511fb33d33f0ba83ce437f615fa236f369b5ade':
Always return a valid index from Rfc822Tokenizer.findTokenEnd()
e511fb33d33f0ba83ce437f615fa236f369b5ade 05-Apr-2011 Brad Fitzpatrick <bradfitz@android.com> am 9b1b6439: am 2ed72048: Merge "Always return a valid index from Rfc822Tokenizer.findTokenEnd()"

* commit '9b1b64399502af0a08beac3014f2294644753602':
Always return a valid index from Rfc822Tokenizer.findTokenEnd()
114f98a75334813fe116da3d95567db8984d45b9 18-Jan-2011 Mattias Niklewski <mattias.niklewski@sonyericsson.com> Always return a valid index from Rfc822Tokenizer.findTokenEnd()

If an invalid input string ends with a backslash inside a comment
or quoted string, the returned index would be past the end of the
string. In one case this would lead to a runtime exception being
thrown from MultiAutoCompleteTextView.performValidation.

Change-Id: If629372b429716c25cdc25764f088e95d4812d57
til/Rfc822Tokenizer.java
eee49c699c035ffba188417489f40d34f587d65c 25-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix text redering issue where the text was sometimes truncated

- mostly was visible in Settings apps / Wi-Fi networks summary info for each network
- correctly setup the local SkPaint for advances computation
- improve test app for adding live resizing

Change-Id: Ia031fe1b115b521ba55c7e68f2a26300f02e48ca
raphicsOperations.java
pannableStringBuilder.java
67bcd82b40a28115678f1008e7c91c685b3bdcd3 29-Mar-2011 Jeff Sharkey <jsharkey@android.com> Merge "Support Ctrl-based EditText movement."
e3797a15fbf769a0abcbe121cfd33b4b658aea1e 21-Mar-2011 satok <satok@google.com> Removed APIs for setCorrectionSpan from InputConnection

("setCorrectionSpan" was added in Id3abc9ea4d11753cd )

Also..
- Added a class java doc for CorrectionSpan
- Removed FLAG_DEFAULT
- Changed the return type of getSuggestions from Array<CharSequence> to String[]

Change-Id: If5eb091e307a7a40c5b4a70ec1fe6059ecd9fb2d
tyle/CorrectionSpan.java
e982dfc1bae36620f67371efc7b0a0f8adc9450d 22-Mar-2011 Jeff Sharkey <jsharkey@android.com> Support Ctrl-based EditText movement.

EditText now listens for Ctrl+left/right to jump through text at word
boundaries. It also listens for Ctrl+home/end to move to start/end of
the full text. This emulates behavior found in desktop text editors.

Bug: 4081964
Change-Id: I98bd19c0d8707357847db3466648a83fd774dbaf
harSequenceIterator.java
election.java
ethod/ArrowKeyMovementMethod.java
ethod/BaseMovementMethod.java
2fb503f5102dd32a8ec391b26911528852703b90 17-Mar-2011 Jozef BABJAK <jozef.babjak@gmail.com> Using robust equality check.

Change-Id: Ie30684c472bfa38d0432f855f7075c34709958d5
ayout.java
97124117e811ce31d525a052f824e029ac8f16a6 17-Mar-2011 Jozef BABJAK <jozef.babjak@gmail.com> We don't need these local references.

Change-Id: I227c88eb4eb5d2842124e1c944cc18d5b28cccc1
ethod/MultiTapKeyListener.java
b74378ab354157228870800105edf11496cadbe3 22-Feb-2011 Jozef BABJAK <jozef.babjak@gmail.com> Eliminating dead code with no other effect than consuming battery life.

Change-Id: I4376902a4e9c301ff16f74137d86eeaff901bbb7
tyle/DrawableMarginSpan.java
adb435835fb9a5f2bb74d29930b239dde18504a7 09-Mar-2011 satok <satok@google.com> Add CorrectionSpan and APIs to pass a secure CorrectionSpan to TextView

- CorrectionSpan is a span which has suggestions made by IME.
This has a function to change the current IME to other IME specified
in this span. For security reasons, only the current IME
is allowed to use this function through InputConnection.
(IME token is used for checking the validity of it.).

- CorrectionSpan stores following information:

flags, subtype Id, InputMethodInfo Id, suggests, locale, original string

Change-Id: Id3abc9ea4d11753cdc4f483a2bb3128f49ba198a
extUtils.java
tyle/CorrectionSpan.aidl
tyle/CorrectionSpan.java
b37f7e59ee38472bdd3ca5fe66cc847890c862e2 15-Mar-2011 Brad Fitzpatrick <bradfitz@android.com> Merge changes I81fc2f90,I5e7fd759

* changes:
Using proper key for removing from map.
Removing wrong equals method in comparator.
1e3ac18e7ad03e02819f3e1a89d6a80a2bb7645f 08-Mar-2011 Gilles Debunne <debunne@google.com> Empty spans are not considered in text layout/rendering process.

Bug http://code.google.com/p/android/issues/detail?id=14786

Empty spans are affecting the text before and after them. See the
comment in TextUtils.removeEmptySpans for details.

Change-Id: I40376c32fd56a17efde6219f9b2593e4b4ab1ba1
taticLayout.java
extLine.java
extUtils.java
b0b225602cc84e0602450a417a562e8f53f29c6b 03-Mar-2011 Gilles Debunne <debunne@google.com> getTextRunCursor gets deprecated in SpannableStringBuilder

Change-Id: I2d408ebff90add7afc242bb01df9ab96c6fc7fa7
pannableStringBuilder.java
616f3835a0a67328b378cb1cbc126f17478ab4a0 03-Mar-2011 Gilles Debunne <debunne@google.com> Removed documentation links

Broken build.

Should the Paint fields be made public or should the SpanStringBuilder
method be hidden ???

Change-Id: I8ecea19104357ea53ad53b23d02a707ec422161d
pannableStringBuilder.java
5a39c95c004d856b47a844c962b1c2b18f4e96aa 03-Mar-2011 Gilles Debunne <debunne@google.com> Extra @Override removed in SpanStringBuilder

These were added in 99657 by using a misconfigured eclipse
save action that adds @Overirde to interfaces (Java 1.6 only).

Change-Id: I766bbde917b0bb063cb6d588ee276787e2f7db66
pannableStringBuilder.java
f09d510cd18854f41632433503ca46cc41362feb 03-Mar-2011 Gilles Debunne <debunne@google.com> Added documentation for SpannableStringBuilder.getTextRunCursor

Bug 3370244

Change-Id: I621a1599ff18da928044dd37a0d7cc861cc6f48f
pannableStringBuilder.java
7719436342611a106df5d379fedf180a5dd0809e 28-Feb-2011 Xavier Ducrohet <xav@android.com> am b732b7b5: am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."

* commit 'b732b7b5e8192501360edc15fb8c6399d11fb97d':
GpsLocationProvider: Clean up HAL initialization/cleanup sequence
Fixed GSM encoded network initiated position request
Ensuring thread-safe usage of DateFormat.
Fixing infinite loop for zero duration.
Fix for an infinite loop while scrolling lists.
WAPPushManager, WAP Push over SMS message handler
Add --non-constant-id to aapt.
b732b7b5e8192501360edc15fb8c6399d11fb97d 28-Feb-2011 Xavier Ducrohet <xav@android.com> am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."

* commit 'ce57a7f35344e76689d30f45964d1e37b78280cb':
GpsLocationProvider: Clean up HAL initialization/cleanup sequence
Fixed GSM encoded network initiated position request
Ensuring thread-safe usage of DateFormat.
Fixing infinite loop for zero duration.
Fix for an infinite loop while scrolling lists.
WAPPushManager, WAP Push over SMS message handler
Add --non-constant-id to aapt.
d17247164b3c4e8a41cbe1dd283ef2442ad76229 26-Feb-2011 Jeff Brown <jeffbrown@google.com> Make SHIFT+Backspace be forward delete.

Bug: 3416383
Change-Id: I8f20a6793abd15741aff222edcfe33f7019b9095
ethod/BaseKeyListener.java
8f34567c71003505456a9b1a0d461a4e62883d70 26-Feb-2011 Jeff Brown <jeffbrown@google.com> Add scroll wheel support to TextView.

Change-Id: I6e4258c50b0d754dccf07266ff4b2abcbccd733a
ethod/BaseMovementMethod.java
ethod/MovementMethod.java
ethod/ScrollingMovementMethod.java
25d8b05fb77e8ee755aacd27c1c2d3b237537b7a 22-Feb-2011 Jozef BABJAK <jozef.babjak@gmail.com> Ensuring thread-safe usage of DateFormat.

DateFormat is inherently unsafe for multithreaded use. This patch adds
proper synchronization. The 'sLock' is re-used. To avoid two consecutive
lockings, locked version of initFormatStrings() method is created and
used where appropriate, i.e. in original method AND in added synchronized
block.

Change-Id: Id3c34613623e743e703aadb2342aa788679dda8a
ormat/DateUtils.java
b62353ad1d1f540dee270be0c0d383ac108a290b 21-Feb-2011 Jozef BABJAK <jozef.babjak@gmail.com> Removing wrong equals method in comparator.

This implementation of equals method has been likely created by
template in an IDE. It is useless, possibly leading to poor performance
and completely violating the contract of equals method as defined in
Object base class.

Change-Id: I5e7fd759b7bd9370b44d9374b57390c4e9feba02
til/Linkify.java
f3fa0cdbaea109b114f7facbb5d42de3fc12bbc8 03-Feb-2011 Gilles Debunne <debunne@google.com> Bugfixes in StaticLayout.

Bug 3422121

With ellipsize, lines starting with a very long word that does not
fit inside the width were simply ignored. Cut the long word instead.

start - widthStart index offset shift in BiDi.

The original ellipsize-end patch that added '...' after the last
word on end-ellipsized lines has been punted in favor of a true
ellipsize support in I.

I believe the StaticLayout calculateEllipsise is a no-op since textwidth <= avail
by construction: fitWidth and okwidth are < outerWidth. The only exception is the
paraEnd != here case in generate (when not a single character fits in width).
This case is exercised by StaticLayoutTest in cts (width of 8 pixels) and revealed
an offset error in widstart.

All in all, it looks like this code was probably never really tested. I tried some
typical text configuration to make sure these changes improved the situation.

Change-Id: Ibee410bd7db453abf93e10e8beb844eae998922c
ayout.java
taticLayout.java
8761bfaa8d8755eab65c21b6cb1a0affeefbbe56 16-Feb-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Code cleaning"
121c82c8130c2658f73fb19f3a62eb88c8679968 16-Feb-2011 Fabrice Di Meglio <fdimeglio@google.com> Code cleaning

- remove unused local variables
- add char constants
- some variables renaming to be more understandable

Change-Id: Id54dd671b1449cca6463bf77160dc72c8bf0c805
taticLayout.java
2fa160840c81c32aa9703d08ced24a2427863bf4 16-Feb-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Small optimization when getting the spans"
a2a035ef47449d2c35c0fe552f629ebddfbc6312 15-Feb-2011 Fabrice Di Meglio <fdimeglio@google.com> Small optimization when getting the spans

- loop earlier if the kind is not the one we want

Change-Id: I5b020f20a144678ad2f7a4bca8fef64eb6ae491f
pannableStringInternal.java
f75c97e023af7d4ad9a8c129d4ea282b1c3b8f94 11-Feb-2011 Gilles Debunne <debunne@google.com> Text insertion cursor is now defined by a Drawable.

Bug 3261766

If defined, the drawable is used instead of directly drawing a 1 pixel
line. This makes the cursor more fancy and more visible.

The drawable is currently clipped by the TextView's limits, which is
currently visible on the left when the cursor is at the first position.
To solve this issue properly, we would need to propagate a do-not-clip
up in the hierarchy.

Change-Id: I99f6001048eed14104994acf6bab942dda8eb38e
ayout.java
19e70cbbcb19df0e1139a5c3825939e31c9485b0 07-Feb-2011 Paul Eastham <eastham@google.com> am 9a5bda87: am be46d145: Revert "Fix for StaticLayout bug with ellipsized text"

* commit '9a5bda875f86b188b501ce7cf73810dd92288251':
Revert "Fix for StaticLayout bug with ellipsized text"
7679365b54b2f34ad1bc75fba554847865965868 07-Feb-2011 Kenny Root <kroot@android.com> am 6465889e: am c4dfa998: am d2a99617: am c94a9998: Merge "JPtextinput: Dont break emoji characters when cutting strings."

* commit '6465889ecbf4c04bb4bb6f4e8d4306727f7ca837':
JPtextinput: Dont break emoji characters when cutting strings.
de1285e7eae5ecf98b34d2976f86403c644b3af4 07-Feb-2011 Gilles Debunne <debunne@google.com> am 63308bd0: am a324a581: Merge "Fix for StaticLayout bug with ellipsized text" into honeycomb

* commit '63308bd092a0edcea685d9f81b3d6d6d345c663b':
Fix for StaticLayout bug with ellipsized text
9a5bda875f86b188b501ce7cf73810dd92288251 05-Feb-2011 Paul Eastham <eastham@google.com> am be46d145: Revert "Fix for StaticLayout bug with ellipsized text"

* commit 'be46d1456beb7e2f3e8b82bda2d0a5023db3debd':
Revert "Fix for StaticLayout bug with ellipsized text"
be46d1456beb7e2f3e8b82bda2d0a5023db3debd 05-Feb-2011 Paul Eastham <eastham@google.com> Revert "Fix for StaticLayout bug with ellipsized text"

This reverts commit bbc910f229dec45fa7481a62fbf051f7ff3130e7.
taticLayout.java
6465889ecbf4c04bb4bb6f4e8d4306727f7ca837 05-Feb-2011 Kenny Root <kroot@android.com> am c4dfa998: am d2a99617: am c94a9998: Merge "JPtextinput: Dont break emoji characters when cutting strings."

* commit 'c4dfa998b7660b9afc4d41b0c940d798f2122fc3':
JPtextinput: Dont break emoji characters when cutting strings.
bbc910f229dec45fa7481a62fbf051f7ff3130e7 04-Feb-2011 Gilles Debunne <debunne@google.com> Fix for StaticLayout bug with ellipsized text

This fixes the test, but I believe this class still needs a lot of fixing.

Change-Id: Ib6386196908ea8432b175d6994f9299778a322d2
taticLayout.java
fbcba51ab2fd5d7203909bd3299dc2a67f3ede42 01-Feb-2011 Mike Cleron <mcleron@google.com> am b118bd1c: am ad97c1b1: Merge "Remove MeasuredText debug messages" into honeycomb

* commit 'b118bd1c2bb665eec1a78a6cf5c76a0aa6eba6af':
Remove MeasuredText debug messages
15f16e3f860b28ef0767b08ae8d86dc08b6aac3b 01-Feb-2011 Gilles Debunne <debunne@google.com> am 65383292: am 8f8aac5e: Merge "Pixel were missing on the last line of text when using MaxLines." into honeycomb

* commit '6538329258ee01b27586d8b0e46e96160d719a68':
Pixel were missing on the last line of text when using MaxLines.
ad97c1b12872042f97414b51cb58484f9a5fd9fd 01-Feb-2011 Mike Cleron <mcleron@google.com> Merge "Remove MeasuredText debug messages" into honeycomb
fbc8630736d12676edc16f3932231713e23dd1df 31-Jan-2011 Kenny Root <kroot@google.com> Remove MeasuredText debug messages

MeasuredText debug messages were left in the tree. Remove them before
shipping.

Bug: 3408963
Change-Id: Ia220eae5835d1325bb6053de0025d8016a1edcad
easuredText.java
0a4db3c5270440eeb7e4e44a7029926e239ec3bd 14-Jan-2011 Gilles Debunne <debunne@google.com> 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
ynamicLayout.java
ayout.java
taticLayout.java
4f92dd2a4d8ff93dd274dbca03426a2f7ebf4ee6 28-Jan-2011 Brian Muramatsu <btmura@google.com> am 910be3e8: am 9eaefb82: Merge "Fix TextUtils#commaEllipsize" into honeycomb

* commit '910be3e855738eab783f2e280b76dcef90a841ec':
Fix TextUtils#commaEllipsize
4c8ad6eb6241a0f689e49237ecadb65e8ffa4b6c 28-Jan-2011 Brian Muramatsu <btmura@google.com> 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
extUtils.java
277ae7e3dcbbf2289e07ae4c78b1bbb87d03331b 26-Jan-2011 Gilles Debunne <debunne@google.com> am 7a417821: am 47fc854a: Merge "Fix for a call to startActivity from outside of an app." into honeycomb

* commit '7a417821957bac70bfd4cb4a357b143a1a1570e3':
Fix for a call to startActivity from outside of an app.
47fc854ae9947e0fe5ca0e33e22a41618ba7523b 25-Jan-2011 Gilles Debunne <debunne@google.com> Merge "Fix for a call to startActivity from outside of an app." into honeycomb
d9ed795ca51c57427ad27f246d5ec19f89ff508d 25-Jan-2011 Gilles Debunne <debunne@google.com> 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
ethod/LinkMovementMethod.java
3971b8cd523bad5c6fc341181d07523e7402b4a7 25-Jan-2011 Gilles Debunne <debunne@google.com> am 2b5a62af: am 2a32a39e: Merge "Removed warnings in DynamicLayout" into honeycomb

* commit '2b5a62afdef5efc47e223057de0c867ffafef22d':
Removed warnings in DynamicLayout
2a32a39e9a0455732724bbbbbdce41e12a8ffb1e 25-Jan-2011 Gilles Debunne <debunne@google.com> Merge "Removed warnings in DynamicLayout" into honeycomb
9854161e8f9210d1b950c069948e566965ab84df 25-Jan-2011 Gilles Debunne <debunne@google.com> am 9eaa9b97: am b6b15dca: Merge "TextLine cache is used, even for long lines of text." into honeycomb

* commit '9eaa9b97d78e3efed1ac497822ca06c03db890cd':
TextLine cache is used, even for long lines of text.
d6e568c4f3b30431a0086e647f38d24ffd81457a 25-Jan-2011 Gilles Debunne <debunne@google.com> Removed warnings in DynamicLayout

Change-Id: Ied1c330795412d0bdcac1236b466951112fabc7d
ynamicLayout.java
f902d7bc49797ec277b4576c921dfffa15d741dd 25-Jan-2011 Gilles Debunne <debunne@google.com> 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
extLine.java
2c2aa7c4d28dfeb81b1216ea451265a8e4576b2e 21-Jan-2011 Leon Scroggins <scroggo@google.com> am 62fd9903: am d5188657: Do a better job of lining up text with page text.

* commit '62fd9903a756eb5d8e7bcafbbc5a3a311fdbcefc':
Do a better job of lining up text with page text.
d5188657dcde0f40a6954a00d569c0575bf6095a 19-Jan-2011 Leon Scroggins <scroggo@google.com> 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
ethod/Touch.java
2f0f44212fc1e86bd7bd54431bf6a0cd62aa093c 04-Nov-2010 Ishibashi Takako <takako.x.ishibashi@sonyericsson.com> JPtextinput: Dont break emoji characters when cutting strings.

In the LengthFilter make sure that we do not cut the
string so a last emoji character gets broken and replaced
by some garbage character.

We need to check if the last char is the high surrogate and
if so drop the high surrogate also.

Change-Id: I210e7e41aa0761ecbb2b32e3ebf680a04382c287
nputFilter.java
07481ccd1dcc2912797ec64f0bfa5641b39adcea 07-Jan-2011 Jesse Wilson <jessewilson@google.com> Deprecate a method that formats only IPv4 addresses.

Anyone calling this method is probably storing IP addresses
in an int, which doesn't make sense anymore.

Change-Id: Iba535b66f6cff47ce07b5ecc6427e3b2fd846998
ormat/Formatter.java
d434d2334d2362f77d3a3fb0b1f788f667039bbf 05-Jan-2011 Gilles Debunne <debunne@google.com> 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
taticLayout.java
87121accdb0ce318482ac51270763a6faab2ed63 05-Jan-2011 Dianne Hackborn <hackbod@google.com> 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
lipboardManager.java
4cf435df2e485e405f085982ac8fd9c82fb57d47 05-Jan-2011 Gilles Debunne <debunne@google.com> Revert "Fix for ellipsized text that has two lines at maximum."

This reverts commit 32ea4ffdca0f4706e447d0a275f259fe121b9e6a.

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
taticLayout.java
75b7a931bc96c1b46cbf3773cd75c30bf6d6f5f0 21-Dec-2010 Gilles Debunne <debunne@google.com> Removed simple compilation warnings.

Change-Id: I471b8895db4321d49e324e7137a1f5cee08ff5d4
ethod/LinkMovementMethod.java
82d731ac5d28fb54c49948116786813a62b07b8b 24-Dec-2010 Ken Wakasa <kwakasa@google.com> Add TYPE_NUMBER_VARIATION_PASSWORD for entering a numeric password.

Also, bug fix in EditoInfo.makeCompatible().

bug: 3296883
Change-Id: Icc663b375cffbe1f4506d1758d624a1acca3576b
nputType.java
9a99244a95f9445a6dbd25d47532c7c947a26278 23-Dec-2010 Gilles Debunne <debunne@google.com> Merge "Fix for ellipsized text that has two lines at maximum."
00998631559dbb82b2a1913c9c19f90bd946d14d 22-Dec-2010 Jeff Brown <jeffbrown@google.com> Merge "Add support for forward delete key."
14d0ca1473b991288b2dfab57409054dec7cd2fa 22-Dec-2010 Jeff Brown <jeffbrown@google.com> Add support for forward delete key.

Change-Id: Ib356abddd92db12d6b33e19234136c0d167f0e15
ethod/BaseKeyListener.java
ethod/QwertyKeyListener.java
67b6ab72ae96a9f2be929de2c32c110df5390fdd 18-Dec-2010 Jeff Brown <jeffbrown@google.com> Add TextView support for Home, End, PageUp, PageDown.

Change-Id: If8aa2a63b5fc33528d54eef68e695082a129acce
ethod/ArrowKeyMovementMethod.java
ethod/BaseMovementMethod.java
ethod/LinkMovementMethod.java
ethod/MovementMethod.java
ethod/ScrollingMovementMethod.java
32ea4ffdca0f4706e447d0a275f259fe121b9e6a 21-Dec-2010 Gilles Debunne <debunne@google.com> 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
taticLayout.java
52715a7c10eeb798692ffdb4bc8c4305cb0aa705 09-Dec-2010 Jeff Brown <jeffbrown@google.com> Fix a regression in clearMetaKeyState.

Bug: 3267519
Change-Id: Ibbc7d4e38ef3208b9ece09566e44e8421866ab95
ethod/MetaKeyKeyListener.java
50f34d14f6dd3411fdbdb6a7b8b285c2b8fdbf5c 04-Dec-2010 Svetoslav Ganov <svetoslavganov@google.com> 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
ormat/Time.java
0bb000931bb841e75903d655552d1626ae158707 03-Dec-2010 Gilles Debunne <debunne@google.com> 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
extLine.java
0eb704ca7a0844186e0755e86bc4afc23297797d 30-Nov-2010 Gilles Debunne <debunne@google.com> Tap inside text selection dismisses selection.

Change-Id: I8ccc952940d3f1b3a52d506f750019a892380f40
ethod/ArrowKeyMovementMethod.java
47e6b1b5eef8ee99872f278f66bc498c4fcca0d8 30-Nov-2010 Jeff Brown <jeffbrown@google.com> 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
ethod/QwertyKeyListener.java
ethod/TextKeyListener.java
a944828d3be97f968a571590ff3bc769f89e967d 19-Nov-2010 Gilles Debunne <debunne@google.com> Merge "Clean-up in StaticLayout"
6611147383118cd91cc29b31bff9aaf4c853f39d 19-Nov-2010 Gilles Debunne <debunne@google.com> Clean-up in StaticLayout

Change-Id: I81ac5d8bef7ce8f4f65e3a8c7da8393ce0a87558
taticLayout.java
6b53e8daa69cba1a2a5a7c95a01e37ce9c53226c 11-Nov-2010 Jeff Brown <jeffbrown@google.com> 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
ethod/BaseKeyListener.java
ethod/DialerKeyListener.java
ethod/MetaKeyKeyListener.java
ethod/NumberKeyListener.java
ethod/QwertyKeyListener.java
ethod/TextKeyListener.java
ethod/Touch.java
162bf0f1b9fd5d78ffa801917994f6222c6efd85 17-Nov-2010 Gilles Debunne <debunne@google.com> Fix for IOOBoundsExc in SpannableStringBuilder

Bug 3182953

Change-Id: Idc7faa86b8250bf325e2547d7d4c094300a06686
ayout.java
dea3ef7967228f0ddcc03f2455a4f1254758e584 28-Oct-2010 Dianne Hackborn <hackbod@google.com> Add new resize mode to not resize, new web input types.

Change-Id: Ib098c03793d08532c3c099b59d0cc6b567e54900
nputType.java
d040f95190a3dd3b1ae925917eba7086c8ce563e 19-Oct-2010 Gilles Debunne <debunne@google.com> Temporarily removed call to drawCircle in BulletSpan.

Replaced by a drawPath. drawCircle is not supported by openGL for now.

Bug: 3101235

Change-Id: I0c050097e3cb87f9d4c703062d4250d08247c99e
tyle/BulletSpan.java
497a92cc5ba2176b8a8484b0a7da040eac0e887b 13-Sep-2010 Jeff Brown <jeffbrown@google.com> 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
ayout.java
ethod/ArrowKeyMovementMethod.java
ethod/DialerKeyListener.java
ethod/MetaKeyKeyListener.java
ethod/Touch.java
464fb74e28b6d76d5e741abcdbb714eea2d9b4d1 27-Sep-2010 Jeff Brown <jeffbrown@google.com> 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.
9785bf0f2b6b8758aed7ded3b996a2ef0be89919 27-Sep-2010 Jeff Brown <jeffbrown@google.com> 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.
01ce2e9eee41cc0c24b0d16465710a28ea337d5d 27-Sep-2010 Jeff Brown <jeffbrown@google.com> 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
ethod/ArrowKeyMovementMethod.java
879fb6b5d66bec90d3420fad12a2a9b2fe9592f3 20-Sep-2010 Adam Powell <adamp@google.com> Text selection anchors changed to use windows

Manually cherry-picked

Change-Id: Id080dfad0e2f324fef3a5175abc78f76c8bad4c8
ethod/ArrowKeyMovementMethod.java
770a681b2f5b00e699920317bff04a24676ae143 22-Sep-2010 Adam Powell <adamp@google.com> 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
9aed300279db6953356aed5ef24a42291f5829cb 20-Sep-2010 Adam Powell <adamp@google.com> Text selection anchors changed to use windows

Change-Id: I14f138039f5e3175a8c07f21985715b8447708e5
ethod/ArrowKeyMovementMethod.java
42a5ed2015461126bd012d6f8f3e1311e5721807 12-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of 171c83f4 to master

Change-Id: I56a4c1838b17cf40d96763f95df3c84fc86359eb
171c83f47ddf01792371e1eb7587a99b2f192575 12-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> 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.
11fe181e16501103d7c0f70344661ea2ef5d3df9 11-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> Add faster TextUtil function for searching delimited lists.

The previous version in Settings allocated memory.

Change-Id: I0f821112dc8f830689489f201ce268195f9e6cbd
extUtils.java
fd1a8945be5ea1ce5dd948f8fdbefc6c5963eb9f 09-Sep-2010 Gilles Debunne <debunne@google.com> 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.
de5cfcb608f3432d98ae17e0febb6e726df79e90 09-Sep-2010 Gilles Debunne <debunne@google.com> 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.
d35180cf52d8a84b5bd45a3f6428449bbc0a3283 08-Sep-2010 Gilles Debunne <debunne@google.com> Fix for a memory leak in TextKeyListener.

Open source contribution https://review.source.android.com/#change,16985

Change-Id: Iebf09e147dd26575ca1a3f02180a678583671a68
ethod/TextKeyListener.java
d41b037c6b645768bf55d4d9efb4904373bd61b0 08-Sep-2010 Erik <roboerik@android.com> 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
c4f628a1ba359926cf53ed7652d9abba6ea29123 08-Sep-2010 Erik <roboerik@android.com> 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
577ec9eb3a661de96a2cbe9ec918eda082fb7659 02-Sep-2010 Erik <roboerik@android.com> 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
ormat/DateUtils.java
5c69544826258bf047fc72c871c18e4a5b24d873 08-Sep-2010 Gilles Debunne <debunne@google.com> am cf86bc1d: am 883bbb72: Merge "Hide mCursorController field in ArrowKeyMovementMethod." into gingerbread

Merge commit 'cf86bc1d92128455c06ed8b0a338e7b3145d11a7'

* commit 'cf86bc1d92128455c06ed8b0a338e7b3145d11a7':
Hide mCursorController field in ArrowKeyMovementMethod.
cf86bc1d92128455c06ed8b0a338e7b3145d11a7 08-Sep-2010 Gilles Debunne <debunne@google.com> am 883bbb72: Merge "Hide mCursorController field in ArrowKeyMovementMethod." into gingerbread

Merge commit '883bbb72284736b5601f9e96d1116969c51b75de' into gingerbread-plus-aosp

* commit '883bbb72284736b5601f9e96d1116969c51b75de':
Hide mCursorController field in ArrowKeyMovementMethod.
49271c941ed965c20ed834c5efc52b07ed616e34 08-Sep-2010 Gilles Debunne <debunne@google.com> 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
ethod/ArrowKeyMovementMethod.java
9773cd73b627c8521257c005881554d183d19a63 30-Aug-2010 Jean-Baptiste Queru <jbq@google.com> am f470ed86: Merge "Support surrogate pairs when layouting text"

Merge commit 'f470ed8630e9e648727443b065b9f1c69fee34d6' into gingerbread-plus-aosp

* commit 'f470ed8630e9e648727443b065b9f1c69fee34d6':
Support surrogate pairs when layouting text
12122bf7929aab7417cda5642632b81e4e15eb4e 25-Aug-2010 Takako Ishibashi <takako.x.ishibashi@sonyericsson.com> 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
ayout.java
taticLayout.java
tyled.java
673e42fafd4088970ec95e1f13c61dc83132c74e 26-Aug-2010 Chet Haase <chet@google.com> Fix for end events from Sequencer objects

Change-Id: I8947d8b016b880f9f54f2bf6ab22b4e188cdb29a
extLine.java
925f2f909649dd0cbf93674201430879c2e03f99 25-Aug-2010 Gilles Debunne <debunne@google.com> resolved conflicts for merge of 9765b2a0 to master

Change-Id: Ic37a443fff0425e9d7c8395f71665d56c38d7e53
8db59adccf3e07b9597a69858e8e4de4f7f233e7 24-Aug-2010 Kenny Root <kroot@google.com> resolved conflicts for merge of b037da40 to master

Change-Id: I591f80f613870a4b1557f17d1c8574f661ed8121
9765b2a01d32ea6f2f955170ef7d0185e2252b0a 24-Aug-2010 Gilles Debunne <debunne@google.com> 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.
2703a42d16af0e62da1bba02b6c935d98debf936 24-Aug-2010 Gilles Debunne <debunne@google.com> 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
ethod/ArrowKeyMovementMethod.java
b037da401ad76843c32e7d732d43d452e0e6f978 24-Aug-2010 Gilles Debunne <debunne@google.com> am 3e05a0be: Hysteresis effect in Text selection.

Merge commit '3e05a0beb2fad0b21558019d2adf6805da70e10e' into gingerbread-plus-aosp

* commit '3e05a0beb2fad0b21558019d2adf6805da70e10e':
Hysteresis effect in Text selection.
3e05a0beb2fad0b21558019d2adf6805da70e10e 23-Aug-2010 Gilles Debunne <debunne@google.com> 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
ethod/ArrowKeyMovementMethod.java
a842d143d2dcad07906830a30deaf0ffce86f5d9 20-Aug-2010 Gilles Debunne <debunne@google.com> am d018a0ce: Merge "Text selection without trackball." into gingerbread

Merge commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c' into gingerbread-plus-aosp

* commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c':
Text selection without trackball.
b0d6ba1ec4f71b96cab7d1ff62b846d5cf162c4f 18-Aug-2010 Gilles Debunne <debunne@google.com> 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
election.java
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
c4d8eb6fb7c88c5c4da38b0b113c24cc4b78c0b7 19-Aug-2010 Romain Guy <romainguy@google.com> Speedup TextView fades (no more layers required.)

Also fixes a crash in the drop shadows cache and improves
drop shadows caching.

Change-Id: I9c0208a49467f9201d786ae0c129194b8d423923
ayout.java
74d31ef2b2c42b54fa1f7cf94ea955ea67ab69a0 06-Aug-2010 Eric Fischer <enf@google.com> Fix a bug where paragraph styles could leak onto an adjacent empty line.

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
ayout.java
taticLayout.java
9f53119b72e6da865bcd53173d3dacd1eba01aee 05-Aug-2010 Dianne Hackborn <hackbod@google.com> First pass at a new clipboard API.

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
lipboardManager.java
Clipboard.aidl
8bfc798dc267075b0fe791b87f4253460970aa58 14-Jul-2010 Gilles Debunne <debunne@google.com> Merge "Cosmetic changes around TextView."
d11f6e6460dcc41597e3a7f6cd3023f116f8c696 14-Jul-2010 Gilles Debunne <debunne@google.com> Double and one and a half tap removed from TextView.

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
ethod/ArrowKeyMovementMethod.java
2d0e87b64402459d89adfd004083a748f81a0391 13-Jul-2010 Gilles Debunne <debunne@google.com> Cosmetic changes around TextView.

Fixed some warnings in the code.

Change-Id: Id19395031a1ab41edcc47e3dc8cd9479c6e19f83
election.java
05336274dd8e7ababfe5b253069653abbba20c3c 10-Jul-2010 Gilles Debunne <debunne@google.com> Selection handlers in TextView

Long press on text view triggers selection mode. Two handles can be used to
adjust selection.

Change-Id: I45bb5fd62cae910570cff34920e45c4383160179
ethod/ArrowKeyMovementMethod.java
2f42aa54b46bdb990bc38b1f8f2e7a93f766a5e2 13-Jul-2010 The Android Open Source Project <initial-contribution@android.com> am 6fb70b5a: merge from open-source master

Merge commit '6fb70b5a9f41f198ee4bc1ed3efeca6f8ccdc5d9'

* commit '6fb70b5a9f41f198ee4bc1ed3efeca6f8ccdc5d9':
Documentation Bug (Issue 9557)
cc3ec6cdb2b892eb29513e72d8b205acbe997b25 23-Jun-2010 Gilles Debunne <debunne@google.com> New cursor controller in TextViews.

Editable TextView now display a cursor controller under the insertion
point so that it can be precisely moved.

Change-Id: Ia2e6ddc57d249647ff6683e10e4226db3df27223
extLine.java
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
0df10e9b4e7719777ff9a389959c5c5deeef0eae 06-Jul-2010 Christian Mehlmauer <FireFart@gmail.com> Documentation Bug (Issue 9557)

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
ormat/Time.java
312cd580391d70140eeb4080a4e195039172a6a6 03-Jul-2010 Gilles Debunne <debunne@google.com> Fixed bug in getTextRunCursor.

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
pannableStringBuilder.java
74c95d4d41dc8bf7bcee2c97bf010ed39896bb56 25-Jun-2010 The Android Open Source Project <initial-contribution@android.com> am 8b0d5bc3: merge from froyo-plus-aosp

Merge commit '8b0d5bc3f858ae2b737ac654fa05c439344ad631'

* commit '8b0d5bc3f858ae2b737ac654fa05c439344ad631':
Fixing counting the number of days in call log screen.
24ca4545f3fa9ffaf0a84af11f1ab74cd14d232e 23-Jun-2010 Kenny Root <kroot@google.com> Check for spanned before computing tab stops

Don't try to check for tab stop spans in non-Spanned text input.

Change-Id: I54d69c8e0246f5a38d0713a89b8b455a478285f0
taticLayout.java
f1f33c4eb2ded794c74285d8a036073ae5419f25 18-Jun-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: If7ae0c5629d1b3c540cacfa517425c2e6b5822d1
345cb03315a0813ec57e44f97fc3fa4af6b3c309 17-Jun-2010 Gilles Debunne <debunne@google.com> Index out of range problem in TextLine.

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
extLine.java
6b9a1a5124321253a75a17027292080bf6a946e8 16-Jun-2010 Jean-Baptiste Queru <jbq@google.com> Merge "Fixing counting the number of days in call log screen."
0c702b88c5d0d4380930b920f5be6e66dd95a0d8 14-May-2010 Doug Felt <dougfelt@google.com> Move shaping to native.

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
raphicsOperations.java
ayout.java
easuredText.java
pannableStringBuilder.java
extLine.java
c4a1a927a8aafc70ef0c2d5f11cdd413fad3a0e4 04-Jun-2010 Kenny Root <kroot@google.com> Merge "Fix alignment issues with RTL paragraphs."
c982f60e982c1d2df9f115ed9a5c3ef3643d0892 25-May-2010 Doug Felt <dougfelt@google.com> Fix alignment issues with RTL paragraphs.

Also remove unused debugging code that depends on junit.
Remove trailing whitespace in changed code.

Change-Id: Ie02d1b8220c599a672ee6e91af0fba634e0f620c
ayout.java
taticLayout.java
extLine.java
ethod/Touch.java
4f2cf8af551c1703835a1193727ea7c56c8c8323 03-Jun-2010 The Android Open Source Project <initial-contribution@android.com> am 913dbc50: am a9f06fef: am ee7e6a78: merge from open-source master
ee7e6a78e28b360826f215e0e84d43b1513b6401 03-Jun-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Idf8d5661d7b261b74ac0b1271af98795ac5faff9
23241887515ed77687c23e29a4a3ffff671666bd 02-Jun-2010 Doug Felt <dougfelt@google.com> Fix IndexOutOfBoundsException when measuring text.

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
taticLayout.java
e99c012503bbd205cbaa9f16f9894ca5ffeaaf76 02-Jun-2010 Kenny Root <kroot@android.com> Merge "Improved error-handling in Rfc822Tokenizer"
8e98e35e8f264f28dc19a603f039e7e9ca154ad7 28-May-2010 Kenny Root <kroot@google.com> am 50239de1: am ddbab4e1: am 6cc13745: am 94f1751c: Merge "Fix typo in EastAsianWidth javadoc" into froyo
18b221af466a5826066d30ca580bd5bd05b9c03c 27-May-2010 Kenny Root <kroot@google.com> Fix typo in EastAsianWidth javadoc

The Javadoc had a missing close <code> tag and also failed to mention
the "start" parameter in the doc.

Change-Id: I861d6646e82e1d49f23a09de8b68a61f81689f83
ndroidCharacter.java
dfd550d44c02e8a7a6bfeba28b60ae4c4132d3fc 13-May-2010 Kenny Root <kroot@google.com> Add @hide tag to fix SDK build

Previous Canvas changes missed a @hide tag, so droiddoc was complaining
about a missing method since that was also hidden.

Change-Id: Ib70a9fa2e20fe32b74ba901bb289e77583164004
raphicsOperations.java
f47d7405bbcb25d7cdf89ebb059f41520fe9ab87 22-Apr-2010 Doug Felt <dougfelt@google.com> Modify Canvas drawText to run bidi and shape.

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
raphicsOperations.java
pannableStringBuilder.java
extLine.java
b7332c714caf2ef07a827eb691e134d16003965f 10-May-2010 Seth Pensack-Rinehart <sethpr@google.com> Fix Javadoc typo for Spanned.SPAN_EXCLUSIVE_INCLUSIVE

Change-Id: I82d15bde9444beca83eb78349212125cae525a6e
panned.java
0b9d2ca6b6fc4574898cfff6acdee821d4723a96 07-May-2010 Doug Felt <dougfelt@google.com> Fix selection off-by-one bug.

The wrong value was used to measure the width of unidirectional text.

Change-Id: I57752c111641ca1cc951e0647b60c79f5a9493ad
extLine.java
06daf19f6c77a3170215ca1a969a9b8fb913ab90 10-Jun-2009 Simon Schoar <schoar@googlemail.com> Added WEB_URL_PATTERN for Montenegro ".me"

Change-Id: If725c5ee08ed840ae8323fa18b1d82ef2a42db87
til/Regex.java
6a84af0949b341593b4b25ed9bb365bd60ff1254 29-Mar-2010 David Sobreira Marques <dpsmarques@gmail.com> Fixing counting the number of days in call log screen.

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>
ormat/DateUtils.java
e8e45f2c05cb3b6d23f30c8f96d8e0b3699cea7a 29-Mar-2010 Doug Felt <dougfelt@google.com> Refactor Styled utility functions into reusable objects.

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
ndroidBidi.java
oringLayout.java
ayout.java
easuredText.java
taticLayout.java
tyled.java
extLine.java
extUtils.java
71ab21a02a31948302b62bcbef72d3994034a855 18-Mar-2010 Devin Taylor <devin.taylor@garmin.com> Fix last character of password field being visible after rotation

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
ethod/PasswordTransformationMethod.java
e19a2184b291626175213182a247caa102ab584d 06-Apr-2010 Kenny Root <kroot@google.com> am 6613ffb3: am 16197a24: am 0db37997: Merge "Revert to previous text selection behavior" into froyo
16197a246fdeff0167f9abdc6a3da5d83759993d 05-Apr-2010 Kenny Root <kroot@google.com> am 0db37997: Merge "Revert to previous text selection behavior" into froyo

Merge commit '0db37997366a4d781af48be758a9d90b6d07d7d5' into froyo-plus-aosp

* commit '0db37997366a4d781af48be758a9d90b6d07d7d5':
Revert to previous text selection behavior
8cdb684163051c12f37e8a5f9031f17efd9d0fa4 05-Apr-2010 Kenny Root <kroot@google.com> 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
ethod/ArrowKeyMovementMethod.java
4e0c5e55e171532760d5f51e0165563827129d4e 16-Mar-2010 Doug Felt <dougfelt@google.com> Don't measure for a secondary caret unless we have one.

Also, clean up imports and trailing whitespace.

Change-Id: I5ebaaceb756600a1ca7370ab3ef078ce200545ef
ayout.java
taticLayout.java
9bab8f115b4dbb9c6d8e0e0b3040aa846ca6e5ca 31-Mar-2010 The Android Open Source Project <initial-contribution@android.com> am 4790259c: am 8de2cf4c: merge from open-source master
8de2cf4cce9ae2e121fccb4732fd23c64aace102 31-Mar-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I627b3a7080e413f756d1751cdae88ec6642b02c4
9f7a4442b89cc06cb8cae6992484e7ae795323ab 01-Mar-2010 Doug Felt <dougfelt@google.com> Enable nested bidi levels in a paragraph.

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
ynamicLayout.java
ayout.java
taticLayout.java
8082d5d9ebe29d8cb9755a64e05f4cf89b1cea5c 18-Mar-2010 Devin Taylor <devin.taylor@garmin.com> Fix last character of password field being visible after rotation

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
ethod/PasswordTransformationMethod.java
9694f9056a86081aadc1d7caab82d340847b3884 26-Mar-2010 Henrik Hall <henrik.hall@sonyericsson.com> Improved error-handling in Rfc822Tokenizer

The javadoc for the Rfc822Tokenizer states that it will try
to be tolerant to broken syntax instead of returning an error
(as in an unchecked exception). In some rare cases where the
input is clearly incorrect, the tokenizer throws a
StringIndexOutOfBoundsException, which was found during
one of the monkey test runs. This commits fixes that crash,
and teaches the tokenizer to just continue to run anyway. Two
simple junit testcases has also been added for testing the
default and the errornous case.
til/Rfc822Tokenizer.java
ec8b1021906f77c47a772da5ca5641836361513d 13-Mar-2010 Eric Fischer <enf@google.com> Add documentation for LeadingMarginSpan2.

Bug 2420334

Change-Id: Ica42cc34a938a5ec529da16804d1f0e6fddcc249
tyle/LeadingMarginSpan.java
15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab 12-Mar-2010 Kenny Root <kroot@google.com> Add correct copyright headers to multiple files

Format for the list of changes shows the origin commit reference followed
by the file name.

33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java
33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java
133776-p9 core/java/android/app/IntentService.java
127013-p9 core/java/android/appwidget/AppWidgetHost.java
27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java
60765-p9 core/java/android/content/SyncResult.java
43920-p9 core/java/android/content/pm/ActivityInfo.java
43920-p9 core/java/android/content/pm/ApplicationInfo.java
43920-p9 core/java/android/content/pm/InstrumentationInfo.java
43920-p9 core/java/android/content/pm/PackageInfo.java
44103-p9 core/java/android/content/pm/PackageItemInfo.java
68960-p9 core/java/android/content/pm/PackageStats.java
43920-p9 core/java/android/content/pm/ResolveInfo.java
43920-p9 core/java/android/content/pm/ServiceInfo.java
60641-p9 core/java/android/content/res/Configuration.java
60734-p9 core/java/android/content/res/TypedArray.java
137672-p9 core/java/android/inputmethodservice/ExtractButton.java
123112-p9 core/java/android/inputmethodservice/ExtractEditText.java
119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java
112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java
115078-p9 core/java/android/os/BatteryStats.java
124790-p9 core/java/android/text/style/UpdateAppearance.java
45083-p9 core/java/android/view/RawInputEvent.java
101491-p9 core/java/android/view/inputmethod/EditorInfo.java
114701-p9 core/java/android/view/inputmethod/ExtractedText.java
123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java
119291-p9 core/java/com/android/internal/os/HandlerCaller.java
129279-p9 core/java/com/android/internal/os/PkgUsageStats.java
114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java
114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java
84364-p9 opengl/java/android/opengl/EGLLogWrapper.java
11355-p9 opengl/tools/glgen/src/CFunc.java
11355-p9 opengl/tools/glgen/src/CType.java
11355-p9 opengl/tools/glgen/src/CodeEmitter.java
11355-p9 opengl/tools/glgen/src/GenerateGL.java
11355-p9 opengl/tools/glgen/src/JFunc.java
11355-p9 opengl/tools/glgen/src/JType.java
11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java
11355-p9 opengl/tools/glgen/src/ParameterChecker.java
57236-p9 services/java/com/android/server/status/AnimatedImageView.java
66754-p9 services/java/com/android/server/status/CloseDragHandle.java
57188-p9 services/java/com/android/server/status/DateView.java
46928-p9 services/java/com/android/server/status/ExpandedView.java
70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java
45968-p9 services/java/com/android/server/status/IconData.java
57470-p9 services/java/com/android/server/status/IconMerger.java
82719-p9 services/java/com/android/server/status/LatestItemView.java
45968-p9 services/java/com/android/server/status/NotificationData.java
66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java
57458-p9 services/java/com/android/server/status/NotificationViewList.java
45968-p9 services/java/com/android/server/status/StatusBarException.java
45968-p9 services/java/com/android/server/status/StatusBarIcon.java
46130-p9 services/java/com/android/server/status/StatusBarNotification.java
45968-p9 services/java/com/android/server/status/StatusBarView.java
46199-p9 services/java/com/android/server/status/Ticker.java
62286-p9 services/java/com/android/server/status/TickerView.java
57188-p9 services/java/com/android/server/status/TrackingView.java
86041-p9 telephony/java/android/telephony/PhoneStateListener.java
87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java
136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java
34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java
55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java
127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java
129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java
25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java
46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java
77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java
9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java
53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java
93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java
328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java
307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java
307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java
eb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java
49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java
a2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java
3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java
5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java
c4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java
9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java
21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java
4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java
4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java
e540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java
192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java
1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java
27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java
560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java
560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java
560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java
1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java
1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java
1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java
69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java
c028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java
7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java
7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java
df8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java
cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java
cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java
cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java

Copyright header moved to top in following file:

core/tests/coretests/src/android/widget/ListViewTest.java

Change-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418
tyle/UpdateAppearance.java
26779e7e82cd27c4404a3ea01bee21699505276a 11-Mar-2010 Eric Fischer <enf@google.com> Merge "Don't break lines in the middle of a smiley or other graphic replacement."
191bbafacc48e5abfc6f393e0664e2d183740c4a 11-Mar-2010 Erik <roboerik@android.com> Merge "Noticed comment field when splitting guests wasn't being cleared."
de61f78340ae23384e16ad675aefdd01ddf07c76 10-Mar-2010 Eric Fischer <enf@google.com> Don't break lines in the middle of a smiley or other graphic replacement.

The code that was supposed to keep this from happening was not being
executed when the text was all ASCII.

Bug 1899722

Change-Id: Ifc97a4423d6136e19abbc4c82eb36ac0216ce415
taticLayout.java
0ef3eeec405efe2585eae8e675869dafdf81698f 02-Mar-2010 Ken Shirriff <kens@google.com> Merge "Remove DateException and obsolete DateUtils functions."
a53bbe4033f1e9fc4c371d51ba1ef58588f867eb 01-Mar-2010 Ken Shirriff <kens@google.com> Remove DateException and obsolete DateUtils functions.

These functions are deprecated and no longer used.
ormat/DateUtils.java
60919953ce80dbf75673837ea51497c84da7ac78 01-Mar-2010 Mark Wagner <mxw@google.com> check offset and don't crash
extUtils.java
277903f8d853297a1d22ea07e27e04d6534bc430 25-Feb-2010 Eric Fischer <enf@google.com> Merge "Add support for accessing native bidi implementation via jni."
2269d1572e5fcfb725ea55f5764d8c3280d69f6d 25-Feb-2010 Dianne Hackborn <hackbod@google.com> Re-arrange android-common so framework no longer links with it.

This is the framework part, moving classes around so the framework
no longer needs to link to android-common. Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
utoText.java
tml.java
til/Linkify.java
dae8e94cce0881f3e10ef5e34b881f512bb52a75 24-Feb-2010 Doug Felt <dougfelt@google.com> Add support for accessing native bidi implementation via jni.

Include a simple test to verify that the bidi code works.
ndroidBidi.java
99c7dea7546bf0bd9ec1c03d300b11d93d9306dd 25-Feb-2010 Erik <roboerik@android.com> Noticed comment field when splitting guests wasn't being cleared.

The address field was being cleared twice instead of address and comment being cleared.
til/Rfc822Tokenizer.java
20178d62cf669af18467a16d3c4c4237ed42151c 22-Feb-2010 Doug Felt <dougfelt@google.com> Factor bidi algorithm into separate method.

Add rudimentary support for overriding default base line direction heuristic.
Add some simple tests of the bidi implementation.
ayout.java
taticLayout.java
1065758a0f8966a8597a61492112f7859a7050a4 22-Feb-2010 Doug Felt <dougfelt@google.com> Fix rounding of extra spacing when it is negative.
taticLayout.java
7951eaa92a962e39ebba0366fdcafc4a0a78cc98 17-Feb-2010 Kenny Root <kroot@google.com> Change Javadocs to fix SDK build

Remove some hidden reference and update links to other classes and
methods.

Change-Id: I4b6561f1bac07329d75da13f72496aa7d5b20a62
tyle/LeadingMarginSpan.java
574ecc8ed943d0c3148bff4fd7b28d65d9cc1cad 17-Feb-2010 Kenny Root <kroot@google.com> Merge "Add better index checks for AndroidCharacter.mirror"
f7c569897c798ee42267dcc0ef10197acaed22ee 17-Feb-2010 Eric Fischer <enf@google.com> Merge "Enhance text docs, rename some variables for clarity, comment places in the code for further investigation."
073a3d56ea7505126469dd9ed4c20a7a8923690d 17-Feb-2010 Kenny Root <kroot@google.com> Add better index checks for AndroidCharacter.mirror

Fix potential invalid array access if start index is before the
beginning of the array or start + count is past the end of the array.
Update Javadoc for mirror to reflect the usage of "start" and "count".

Change-Id: I7e596de8eae5c518a2b4ff0d28604bd9c59f9d9d
ndroidCharacter.java
71b8dd71e49016e057c46a257f79162d186a3c3a 17-Feb-2010 Doug Felt <dougfelt@google.com> Enhance text docs, rename some variables for clarity, comment places in the code
for further investigation.
ayout.java
taticLayout.java
tyled.java
tyle/LeadingMarginSpan.java
tyle/TabStopSpan.java
bb9a51768d2d9dddbe2394b99a00544a3d144fac 13-Feb-2010 Kenny Root <kroot@google.com> Add API to access ICU's East Asian Width

Currently there is no way for an application built against the API to
access East Asian Width data from ICU. This adds an API for applications
to use to access it for correct drawing of international characters.

Change-Id: Iab50698ee555ae2ca8ab4b242cc14aa6e0dc3b48
ndroidCharacter.java
a877c034421143932c25daaca5f92a48ef6c3b81 16-Feb-2010 Eric Fischer <enf@google.com> Keep Rfc822Tokenizer from crashing when the string ends with a backslash.

Bug 2442537
til/Rfc822Tokenizer.java
a969dc4ea47051e6cd7f29fd91fd83924c749f0a 03-Feb-2010 Michael Chan <mchan@android.com> Unhiding Rfc822Tokenizer.tokenize(CharSequence text, Collection<Rfc822Token> out)

Note that Rfc822Tokenizer.tokenize(CharSequence text) is already in the SDK
and it just wraps the version I am unhiding.

Change-Id: I1ac3b405a04df960fc1e65ca4797d6f5adf85dc4
til/Rfc822Tokenizer.java
30d203050e832c7e3b7ca32cea615cb0825b5a2f 14-Jan-2010 Fred Quintana <fredq@google.com> allow + in usernames
oginFilter.java
62c4ad3b6ba162540c3fb57fcacb375ccfa53454 06-Jan-2010 Maryam Garrett <mkamvar@google.com> Enable onepointfivetap-and-swipe to select.

The goal of this new feature is to enable users to select
text without having to go through the cumbersome context
menu. Now users can simply execute a
onepointfivetap-and-swipe gesture to select text.
Onepointfivetap is similar to doubletap gesture (where a
finger goes down, up, down, up, in a short time period),
except in the onepointfive tap, a users finger only needs
to go down, up, down in a short time period.

I don't think this change should cause any waves, because
this interaction is consistent with the select interaction
using a computer-mouse and computer-screen, and i've
checked and it seems to be implemented on other touch-based
phones as well.

Change-Id: Iba84f7316a647e963ba7c57ca608bfdc3bb438b8
ethod/ArrowKeyMovementMethod.java
ad2fa35d888e0763bfef0fc060775bec5d169479 22-Dec-2009 Tom Taylor <tomtaylor@google.com> am d4a4729c: Update imports to android-common

Merge commit 'd4a4729c0cac582a2dcec7c8cfb316b81885a0f0' into eclair-mr2-plus-aosp

* commit 'd4a4729c0cac582a2dcec7c8cfb316b81885a0f0':
Update imports to android-common
d4a4729c0cac582a2dcec7c8cfb316b81885a0f0 21-Dec-2009 Tom Taylor <tomtaylor@google.com> Update imports to android-common

Several files were moved to android-common. Update all the references
to import those files from the new location.
utoText.java
tml.java
50fbfe65bb78e9fbd809238ca1f358390ed61ad3 15-Dec-2009 Maryam Garrett <mkamvar@google.com> am 39f0efba: Fixes context-menu trigger behavior after scroll in TextView

Merge commit '39f0efba92a4420f77e3abc53c367ea3cacde3cf' into eclair-mr2-plus-aosp

* commit '39f0efba92a4420f77e3abc53c367ea3cacde3cf':
Fixes context-menu trigger behavior after scroll in TextView
39f0efba92a4420f77e3abc53c367ea3cacde3cf 11-Dec-2009 Maryam Garrett <mkamvar@google.com> Fixes context-menu trigger behavior after scroll in TextView

This change fixes the context menu trigger behavior while
the user is selecting via touch. How if a user is selecting
text via dragging their finger, to trigger the context menu
they will have to lift their finger up, then issue a
longpress. This is consistent with the behavior of selecting
via the trackball.
ethod/ArrowKeyMovementMethod.java
15d3bb2ce6b3e48608148d56b2ba1555ad63dff8 14-Dec-2009 Paul Westbrook <pwestbro@google.com> am 7762d936: Unbundling work

Merge commit '7762d93621f508f4410fd37b5bbdfec0071b0420' into eclair-mr2-plus-aosp

* commit '7762d93621f508f4410fd37b5bbdfec0071b0420':
Unbundling work
7762d93621f508f4410fd37b5bbdfec0071b0420 11-Dec-2009 Paul Westbrook <pwestbro@google.com> Unbundling work

Moved AndroidHttpClient, Rfc822InputFilter, Rfc822Validator
NumberPicker, NumberPickerButton to android-common
---
til/Rfc822InputFilter.java
til/Rfc822Validator.java
fe9b503e57e3efc1909121db65dd470d908cc938 11-Dec-2009 Maryam Garrett <mkamvar@google.com> am 946bfa49: Merge change Ida4d6ab0 into eclair-mr2

Merge commit '946bfa490a4df62bfb48e8017c329b052e3e905e' into eclair-mr2-plus-aosp

* commit '946bfa490a4df62bfb48e8017c329b052e3e905e':
Allows users to scroll while in select mode.
ab9289320f598509cf358523ba173d69178a55ea 10-Dec-2009 Maryam Garrett <mkamvar@google.com> Allows users to scroll while in select mode.

This change allows the user to select-n-scroll. While a user
is in select mode, and they try to scroll, the textbox will
scroll in the direction of the selection, and expand the selection.
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
44e537a859966378f1599db5e5d41045e78efd94 07-Dec-2009 Maryam Garrett <mkamvar@google.com> am 7c427030: Merge change I9088d29b into eclair-mr2

Merge commit '7c42703082574638ecaa88ea18b0cc94bfabea2d' into eclair-mr2-plus-aosp

* commit '7c42703082574638ecaa88ea18b0cc94bfabea2d':
Improves the touch-based text selection UI in text boxes.
7c42703082574638ecaa88ea18b0cc94bfabea2d 07-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9088d29b into eclair-mr2

* changes:
Improves the touch-based text selection UI in text boxes.
0f6357d855a328eb62210feccff5e44c81578553 04-Dec-2009 Daisuke Miyakawa <dmiyakawa@google.com> am 67d9aa15: Merge change I6173d7c7 into eclair-mr2

Merge commit '67d9aa15b6c6217a7d3b7b017924af132d048e56' into eclair-mr2-plus-aosp

* commit '67d9aa15b6c6217a7d3b7b017924af132d048e56':
Add isPrintableAscii() and isPrintableAsciiOnly() to TextUtils.java as hidden methods, and make vCard code use them.
ce08379e22609415971ece6ba3417d6d3fd338d2 01-Dec-2009 Maryam Garrett <mkamvar@google.com> Improves the touch-based text selection UI in text boxes.

With this change, when a user is in "text select" mode, they
can swipe any part of the text. This changes the behavior of
the touch-based select in 2 ways (behavior for cursor-based
select remains the same):

1. You can now indicate where your select will start. Before
this change, the select always started at the last cursor
position.

2. Selection will respect word boundaries. Before this
change the selection would be character to character. Since
users don't have a fine grain level of control over touch
events, this would often lead to incomplete selections.
ethod/ArrowKeyMovementMethod.java
973afa96bf184be6b8b5a25963568650e70750f7 03-Dec-2009 Daisuke Miyakawa <dmiyakawa@google.com> Add isPrintableAscii() and isPrintableAsciiOnly() to TextUtils.java as hidden methods, and make vCard code use them.

In the future, ContactsProvider will use those methods.
See also the change 34604

Internal issue number: 2275764, 2195990
extUtils.java
a0c9c173f1096a5a39fb9976c8736dbccb7b7d2f 03-Dec-2009 Dianne Hackborn <hackbod@google.com> am 2d8b0c3f: am 8693f82d: Merge change If1f0bf33 into eclair

Merge commit '2d8b0c3f0fbc3c42063f4e790ca85b86c5d655f0' into eclair-mr2-plus-aosp

* commit '2d8b0c3f0fbc3c42063f4e790ca85b86c5d655f0':
Some work on issue #2286804: sometimes text field doesn't accept input
2d8b0c3f0fbc3c42063f4e790ca85b86c5d655f0 03-Dec-2009 Dianne Hackborn <hackbod@google.com> am 8693f82d: Merge change If1f0bf33 into eclair

Merge commit '8693f82d02fd9b3a805e076fa1eafacd1737446d' into eclair-mr2

* commit '8693f82d02fd9b3a805e076fa1eafacd1737446d':
Some work on issue #2286804: sometimes text field doesn't accept input
190a80ceb5e3102e578b0f0ea292f0c0e23ec594 03-Dec-2009 Dianne Hackborn <hackbod@google.com> am 8693f82d: Merge change If1f0bf33 into eclair

Merge commit '8693f82d02fd9b3a805e076fa1eafacd1737446d' into eclair-plus-aosp

* commit '8693f82d02fd9b3a805e076fa1eafacd1737446d':
Some work on issue #2286804: sometimes text field doesn't accept input
27d377221c7970a5205c83f8a9f62f755dc1fa5d 02-Dec-2009 Dianne Hackborn <hackbod@google.com> Some work on issue #2286804: sometimes text field doesn't accept input

This doesn't really fix the problem being brought up here, but fixes a
related issue I found while investigating it -- if you tap a text view
enough to cause it to try to scroll, this will cause the touch to become
a scroll instead of a click, even if there is nothing to scroll. So
often quick taps to bring up the IME would be canceled because they
became a non-scroll.

Unfortuntately after syncing the latest build, I was having a lot of
trouble reproducing the original problem. I think I need to punt it to
MR2 at this point.

Change-Id: If1f0bf33de1b4d71c9f677cdad07639b7a3fb772
ethod/Touch.java
a351b7f0c6a2f8240f6426cfdd3499ac0618bc8f 18-Nov-2009 Dan Egnor <egnor@google.com> am 8c7d9eab: Merge change Icb1674f1 into eclair-mr2

Merge commit '8c7d9eab8aa297f5ee3a171c6fa63fcf94e2b330' into eclair-mr2-plus-aosp

* commit '8c7d9eab8aa297f5ee3a171c6fa63fcf94e2b330':
Create android-common static library which gets included in frameworks.jar,
ded0e6447ed6e0f200dbca13e43c6cf4efc16a1d 18-Nov-2009 Dan Egnor <egnor@google.com> Create android-common static library which gets included in frameworks.jar,
but can also be used by unbundled apps. Move android.text.util.Regex there as
a starting example, renamed to a more sensible (?) com.android.common.Patterns.
Set up a corresponding test package, and move RegexTest (to PatternsTest).
Update clients.
til/Linkify.java
til/Regex.java
1f60ff34cd353235eedb20bd0c6e2d4a1e6bcc06 18-Nov-2009 Eric Fischer <enf@google.com> am e45ebbaf: am 04a0e969: Merge change Id7c432bf into eclair

Merge commit 'e45ebbaf1b4450bb65fa13aaa3e64243ab838435' into eclair-mr2-plus-aosp

* commit 'e45ebbaf1b4450bb65fa13aaa3e64243ab838435':
Add vertical bar to the alt-space character picker for the hardware keyboard.
e45ebbaf1b4450bb65fa13aaa3e64243ab838435 18-Nov-2009 Eric Fischer <enf@google.com> am 04a0e969: Merge change Id7c432bf into eclair

Merge commit '04a0e969c6ae4c81a187ce70fdcee3f026eee7ec' into eclair-mr2

* commit '04a0e969c6ae4c81a187ce70fdcee3f026eee7ec':
Add vertical bar to the alt-space character picker for the hardware keyboard.
419094223a4ff49a8e63403d10dd3c5334d20a35 18-Nov-2009 Eric Fischer <enf@google.com> am 04a0e969: Merge change Id7c432bf into eclair

Merge commit '04a0e969c6ae4c81a187ce70fdcee3f026eee7ec' into eclair-plus-aosp

* commit '04a0e969c6ae4c81a187ce70fdcee3f026eee7ec':
Add vertical bar to the alt-space character picker for the hardware keyboard.
d7c432bf7f9c0c9dd6d954fffcd68828c0e309a5 18-Nov-2009 Eric Fischer <enf@google.com> Add vertical bar to the alt-space character picker for the hardware keyboard.

Bug 2242177

Approver: jerryw
ethod/QwertyKeyListener.java
da4204caa487bc613e51684db457ef4be6a914fc 19-Oct-2009 Mark Wagner <mxw@google.com> am dad4780b: Merge change I3834b1cb into eclair-mr2

Merge commit 'dad4780bbd6be0891ea8745bd274fc8d6882f071' into eclair-mr2-plus-aosp

* commit 'dad4780bbd6be0891ea8745bd274fc8d6882f071':
support for multiline paragraph style indentation
7b5676e4d40a09ccdbc8b6f691a3d8be23e480d3 16-Oct-2009 Mark Wagner <mxw@google.com> support for multiline paragraph style indentation

This change is likely incomplete and perhaps not right in other ways.
The gist of the change is that the span can return the number of lines
to which to apply the "leading margin".
Some specific things that should be looked at:

1) if the user has nested multiple
LeadingMarginSpans then they will inherit the "line count" feature.
This is wrong but I didn't want to spend time fixing it until it
was clear that this overall approach was acceptible.

2) The units for how many lines should indented is "lines" rather than
something like dips.

3) I wasn't sure what our strategy was for binary compatibility so
I didn't want to modify the methods in LeadingMarginSpan. Instead I
made another interface with extends LeadingMarginSpan that has the
extra method to return the line count.
ayout.java
taticLayout.java
tyle/LeadingMarginSpan.java
1dc38caf5fe5b479f50518b60e24c3c1df804dbf 01-Oct-2009 Eric Fischer <enf@google.com> am 88f2acb0: Merge change Iec1f8a2e into eclair

Merge commit '88f2acb066f2b66a01807ad4f3d26ef575a1bf37' into eclair-plus-aosp

* commit '88f2acb066f2b66a01807ad4f3d26ef575a1bf37':
Add Turkish accented letters for G and S on the hard keyboard.
ec1f8a2ecedb4904ca93bce14b4e1e033539fa55 01-Oct-2009 Eric Fischer <enf@google.com> Add Turkish accented letters for G and S on the hard keyboard.

Bug 2158331
ethod/QwertyKeyListener.java
ed843820f7aa93e0d3a2529956414a2ed940fa89 29-Sep-2009 Cary Clark <cary@android.com> am eaa18dec: scroll text field with touch

Merge commit 'eaa18dec91b6dd0ce3191a9ab65cdc95ef68b935' into eclair-plus-aosp

* commit 'eaa18dec91b6dd0ce3191a9ab65cdc95ef68b935':
scroll text field with touch
eaa18dec91b6dd0ce3191a9ab65cdc95ef68b935 28-Sep-2009 Cary Clark <cary@android.com> scroll text field with touch

Add a hidden public method to text/method/Touch.java that
computes the maximum scroll amount for a text field.

Remove 'faketouch' code; it causes a crash and is
no longer required.

Pass the percentage of the current scroll from the UI
thread to webkit. One additional fix is to allow very
small movements which are currently disallowed because
they are smaller than 'smallerSlop' in WebTextView.java.

Companion fix is in external/webkit.

Fixes http://b/issue?id=2133049
ethod/Touch.java
6351cf72a55def4e1bca5764dea8cbca99f13b90 23-Sep-2009 Debajit Ghosh <debajit@google.com> am 193a6261: Merge change 26537 into eclair

Merge commit '193a6261894619985866220c320017f0831d6055' into eclair-plus-aosp

* commit '193a6261894619985866220c320017f0831d6055':
add hashCode() and equals() to Rfc822Token, as well as a convenience tokenizer method to Rfc822Tokenizer, as part of a calendar guest bugfix.
78a5b8106a4768f7a67e5a29c58f23cd95f6c47c 23-Sep-2009 Debajit Ghosh <debajit@google.com> add hashCode() and equals() to Rfc822Token, as well as a convenience tokenizer method to Rfc822Tokenizer, as part of a calendar guest bugfix.
til/Rfc822Token.java
til/Rfc822Tokenizer.java
3ffe6b12c78397abb8ab1a3064583d5e8b6ce51c 22-Sep-2009 Dianne Hackborn <hackbod@google.com> am 7f3fb7de: Merge change 26130 into eclair

Merge commit '7f3fb7dec2afdffa37e3067ca8a5b9d01809a9ce' into eclair-plus-aosp

* commit '7f3fb7dec2afdffa37e3067ca8a5b9d01809a9ce':
Turn animations on by default.
bfe319e06aa56c081d0d94d64a8181291d7f7388 21-Sep-2009 Dianne Hackborn <hackbod@google.com> Turn animations on by default.

Add API to skip the animation for a particular start activity, so that
a latter better one can be used.

Fix Theme.NoDisplay to actually work.

Fiddle with various animations: don't do a different animation for task
switching, try a scale animation for switching in/out of the wallpaper.

Adjust the animation duration so that at normal speed we have something
more like the slower animation option (so slow is now the default).

Change-Id: Ieba9f3db0bd9a762a19b327a3ecccbc7b547893d
ormat/Formatter.java
6ce4af8587214865771b3fb6da8ba352b9080056 17-Sep-2009 Debajit Ghosh <debajit@google.com> am 70db3a20: Merge change 25414 into eclair

Merge commit '70db3a20cfa73fad0794679dda4102461a88057b' into eclair-plus-aosp

* commit '70db3a20cfa73fad0794679dda4102461a88057b':
refactor copy-and-paste email address filtering code.
70db3a20cfa73fad0794679dda4102461a88057b 17-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25414 into eclair

* changes:
refactor copy-and-paste email address filtering code. add a column to Calendar.Events contract class.
aa3620f3999ccf2d79105bdc3641ce4c9134032e 17-Sep-2009 Amith Yamasani <yamasani@google.com> am 12cc9d82: Add a new flag for IMEs to disable suggestions for certain fields.

Merge commit '12cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77a' into eclair-plus-aosp

* commit '12cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77a':
Add a new flag for IMEs to disable suggestions for certain fields.
b3278a5c8a625b5bfe532eea0c1e30d24695f4ae 17-Sep-2009 Eric Fischer <enf@google.com> am 0828beee: Merge change 25386 into eclair

Merge commit '0828beee503b99a8f38f456416592d4ed6c799ae' into eclair-plus-aosp

* commit '0828beee503b99a8f38f456416592d4ed6c799ae':
Add one more hardware keyboard character popup: \ if you hold /
4c8b3594a62c614ef8a8fa1a82036630e8d0ea2f 17-Sep-2009 Debajit Ghosh <debajit@google.com> refactor copy-and-paste email address filtering code.
add a column to Calendar.Events contract class.
til/Rfc822InputFilter.java
12cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77a 17-Sep-2009 Amith Yamasani <yamasani@google.com> Add a new flag for IMEs to disable suggestions for certain fields.
nputType.java
cebe347e7ff99c593a0136ae8bcb3cadab7d77b6 17-Sep-2009 Eric Fischer <enf@google.com> Add one more hardware keyboard character popup: \ if you hold /
ethod/QwertyKeyListener.java
dda648f00aa6ea7b12dc4b96e70a6ced3c422e4a 16-Sep-2009 Eric Fischer <enf@google.com> am b6a7ea54: Merge change 25153 into eclair

Merge commit 'b6a7ea540ef9537bcedc707a87514e63438a533a' into eclair-plus-aosp

* commit 'b6a7ea540ef9537bcedc707a87514e63438a533a':
Reconcile the character popups for the hard and soft keyboards.
4ef29959bda59ae5f90aeeb48a8ef7e218500d03 16-Sep-2009 Eric Fischer <enf@google.com> Reconcile the character popups for the hard and soft keyboards.

Have the hardware keyboard popups for digits and symbols include
all the same characters as the soft keyboard has for those keys.

Bug 2056195
ethod/QwertyKeyListener.java
76d82371a90e81f2d5214d7b16ba713cb73771d1 14-Sep-2009 Eric Fischer <enf@google.com> am 13bc4ad1: Merge change 24902 into eclair

Merge commit '13bc4ad18bc401c2a80e7dde8cba18841d709a78' into eclair-plus-aosp

* commit '13bc4ad18bc401c2a80e7dde8cba18841d709a78':
Add "rtsp" to the list of URL schemes that get linkified.
7a4be89f5a7188d3e10ff0e1f71722ab161a5456 14-Sep-2009 Eric Fischer <enf@google.com> Add "rtsp" to the list of URL schemes that get linkified.

Bug 1845298
til/Linkify.java
til/Regex.java
e8ffb1da28b397422ec67c93577abe37f0561228 09-Sep-2009 Amith Yamasani <yamasani@google.com> am e989496e: Merge change 24194 into eclair

Merge commit 'e989496e2bb7a64abe7336db1e728095ebc83a0c' into eclair-plus-aosp

* commit 'e989496e2bb7a64abe7336db1e728095ebc83a0c':
Make the hardkeyboard long press dialog look the same as that of soft keyboard.
38d838d3aef5716c72936b3c0573bc5d4135c02c 08-Sep-2009 Amith Yamasani <yamasani@google.com> Make the hardkeyboard long press dialog look the same as that of soft keyboard.

New assets for transparent buttons and background.
ethod/CharacterPickerDialog.java
85a2c7f1cad8fd55ed72a8a3dbb2b36632ebbff3 01-Sep-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master
b7559e02803266e5fa9f4496174bc343ecd245ab 01-Sep-2009 Eric Fischer <enf@google.com> am 56205fea: Merge change 23345 into donut

Merge commit '56205fea879543a50bb797016832416a8b48cabb' into eclair

* commit '56205fea879543a50bb797016832416a8b48cabb':
Fix an emoji-measuring bug that caused an exception when editing a contact.
a82e99a89b7a12bd86d99d60d23a7a37624499b6 01-Sep-2009 Eric Fischer <enf@google.com> Fix an emoji-measuring bug that caused an exception when editing a contact.

It was measuring the text to try to determine the size that it needed to
scale the emoji character to. Unfortunately it was accidentally trying
to measure the character under the cursor instead of the emoji character
itself, which is wrong, but more seriously doesn't work at all when the
cursor is at the end of the line.

This was already fixed before in change 144474, but that change never got
merged over to donut. So this merges it now.

Bug 2087915

Change-Id: Ib4804d330a029a966207b3b07271f84e6b2652c0
ayout.java
4a51c20ce607c74914f90fd897f04080121ac13b 22-Aug-2009 Dianne Hackborn <hackbod@google.com> I am getting tired of the java doc warnings, so fix them.

Change-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1
tyle/ImageSpan.java
f4a2a7de88dad33eb341585fe7be7c6289baaac6 25-Aug-2009 Android Code Review <code-review@android.com> Merge change 10712

* changes:
Clarify use of InputType flags
86fcef87b802ee58147127dc5cca940239a30404 18-Aug-2009 Eric Fischer <enf@google.com> Don't use BoringLayout to display text that has paragraph-style markup.

BoringLayout assumes it doesn't have to do any work to calculate the
line height. In this case, though, there may actually be work to be
done, so have it fall back to StaticLayout to do the more thorough job.

Bug 2051050
oringLayout.java
f16da4555fbfbf9a92373dd2236f1f30b7f451e6 13-Aug-2009 Eric Fischer <enf@google.com> Add brackets, braces, and backslash to alt-space character entry popup.

Bug 2024806
ethod/QwertyKeyListener.java
a9f1dd021f8f6ee777bc4d27913bd40c42e753af 13-Aug-2009 Eric Fischer <enf@google.com> Make <font size> and <font height> in string resources respect density.

This unfortunately requires API changes because the existing text markup
classes had no access to the screen density.

TextPaint gains a "density" field so that TextView can pass the density
along. AbsoluteSizeSpan gains a new flag to indicate that its argument
is in dip instead of in physical pixels. LineHeightSpan gains an inner
interface whose chooseHeight() method includes a TextPaint argument so
it can get at the density. And when StringBlock creates the markup
objects, it now uses the density-aware versions.

Bug 1976971, Bug 2031746
taticLayout.java
extPaint.java
tyle/AbsoluteSizeSpan.java
tyle/LineHeightSpan.java
5c1207be90fdf296c1b83034b7c68915e1749284 01-Aug-2009 Jean-Baptiste Queru <jbq@google.com> donut snapshot
ormat/DateFormat.java
tyle/ImageSpan.java
cdc50d779bce9606b2563248af1e39cfba6b735c 30-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am c6eb5ac9: Merge change 9071 into donut

Merge commit 'c6eb5ac988518f41938c4f021003d6c202d84819'

* commit 'c6eb5ac988518f41938c4f021003d6c202d84819':
Fix issue #2018454: NullPointerException in ImageSpan constructor
0cd6376fa14089cee42991f751962ffd7f455797 30-Jul-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2018454: NullPointerException in ImageSpan constructor
tyle/ImageSpan.java
a8675f67e33bc7337d148358783b0fd138b501ff 29-Jul-2009 Jean-Baptiste Queru <jbq@google.com> donut snapshot
tml.java
9d5750636bdf93703301e319e5c5e9bbd051ea50 27-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8593

* changes:
When you double-tap a word in an EditText, select the word.
a6e50454890629fe369538d8e473945bc9d68136 25-Jul-2009 Eric Fischer <enf@google.com> When you double-tap a word in an EditText, select the word.

Bug 1978109
ethod/ArrowKeyMovementMethod.java
e2dba02441b42afbae725109ac779877a4b72aa0 25-Jul-2009 Dianne Hackborn <hackbod@google.com> am 11ea3347: Allow for screen density drawables in compatibility mode.

Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'

* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
Allow for screen density drawables in compatibility mode.
41220f2c5b674e317a9edd526bcfca6c542c1a15 25-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 7c187de1: Merge change 8462 into donut

Merge commit '7c187de14f6b5ec6d90bc8e26265a2ca2824e39a'

* commit '7c187de14f6b5ec6d90bc8e26265a2ca2824e39a':
Make the DatePicker respect the date format setting if the date is numeric.
11ea33471e1a14a8594f0b2cd012d86340dd3bd8 23-Jul-2009 Dianne Hackborn <hackbod@google.com> Allow for screen density drawables in compatibility mode.

This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode. In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.

This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable. For
the small rare chance of them breaking, it worth getting the correct
graphics. Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).

As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
tyle/ImageSpan.java
03a8017d0fe3b55b69c4328aa0d27bd96a2f1360 24-Jul-2009 Eric Fischer <enf@google.com> Make the DatePicker respect the date format setting if the date is numeric.

In some locales, there are no abbreviated month names; the abbreviated
date formats are essentially numeric. If the user is in such a locale,
have the DatePicker respect the date format setting so that the order
of the fields will match other numeric-only dates.

In locales that have abbreviated month names, continue to use the order
that is normal in spelled-out dates.

And update the order in updateDate() so that the new order is reflected
if you change the order setting and immediately go to change the date
without leaving and returning to the Date & Time settings in between.

At the same time, change DateFormat.getDateFormatOrder() back to working
the way it did in cupcake (prioritizing the date order preference over
the locale), even though the DatePicker no longer calls the method.

Bug 1805085
ormat/DateFormat.java
cf4550c3198d6b3d92cdc52707fe70d7cc0caa9f 21-Jul-2009 Jean-Baptiste Queru <jbq@google.com> donut snapshot
oginFilter.java
extUtils.java
ormat/DateFormat.java
ormat/DateUtils.java
ormat/Formatter.java
ormat/Time.java
ethod/DialerKeyListener.java
ethod/Touch.java
d3badad3aa7fd250a0a81549c6c3c15d8aee9f8d 18-Jul-2009 Kenny Root <kenny@the-b.org> Clarify use of InputType flags

Some developers were confused about how to use the inputType field
and were omitting the class type when setting variations.

There are places in the framework where it specifically checks for
a class and variation before it invokes the desired behavior.

For instance, in EditText when setting the input type to a visible
password, it specifically checks for this condition:
inputType == (TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD)
nputType.java
cad18157e73a93ff5d7c41fdb9e1abd0ca7b5f61 17-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am c93af6dc: Merge change 7441 into donut

Merge commit 'c93af6dc5bc78f02d4ee549890da12dc669fc2fe'

* commit 'c93af6dc5bc78f02d4ee549890da12dc669fc2fe':
Allow system colors in <font> tags
9cab7f7684f046934e3d400482dbd1db67c93ee4 15-Jul-2009 Bjorn Bringert <bringert@android.com> Allow system colors in <font> tags

Fixes http://b/issue?id=1970693
tml.java
c885577145f9e7b72466e8e7497e8b0f9da9477b 02-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am b0b815da: Merge change 5845 into donut

Merge commit 'b0b815da8c487bbfac6b2eadc91c619682720a71'

* commit 'b0b815da8c487bbfac6b2eadc91c619682720a71':
Always clear the TextView drag state whenever a touch begins.
58b971d733a2c700cabd3db02b6ea4d5faca6939 01-Jul-2009 Eric Fischer <enf@google.com> Always clear the TextView drag state whenever a touch begins.

Apparently it can sometimes miss a touch release, which would prevent
the longpress menu from appearing if the location of the new touch was
too far from the location of the previous touch.

Bug 1673223
ethod/Touch.java
becfc9de9e18ef216c2b537cd2829f1d2d55404f 30-Jun-2009 Michael Chan <mchan@android.com> Added a Formatter parameter to DateUtils.formatDateRange

DateUtils.formatDateRange is using String.format which isn't efficient for
formatting large number of strings. I have added the Formatter parameter which
allows the caller to reuse the formatter of subsequent calls for faster
performance.
ormat/DateUtils.java
5669ce59aad19f17e1e89913e7483fb93b8aa0cf 18-Jun-2009 Eric Fischer <enf@google.com> Work around the Czech lack of abbreviated month names.

Make the date formats that want abbreviated month names use either
the full name or a numeric format.
ormat/DateUtils.java
7351dd113f26580f3bcc7500746f3a26aecc4260 13-Jun-2009 Eric Fischer <enf@google.com> Use locale-appropriate formatting to display application sizes like "252KB".

In particular allow the French and Polish translators to put a space between
the number and the unit.
ormat/Formatter.java
328769582328192f8f361dcb56f2ad67ad00ae2c 12-Jun-2009 Eric Fischer <enf@google.com> Make the date format preference work again.

It is only used for numeric dates -- spelled-out dates have such a complex
variety of formats that they can only be meaningfully formatted from
locale strings.

In addition, the preference is left null when initializing, on the assumption
that the locale will still specify a more useful numeric format than we can
guess as part of a build-wide configuration.

But if the user has specified a format, the date will be formatted in the
order they asked for, with locale-appropriate punctuation substituted in.
ormat/DateFormat.java
af0e7a7394bf1e2596c46f81c3b0302a56daab96 11-Jun-2009 Eric Fischer <enf@google.com> Hook the 12- or 24-hour time format checkbox back up.

The format strings are newly generated from CLDR. The code is once again
the same as in cupcake: do the natural thing for the locale if the user
has never specified, but follow the checkbox if the user has ever set it.
ormat/DateFormat.java
84c863d9af1270a2ccd2ccd2b8c1a753826dfe6d 10-Jun-2009 Eric Fischer <enf@google.com> Fix some 12- vs 24-hour problems in the FormatDateRange strings.

Use a resource instead of a hardcoded string for the 24-hour format
since it is not exactly the same in every locale.

Make sure the 12-hour format is actually for a 12-hour clock, even in
locales where this is not a normal thing to do. In the cap_ampm version,
do not have it try to capitalize "am" and "pm" if these are non-ASCII
strings, since strftime() doesn't know about Unicode and will mess it up.

Add a comment so that people don't think the YEAR_IN_MILLIS constant is
actually the length of any real year.
ormat/DateUtils.java
a32b5f3252a58416f328399680395aa5fa936640 10-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 2411 into donut

* changes:
Manual merge from cupcake_dcm. Need to be reviewed by enf.
dda5391d5079537e275c9f4ed2637a1484d0e4e8 29-May-2009 Wink Saville <wink@google.com> Motorola additions for CDMA support without CdmaSuppConnTracker

There are corresponding changes to hardware/ril and packages/apps/Phone
that are required to go with these changes.
ethod/DialerKeyListener.java
c1d2748d442f06a7266be04b9e9c7d20609ad5cc 25-May-2009 Daisuke Miyakawa <dmiyakawa@google.com> Manual merge from cupcake_dcm. Need to be reviewed by enf.
oginFilter.java
extUtils.java
843ef36f7b96cc19ea7d2996b7c8661b41ec3452 20-May-2009 Jean-Baptiste Queru <jbq@google.com> donut snapshot
ayout.java
5bd644caf73e76750feef1a82b8817d32f5367fc 13-May-2009 Eric Fischer <enf@google.com> Start using CLDR for some date-and-time strings and formats.

Use java.text.DateFormat where possible, since that is already using
the CLDR data for the things it supports. Remove an unused date format
object from DatePickerDialog.

Add a new method for getting the standalone month names from applications,
although @hidden for now because it is an API change.

Pass the standalone month names down to native code in Time so that
tztime's strftime() can use them.

And then the bulk of the change: replace all the names for the months
and the days of the week, and AM and PM, and yesterday, today, and tomorrow,
with strings from CLDR. And replace several of the date format strings
with ones derived from CLDR, but reformatted to use strftime() style
instead of SimpleDateFormat style.

All these resource changes go into new donottranslate-cldr.xml files
and are removed from strings.xml so that they aren't part of the
normal translation process and the translators don't have to bother
with them (and risk messing them up).
ormat/DateFormat.java
ormat/DateUtils.java
ormat/Time.java
670bf11fcf9e0a73007b9b814069aa575a872096 27-Apr-2009 Ken Shirriff <kens@google.com> Document exception from parse3339
ormat/Time.java
76c0226008ee16633dc94ed4dbeadef2174f6bd9 14-Apr-2009 Dave Bort <dbort@android.com> text: Remove references to android.util.Config

The semantics of Config.DEBUG will be changing soon, and all other
Config.* fields will become deprecated/hidden.

BUG=1780938
ayout.java
6480ba23e42bff917a5456c7876d77a93f61eb1d 01-Apr-2009 Tadashi Takaoka <> AI 144002: am: CL 144001 Fix tiny bug in Rfc822Token.java
Original author: takaoka
Merged from: //branches/cupcake/...

Automated import of CL 144002
til/Rfc822Token.java
c21cf4a9c5aa46df55800f28b7603852480d7585 01-Apr-2009 Tadashi Takaoka <> AI 144001: Fix tiny bug in Rfc822Token.java
BUG=1751496

Automated import of CL 144001
til/Rfc822Token.java
48e2de6b0f8159a268caccdbc7691ca728a53fa2 31-Mar-2009 Eric Fischer <> AI 143678: am: CL 143540 Try not to start TextView lines with non-starter characters.
TextView was previously following the "relaxed" line breaking
convention and would allow a line break between any two
ideographic characters. Tighten that up and do not allow
line breaks before non-starter characters (sound and iteration
marks and small Hiragana and Katakana).
Original author: enf
Merged from: //branches/cupcake/...

Automated import of CL 143678
taticLayout.java
65b8acad5fd6d6e5a49413574dae356dee41d4a5 31-Mar-2009 Eric Fischer <> AI 143669: am: CL 143495 Add more accented letters to the character picker.
The hardware keyboard doesn't have all the accents needed for
Czech and Polish, so round out the selection.
Original author: enf
Merged from: //branches/cupcake/...

Automated import of CL 143669
ethod/QwertyKeyListener.java
15095be0608da594adbc9093f1106235c4370590 31-Mar-2009 Eric Fischer <> AI 143540: Try not to start TextView lines with non-starter characters.
TextView was previously following the "relaxed" line breaking
convention and would allow a line break between any two
ideographic characters. Tighten that up and do not allow
line breaks before non-starter characters (sound and iteration
marks and small Hiragana and Katakana).
BUG=1735619

Automated import of CL 143540
taticLayout.java
8e13d66b8d5f9f36605398586a151a92f350d430 30-Mar-2009 Eric Fischer <> AI 143495: Add more accented letters to the character picker.
The hardware keyboard doesn't have all the accents needed for
Czech and Polish, so round out the selection.
BUG=1742856

Automated import of CL 143495
ethod/QwertyKeyListener.java
c2d54f46ac13e029e6d53f7471cd9c90fe6bbfe9 27-Mar-2009 Eric Fischer <> AI 143165: am: CL 142861 Make TextView Emoji scale to match the size of the text.
Original author: enf
Merged from: //branches/cupcake/...

Automated import of CL 143165
ayout.java
taticLayout.java
ffacbe5d36a6dec96a5c18081c4c321145f9fb66 26-Mar-2009 Eric Fischer <> Automated import from //branches/cupcake/...@142861,142861
ayout.java
taticLayout.java
f0138614acd239a43a0b6cb97b0ea845f82925f4 26-Mar-2009 Amith Yamasani <> Automated import from //branches/donutburger/...@142787,142787
utoText.java
2d548b56cd0f3dabad8844930f1583952ecf872c 26-Mar-2009 Amith Yamasani <> Automated import from //branches/cupcake/...@142786,142786
utoText.java
00ba76670fd06d9c51cce36a74c384a212f705b5 26-Mar-2009 Eric Fischer <> Automated import from //branches/donutburger/...@142700,142700
tml.java
d5e6a90c758f6d6a677af465da101d8b8b6b574d 25-Mar-2009 Eric Fischer <> Automated import from //branches/cupcake/...@142564,142564
tml.java
32048300e917c9181927ac017d02855bbde940ef 25-Mar-2009 Satoshi Kataoka <> Automated import from //branches/donutburger/...@141195,141195
tml.java
38e98fccfab9592f871f3066f8569c559f1ee226 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/donutburger/...@140714,140714
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
c2ad241504fcaa12d4579d3b0b4038d1ca8d08c9 20-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@141571
tml.java
ethod/ArrowKeyMovementMethod.java
ethod/Touch.java
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
tml.java
ayout.java
taticLayout.java
ba87e3e6c985e7175152993b5efcc7dd2f0e1c93 13-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@138607
tyle/ImageSpan.java
tyle/URLSpan.java
til/Regex.java
c39a6e0c51e182338deb8b63d07933b585134929 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
ethod/QwertyKeyListener.java
b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
ethod/ArrowKeyMovementMethod.java
ethod/MetaKeyKeyListener.java
4df2423a947bcd3f024cc3d3a1a315a8dc428598 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
nputType.java
ethod/ArrowKeyMovementMethod.java
ethod/QwertyKeyListener.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
lteredCharSequence.java
ndroidCharacter.java
nnotation.java
utoText.java
oringLayout.java
lipboardManager.java
ynamicLayout.java
ditable.java
etChars.java
raphicsOperations.java
tml.java
Clipboard.aidl
nputFilter.java
nputType.java
ayout.java
oginFilter.java
oCopySpan.java
ackedIntVector.java
ackedObjectVector.java
arcelableSpan.java
election.java
panWatcher.java
pannable.java
pannableString.java
pannableStringBuilder.java
pannableStringInternal.java
panned.java
pannedString.java
taticLayout.java
tyled.java
extPaint.java
extUtils.java
extWatcher.java
ormat/DateFormat.java
ormat/DateUtils.java
ormat/Formatter.java
ormat/Time.java
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/CharacterPickerDialog.java
ethod/DateKeyListener.java
ethod/DateTimeKeyListener.java
ethod/DialerKeyListener.java
ethod/DigitsKeyListener.java
ethod/HideReturnsTransformationMethod.java
ethod/KeyListener.java
ethod/LinkMovementMethod.java
ethod/MetaKeyKeyListener.java
ethod/MovementMethod.java
ethod/MultiTapKeyListener.java
ethod/NumberKeyListener.java
ethod/PasswordTransformationMethod.java
ethod/QwertyKeyListener.java
ethod/ReplacementTransformationMethod.java
ethod/ScrollingMovementMethod.java
ethod/SingleLineTransformationMethod.java
ethod/TextKeyListener.java
ethod/TimeKeyListener.java
ethod/Touch.java
ethod/TransformationMethod.java
ethod/package.html
ackage.html
tyle/AbsoluteSizeSpan.java
tyle/AlignmentSpan.java
tyle/BackgroundColorSpan.java
tyle/BulletSpan.java
tyle/CharacterStyle.java
tyle/ClickableSpan.java
tyle/DrawableMarginSpan.java
tyle/DynamicDrawableSpan.java
tyle/ForegroundColorSpan.java
tyle/IconMarginSpan.java
tyle/ImageSpan.java
tyle/LeadingMarginSpan.java
tyle/LineBackgroundSpan.java
tyle/LineHeightSpan.java
tyle/MaskFilterSpan.java
tyle/MetricAffectingSpan.java
tyle/ParagraphStyle.java
tyle/QuoteSpan.java
tyle/RasterizerSpan.java
tyle/RelativeSizeSpan.java
tyle/ReplacementSpan.java
tyle/ScaleXSpan.java
tyle/StrikethroughSpan.java
tyle/StyleSpan.java
tyle/SubscriptSpan.java
tyle/SuperscriptSpan.java
tyle/TabStopSpan.java
tyle/TextAppearanceSpan.java
tyle/TypefaceSpan.java
tyle/URLSpan.java
tyle/UnderlineSpan.java
tyle/UpdateAppearance.java
tyle/UpdateLayout.java
tyle/WrapTogetherSpan.java
tyle/package.html
til/Linkify.java
til/Regex.java
til/Rfc822Token.java
til/Rfc822Tokenizer.java
til/Rfc822Validator.java
til/package.html
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
lteredCharSequence.java
ndroidCharacter.java
nnotation.java
utoText.java
oringLayout.java
lipboardManager.java
ynamicLayout.java
ditable.java
etChars.java
raphicsOperations.java
tml.java
Clipboard.aidl
nputFilter.java
nputType.java
ayout.java
oginFilter.java
oCopySpan.java
ackedIntVector.java
ackedObjectVector.java
arcelableSpan.java
election.java
panWatcher.java
pannable.java
pannableString.java
pannableStringBuilder.java
pannableStringInternal.java
panned.java
pannedString.java
taticLayout.java
tyled.java
extPaint.java
extUtils.java
extWatcher.java
ormat/DateFormat.java
ormat/DateUtils.java
ormat/Formatter.java
ormat/Time.java
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/CharacterPickerDialog.java
ethod/DateKeyListener.java
ethod/DateTimeKeyListener.java
ethod/DialerKeyListener.java
ethod/DigitsKeyListener.java
ethod/HideReturnsTransformationMethod.java
ethod/KeyListener.java
ethod/LinkMovementMethod.java
ethod/MetaKeyKeyListener.java
ethod/MovementMethod.java
ethod/MultiTapKeyListener.java
ethod/NumberKeyListener.java
ethod/PasswordTransformationMethod.java
ethod/QwertyKeyListener.java
ethod/ReplacementTransformationMethod.java
ethod/ScrollingMovementMethod.java
ethod/SingleLineTransformationMethod.java
ethod/TextKeyListener.java
ethod/TimeKeyListener.java
ethod/Touch.java
ethod/TransformationMethod.java
ethod/package.html
ackage.html
tyle/AbsoluteSizeSpan.java
tyle/AlignmentSpan.java
tyle/BackgroundColorSpan.java
tyle/BulletSpan.java
tyle/CharacterStyle.java
tyle/ClickableSpan.java
tyle/DrawableMarginSpan.java
tyle/DynamicDrawableSpan.java
tyle/ForegroundColorSpan.java
tyle/IconMarginSpan.java
tyle/ImageSpan.java
tyle/LeadingMarginSpan.java
tyle/LineBackgroundSpan.java
tyle/LineHeightSpan.java
tyle/MaskFilterSpan.java
tyle/MetricAffectingSpan.java
tyle/ParagraphStyle.java
tyle/QuoteSpan.java
tyle/RasterizerSpan.java
tyle/RelativeSizeSpan.java
tyle/ReplacementSpan.java
tyle/ScaleXSpan.java
tyle/StrikethroughSpan.java
tyle/StyleSpan.java
tyle/SubscriptSpan.java
tyle/SuperscriptSpan.java
tyle/TabStopSpan.java
tyle/TextAppearanceSpan.java
tyle/TypefaceSpan.java
tyle/URLSpan.java
tyle/UnderlineSpan.java
tyle/UpdateAppearance.java
tyle/UpdateLayout.java
tyle/WrapTogetherSpan.java
tyle/package.html
til/Linkify.java
til/Regex.java
til/Rfc822Token.java
til/Rfc822Tokenizer.java
til/Rfc822Validator.java
til/package.html
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
nputType.java
tyled.java
ormat/DateUtils.java
ethod/NumberKeyListener.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
nputType.java
tyled.java
ormat/DateUtils.java
ethod/NumberKeyListener.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
ormat/Time.java
tyle/ImageSpan.java
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
ethod/ArrowKeyMovementMethod.java
ethod/MetaKeyKeyListener.java
ethod/PasswordTransformationMethod.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
nnotation.java
tml.java
nputType.java
oCopySpan.java
arcelableSpan.java
election.java
panWatcher.java
pannableStringBuilder.java
panned.java
taticLayout.java
extUtils.java
extWatcher.java
ormat/DateFormat.java
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/KeyListener.java
ethod/LinkMovementMethod.java
ethod/MetaKeyKeyListener.java
ethod/MovementMethod.java
ethod/NumberKeyListener.java
ethod/PasswordTransformationMethod.java
ethod/QwertyKeyListener.java
ethod/ScrollingMovementMethod.java
ethod/SingleLineTransformationMethod.java
ethod/TextKeyListener.java
ethod/Touch.java
tyle/AbsoluteSizeSpan.java
tyle/AlignmentSpan.java
tyle/BackgroundColorSpan.java
tyle/BulletSpan.java
tyle/ForegroundColorSpan.java
tyle/LeadingMarginSpan.java
tyle/QuoteSpan.java
tyle/RelativeSizeSpan.java
tyle/ScaleXSpan.java
tyle/StrikethroughSpan.java
tyle/StyleSpan.java
tyle/SubscriptSpan.java
tyle/SuperscriptSpan.java
tyle/TextAppearanceSpan.java
tyle/TypefaceSpan.java
tyle/URLSpan.java
tyle/UnderlineSpan.java
til/Rfc822Validator.java
f1e484acb594a726fb57ad0ae4cfe902c7f35858 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127436
extUtils.java
9266c558bf1d21ff647525ff99f7dadbca417309 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
ormat/DateFormat.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
nputType.java
ayout.java
ormat/DateUtils.java
ethod/ArrowKeyMovementMethod.java
ethod/MetaKeyKeyListener.java
tyle/BackgroundColorSpan.java
tyle/CharacterStyle.java
tyle/ClickableSpan.java
tyle/DynamicDrawableSpan.java
tyle/ForegroundColorSpan.java
tyle/ImageSpan.java
tyle/MaskFilterSpan.java
tyle/RasterizerSpan.java
tyle/StrikethroughSpan.java
tyle/UnderlineSpan.java
tyle/UpdateAppearance.java
tyle/UpdateLayout.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
oringLayout.java
nputFilter.java
nputType.java
oginFilter.java
election.java
panned.java
taticLayout.java
extUtils.java
ormat/DateFormat.java
ormat/DateUtils.java
ormat/Formatter.java
ormat/Time.java
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/CharacterPickerDialog.java
ethod/DateKeyListener.java
ethod/DateTimeKeyListener.java
ethod/DialerKeyListener.java
ethod/DigitsKeyListener.java
ethod/KeyListener.java
ethod/MetaKeyKeyListener.java
ethod/MultiTapKeyListener.java
ethod/QwertyKeyListener.java
ethod/ScrollingMovementMethod.java
ethod/TextKeyListener.java
ethod/TimeKeyListener.java
ethod/Touch.java
tyle/DynamicDrawableSpan.java
til/Linkify.java
til/Regex.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
lteredCharSequence.java
ndroidCharacter.java
nnotation.java
utoText.java
oringLayout.java
lipboardManager.java
ynamicLayout.java
ditable.java
etChars.java
raphicsOperations.java
tml.java
Clipboard.aidl
nputFilter.java
ayout.java
oginFilter.java
ackedIntVector.java
ackedObjectVector.java
election.java
panWatcher.java
pannable.java
pannableString.java
pannableStringBuilder.java
pannableStringInternal.java
panned.java
pannedString.java
taticLayout.java
tyled.java
extPaint.java
extUtils.java
extWatcher.java
ethod/ArrowKeyMovementMethod.java
ethod/BaseKeyListener.java
ethod/CharacterPickerDialog.java
ethod/DateKeyListener.java
ethod/DateTimeKeyListener.java
ethod/DialerKeyListener.java
ethod/DigitsKeyListener.java
ethod/HideReturnsTransformationMethod.java
ethod/KeyListener.java
ethod/LinkMovementMethod.java
ethod/MetaKeyKeyListener.java
ethod/MovementMethod.java
ethod/MultiTapKeyListener.java
ethod/NumberKeyListener.java
ethod/PasswordTransformationMethod.java
ethod/QwertyKeyListener.java
ethod/ReplacementTransformationMethod.java
ethod/ScrollingMovementMethod.java
ethod/SingleLineTransformationMethod.java
ethod/TextKeyListener.java
ethod/TimeKeyListener.java
ethod/Touch.java
ethod/TransformationMethod.java
ethod/package.html
ackage.html
tyle/AbsoluteSizeSpan.java
tyle/AlignmentSpan.java
tyle/BackgroundColorSpan.java
tyle/BulletSpan.java
tyle/CharacterStyle.java
tyle/ClickableSpan.java
tyle/DrawableMarginSpan.java
tyle/DynamicDrawableSpan.java
tyle/ForegroundColorSpan.java
tyle/IconMarginSpan.java
tyle/ImageSpan.java
tyle/LeadingMarginSpan.java
tyle/LineBackgroundSpan.java
tyle/LineHeightSpan.java
tyle/MaskFilterSpan.java
tyle/MetricAffectingSpan.java
tyle/ParagraphStyle.java
tyle/QuoteSpan.java
tyle/RasterizerSpan.java
tyle/RelativeSizeSpan.java
tyle/ReplacementSpan.java
tyle/ScaleXSpan.java
tyle/StrikethroughSpan.java
tyle/StyleSpan.java
tyle/SubscriptSpan.java
tyle/SuperscriptSpan.java
tyle/TabStopSpan.java
tyle/TextAppearanceSpan.java
tyle/TypefaceSpan.java
tyle/URLSpan.java
tyle/UnderlineSpan.java
tyle/UpdateLayout.java
tyle/WrapTogetherSpan.java
tyle/package.html
til/Linkify.java
til/Regex.java
til/Rfc822Token.java
til/Rfc822Tokenizer.java
til/Rfc822Validator.java
til/package.html