am 43012fec: Merge "Up/down arrow moves to beginning/end of buffer" into lmp-dev
* commit '43012fecc4871a2994bf9fb8d0a23710368e4327':
Up/down arrow moves to beginning/end of buffer
diff --git a/core/java/android/text/Selection.java b/core/java/android/text/Selection.java
index 679e2cc..3222dbf 100644
--- a/core/java/android/text/Selection.java
+++ b/core/java/android/text/Selection.java
@@ -116,7 +116,8 @@
/**
* Move the cursor to the buffer offset physically above the current
- * offset, or return false if the cursor is already on the top line.
+ * offset, to the beginning if it is on the top line but not at the
+ * start, or return false if the cursor is already on the top line.
*/
public static boolean moveUp(Spannable text, Layout layout) {
int start = getSelectionStart(text);
@@ -149,6 +150,9 @@
setSelection(text, move);
return true;
+ } else if (end != 0) {
+ setSelection(text, 0);
+ return true;
}
}
@@ -157,7 +161,9 @@
/**
* Move the cursor to the buffer offset physically below the current
- * offset, or return false if the cursor is already on the bottom line.
+ * offset, to the end of the buffer if it is on the bottom line but
+ * not at the end, or return false if the cursor is already at the
+ * end of the buffer.
*/
public static boolean moveDown(Spannable text, Layout layout) {
int start = getSelectionStart(text);
@@ -190,6 +196,9 @@
setSelection(text, move);
return true;
+ } else if (end != text.length()) {
+ setSelection(text, text.length());
+ return true;
}
}