summaryrefslogtreecommitdiff
path: root/core/java/android/text/TextUtils.java
diff options
context:
space:
mode:
authorGilles Debunne <debunne@google.com>2012-03-01 16:20:35 -0800
committerGilles Debunne <debunne@google.com>2012-03-05 14:22:20 -0800
commit6c488de023a4797069673dc619c1a4096079ea9e (patch)
tree5559ad0aabdc5b567776e015e18f8b8d4b243487 /core/java/android/text/TextUtils.java
parent5a2b6077001d948f5d7667829c95b06228556609 (diff)
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
Diffstat (limited to 'core/java/android/text/TextUtils.java')
-rw-r--r--core/java/android/text/TextUtils.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index 43dfc8183ec6..afae5bb2d98c 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -1664,6 +1664,36 @@ public class TextUtils {
}
}
+ /**
+ * Pack 2 int values into a long, useful as a return value for a range
+ * @see #unpackRangeStartFromLong(long)
+ * @see #unpackRangeEndFromLong(long)
+ * @hide
+ */
+ public static long packRangeInLong(int start, int end) {
+ return (((long) start) << 32) | end;
+ }
+
+ /**
+ * Get the start value from a range packed in a long by {@link #packRangeInLong(int, int)}
+ * @see #unpackRangeEndFromLong(long)
+ * @see #packRangeInLong(int, int)
+ * @hide
+ */
+ public static int unpackRangeStartFromLong(long range) {
+ return (int) (range >>> 32);
+ }
+
+ /**
+ * Get the end value from a range packed in a long by {@link #packRangeInLong(int, int)}
+ * @see #unpackRangeStartFromLong(long)
+ * @see #packRangeInLong(int, int)
+ * @hide
+ */
+ public static int unpackRangeEndFromLong(long range) {
+ return (int) (range & 0x00000000FFFFFFFFL);
+ }
+
private static Object sLock = new Object();
private static char[] sTemp = null;