summaryrefslogtreecommitdiffstats
path: root/core/java/android/text/Layout.java
diff options
context:
space:
mode:
authorRaph Levien <raph@google.com>2015-03-06 19:19:48 -0800
committerRaph Levien <raph@google.com>2015-03-26 22:52:32 -0700
commitc94f742f7e07a3b86c8f603836c19638472b3e83 (patch)
tree1041f49eab16bda24b5accea2d6b93f5ae44440b /core/java/android/text/Layout.java
parent02bc1fe6b098a87571d7ad94727f434fb614ddb8 (diff)
downloadframeworks_base-c94f742f7e07a3b86c8f603836c19638472b3e83.zip
frameworks_base-c94f742f7e07a3b86c8f603836c19638472b3e83.tar.gz
frameworks_base-c94f742f7e07a3b86c8f603836c19638472b3e83.tar.bz2
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
Diffstat (limited to 'core/java/android/text/Layout.java')
-rw-r--r--core/java/android/text/Layout.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index fcf1828..928bf16 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -1153,7 +1153,10 @@ public abstract class Layout {
return end - 1;
}
- if (ch != ' ' && ch != '\t') {
+ // Note: keep this in sync with Minikin LineBreaker::isLineEndSpace()
+ if (!(ch == ' ' || ch == '\t' || ch == 0x1680 ||
+ (0x2000 <= ch && ch <= 0x200A && ch != 0x2007) ||
+ ch == 0x205F || ch == 0x3000)) {
break;
}