resolved conflicts for merge of 42dd7ec9 to master

Change-Id: Id388745d7ec22c48b34b744d5a4c07097cf2650b
This commit is contained in:
Gilles Debunne
2010-10-11 09:57:05 -07:00

View File

@@ -6612,7 +6612,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
if (!mFrozenWithFocus || (selStart < 0 || selEnd < 0)) {
// If a tap was used to give focus to that view, move cursor at tap position.
// Has to be done before onTakeFocus, which can be overloaded.
moveCursorToLastTapPosition();
final int lastTapPosition = getLastTapPosition();
if (lastTapPosition >= 0) {
Selection.setSelection((Spannable) mText, lastTapPosition);
}
if (mMovement != null) {
mMovement.onTakeFocus(this, (Spannable) mText, direction);
@@ -6674,6 +6677,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
} else {
terminateSelectionActionMode();
}
if (mSelectionModifierCursorController != null) {
((SelectionModifierCursorController) mSelectionModifierCursorController).resetTouchOffsets();
}
}
startStopMarquee(focused);
@@ -6685,20 +6692,22 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
private void moveCursorToLastTapPosition() {
private int getLastTapPosition() {
if (mSelectionModifierCursorController != null) {
int mTapToFocusPosition = ((SelectionModifierCursorController)
int lastTapPosition = ((SelectionModifierCursorController)
mSelectionModifierCursorController).getMinTouchOffset();
if (mTapToFocusPosition >= 0) {
if (lastTapPosition >= 0) {
// Safety check, should not be possible.
if (mTapToFocusPosition > mText.length()) {
Log.e(LOG_TAG, "Invalid tap focus position (" + mTapToFocusPosition + " vs "
if (lastTapPosition > mText.length()) {
Log.e(LOG_TAG, "Invalid tap focus position (" + lastTapPosition + " vs "
+ mText.length() + ")");
mTapToFocusPosition = mText.length();
lastTapPosition = mText.length();
}
Selection.setSelection((Spannable) mText, mTapToFocusPosition);
return lastTapPosition;
}
}
return -1;
}
@Override
@@ -8167,7 +8176,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
SelectionModifierCursorController() {
mStartHandle = new HandleView(this, HandleView.LEFT);
mEndHandle = new HandleView(this, HandleView.RIGHT);
mMinTouchOffset = mMaxTouchOffset = -1;
resetTouchOffsets();
}
public void show() {
@@ -8299,6 +8308,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
return mMaxTouchOffset;
}
public void resetTouchOffsets() {
mMinTouchOffset = mMaxTouchOffset = -1;
}
/**
* @return true iff this controller is currently used to move the selection start.
*/