Dismiss orange highlight after suggestion has been selected

Bug: 3051311
Change-Id: Ia32cd8748a0afade07a9896ad77400cf42aed0f5
This commit is contained in:
Tadashi G. Takaoka 2010-10-01 12:42:44 +09:00
parent 3297ee80f0
commit 4fa67efc79

View file

@ -40,14 +40,15 @@ import java.util.List;
public class CandidateView extends View {
private static final int OUT_OF_BOUNDS = -1;
private static final int OUT_OF_BOUNDS_WORD_INDEX = -1;
private static final int OUT_OF_BOUNDS_X_COORD = -1;
private LatinIME mService;
private final ArrayList<CharSequence> mSuggestions = new ArrayList<CharSequence>();
private boolean mShowingCompletions;
private CharSequence mSelectedString;
private int mSelectedIndex;
private int mTouchX = OUT_OF_BOUNDS;
private int mTouchX = OUT_OF_BOUNDS_X_COORD;
private final Drawable mSelectionHighlight;
private boolean mTypedWordValid;
@ -256,8 +257,8 @@ public class CandidateView extends View {
mWordX[i] = x;
if (touchX + scrollX >= x && touchX + scrollX < x + wordWidth && !scrolled &&
touchX != OUT_OF_BOUNDS) {
if (touchX != OUT_OF_BOUNDS_X_COORD && !scrolled
&& touchX + scrollX >= x && touchX + scrollX < x + wordWidth) {
if (canvas != null && !mShowingAddToDictionary) {
canvas.translate(x, 0);
mSelectionHighlight.setBounds(0, bgPadding.top, wordWidth, height);
@ -360,7 +361,7 @@ public class CandidateView extends View {
// Don't call mSuggestions.clear() because it's being used for logging
// in LatinIME.pickSuggestionManually().
mSuggestions.clear();
mTouchX = OUT_OF_BOUNDS;
mTouchX = OUT_OF_BOUNDS_X_COORD;
mSelectedString = null;
mSelectedIndex = -1;
mShowingAddToDictionary = false;
@ -429,7 +430,8 @@ public class CandidateView extends View {
}
private void hidePreview() {
mCurrentWordIndex = OUT_OF_BOUNDS;
mTouchX = OUT_OF_BOUNDS_X_COORD;
mCurrentWordIndex = OUT_OF_BOUNDS_WORD_INDEX;
mPreviewPopup.dismiss();
}
@ -438,7 +440,7 @@ public class CandidateView extends View {
mCurrentWordIndex = wordIndex;
// If index changed or changing text
if (oldWordIndex != mCurrentWordIndex || altText != null) {
if (wordIndex == OUT_OF_BOUNDS) {
if (wordIndex == OUT_OF_BOUNDS_WORD_INDEX) {
hidePreview();
} else {
CharSequence word = altText != null? altText : mSuggestions.get(wordIndex);