Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4fa67efc authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Dismiss orange highlight after suggestion has been selected

Bug: 3051311
Change-Id: Ia32cd8748a0afade07a9896ad77400cf42aed0f5
parent 3297ee80
Loading
Loading
Loading
Loading
+9 −7
Original line number Original line Diff line number Diff line
@@ -40,14 +40,15 @@ import java.util.List;


public class CandidateView extends View {
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 LatinIME mService;
    private final ArrayList<CharSequence> mSuggestions = new ArrayList<CharSequence>();
    private final ArrayList<CharSequence> mSuggestions = new ArrayList<CharSequence>();
    private boolean mShowingCompletions;
    private boolean mShowingCompletions;
    private CharSequence mSelectedString;
    private CharSequence mSelectedString;
    private int mSelectedIndex;
    private int mSelectedIndex;
    private int mTouchX = OUT_OF_BOUNDS;
    private int mTouchX = OUT_OF_BOUNDS_X_COORD;
    private final Drawable mSelectionHighlight;
    private final Drawable mSelectionHighlight;
    private boolean mTypedWordValid;
    private boolean mTypedWordValid;
    
    
@@ -256,8 +257,8 @@ public class CandidateView extends View {


            mWordX[i] = x;
            mWordX[i] = x;


            if (touchX + scrollX >= x && touchX + scrollX < x + wordWidth && !scrolled &&
            if (touchX != OUT_OF_BOUNDS_X_COORD && !scrolled
                    touchX != OUT_OF_BOUNDS) {
                    && touchX + scrollX >= x && touchX + scrollX < x + wordWidth) {
                if (canvas != null && !mShowingAddToDictionary) {
                if (canvas != null && !mShowingAddToDictionary) {
                    canvas.translate(x, 0);
                    canvas.translate(x, 0);
                    mSelectionHighlight.setBounds(0, bgPadding.top, wordWidth, height);
                    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
        // Don't call mSuggestions.clear() because it's being used for logging
        // in LatinIME.pickSuggestionManually().
        // in LatinIME.pickSuggestionManually().
        mSuggestions.clear();
        mSuggestions.clear();
        mTouchX = OUT_OF_BOUNDS;
        mTouchX = OUT_OF_BOUNDS_X_COORD;
        mSelectedString = null;
        mSelectedString = null;
        mSelectedIndex = -1;
        mSelectedIndex = -1;
        mShowingAddToDictionary = false;
        mShowingAddToDictionary = false;
@@ -429,7 +430,8 @@ public class CandidateView extends View {
    }
    }


    private void hidePreview() {
    private void hidePreview() {
        mCurrentWordIndex = OUT_OF_BOUNDS;
        mTouchX = OUT_OF_BOUNDS_X_COORD;
        mCurrentWordIndex = OUT_OF_BOUNDS_WORD_INDEX;
        mPreviewPopup.dismiss();
        mPreviewPopup.dismiss();
    }
    }
    
    
@@ -438,7 +440,7 @@ public class CandidateView extends View {
        mCurrentWordIndex = wordIndex;
        mCurrentWordIndex = wordIndex;
        // If index changed or changing text
        // If index changed or changing text
        if (oldWordIndex != mCurrentWordIndex || altText != null) {
        if (oldWordIndex != mCurrentWordIndex || altText != null) {
            if (wordIndex == OUT_OF_BOUNDS) {
            if (wordIndex == OUT_OF_BOUNDS_WORD_INDEX) {
                hidePreview();
                hidePreview();
            } else {
            } else {
                CharSequence word = altText != null? altText : mSuggestions.get(wordIndex);
                CharSequence word = altText != null? altText : mSuggestions.get(wordIndex);