Fixed scrolling issue when moving cursor in long TextViews.

Previous CL https://android-git.corp.google.com/g/55138 was submitted
before the suggested change was uploaded.

setSelection() was called twice by onTouchEvent, once to the previous
position, and then to the new position (unless the IME got displayed,
so that in that case the cursor is not moved).

The second call was actually triggering a call for a scroll of 0 since
the view is already displaying the cursor. This scroll is filtered out by a
shortcut in ScrollView. The first setSelection's scroll does not have
the same issue (since the previous cursor's position is out of screen
and requires a scroll) and it is then applied, effectively moving the cursor
to a new position but scrolling to the previous position.

The fix is to call setSelection only once, after the IME has been asked
to display. The cursor is moved to the old/new position depending on the
resultCode in onReceiveResult in CommitSelectionReceiver.

Bug: http://b/issue?id=2778954
Change-Id: I157d7ae451574e8a6fffb894eb1d6880acfe01d1
1 file changed