summaryrefslogtreecommitdiffstats
path: root/core/java/android/text/method
diff options
context:
space:
mode:
authorDoug Felt <dougfelt@google.com>2010-05-25 11:51:40 -0700
committerDoug Felt <dougfelt@google.com>2010-06-03 13:33:00 -0700
commitc982f60e982c1d2df9f115ed9a5c3ef3643d0892 (patch)
treef8ed81cbf9e9861681102fc82b60d6e2c6ca37f6 /core/java/android/text/method
parent3e7432f823b9f0457e935614787cff4eb71a8f2b (diff)
downloadframeworks_base-c982f60e982c1d2df9f115ed9a5c3ef3643d0892.zip
frameworks_base-c982f60e982c1d2df9f115ed9a5c3ef3643d0892.tar.gz
frameworks_base-c982f60e982c1d2df9f115ed9a5c3ef3643d0892.tar.bz2
Fix alignment issues with RTL paragraphs.
Also remove unused debugging code that depends on junit. Remove trailing whitespace in changed code. Change-Id: Ie02d1b8220c599a672ee6e91af0fba634e0f620c
Diffstat (limited to 'core/java/android/text/method')
-rw-r--r--core/java/android/text/method/Touch.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/text/method/Touch.java b/core/java/android/text/method/Touch.java
index 42ad10e..c30db20 100644
--- a/core/java/android/text/method/Touch.java
+++ b/core/java/android/text/method/Touch.java
@@ -18,13 +18,12 @@ package android.text.method;
import android.text.Layout;
import android.text.NoCopySpan;
-import android.text.Layout.Alignment;
import android.text.Spannable;
-import android.util.Log;
+import android.text.Layout.Alignment;
+import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.widget.TextView;
-import android.view.KeyEvent;
public class Touch {
private Touch() { }
@@ -45,6 +44,7 @@ public class Touch {
int left = Integer.MAX_VALUE;
int right = 0;
Alignment a = null;
+ boolean ltr = true;
for (int i = top; i <= bottom; i++) {
left = (int) Math.min(left, layout.getLineLeft(i));
@@ -52,6 +52,7 @@ public class Touch {
if (a == null) {
a = layout.getParagraphAlignment(i);
+ ltr = layout.getParagraphDirection(i) > 0;
}
}
@@ -59,10 +60,12 @@ public class Touch {
int width = widget.getWidth();
int diff = 0;
+ // align_opposite does NOT mean align_right, we need the paragraph
+ // direction to resolve it to left or right
if (right - left < width - padding) {
if (a == Alignment.ALIGN_CENTER) {
diff = (width - padding - (right - left)) / 2;
- } else if (a == Alignment.ALIGN_OPPOSITE) {
+ } else if (ltr == (a == Alignment.ALIGN_OPPOSITE)) {
diff = width - padding - (right - left);
}
}