History log of /frameworks/base/core/java/android/text/SpannableStringInternal.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
/frameworks/base/core/java/android/text/SpannableStringInternal.java
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
/frameworks/base/core/java/android/text/SpannableStringInternal.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
/frameworks/base/core/java/android/text/SpannableStringInternal.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
/frameworks/base/core/java/android/text/SpannableStringInternal.java
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
/frameworks/base/core/java/android/text/SpannableStringInternal.java
fc121c2430cd27c0d9b655105a9ab1c261c10bdc 10-Jul-2015 Chris Craik <ccraik@google.com> Reduce cost of span type checking

bug:22378829

Change-Id: I1da5154b2fb4f5032eaed44586d5470d28ceb45b
/frameworks/base/core/java/android/text/SpannableStringInternal.java
776abc24cdd18610232a50b997cce3cffa74609b 07-Mar-2014 Adam Lesinski <adamlesinski@google.com> Uses VMRuntime.newUnpaddedArray for ideal array sizes

Bug:13028925

Change-Id: I0a9301248b10a339afbdc5e4ffe3310ac4fa1fb7
/frameworks/base/core/java/android/text/SpannableStringInternal.java
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
/frameworks/base/core/java/android/text/SpannableStringInternal.java
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
/frameworks/base/core/java/android/text/SpannableStringInternal.java
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
/frameworks/base/core/java/android/text/SpannableStringInternal.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/text/SpannableStringInternal.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/text/SpannableStringInternal.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/text/SpannableStringInternal.java