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

Commit 91b9a680 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Introduce CandidateView.Listener"

parents e6d37629 c9781069
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -49,6 +49,11 @@ import java.util.List;

public class CandidateView extends LinearLayout implements OnClickListener, OnLongClickListener {

    public interface Listener {
        public boolean addWordToDictionary(String word);
        public void pickSuggestionManually(int index, CharSequence word);
    }

    private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD);
    private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
    private static final int MAX_SUGGESTIONS = 16;
@@ -67,7 +72,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
    private final PopupWindow mPreviewPopup;
    private final TextView mPreviewText;

    private LatinIME mService;
    private Listener mListener;
    private SuggestedWords mSuggestions = SuggestedWords.EMPTY;
    private boolean mShowingAutoCorrectionInverted;
    private boolean mShowingAddToDictionary;
@@ -160,11 +165,11 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
    }

    /**
     * A connection back to the service to communicate with the text field
     * A connection back to the input method.
     * @param listener
     */
    public void setService(LatinIME listener) {
        mService = listener;
    public void setListener(Listener listener) {
        mListener = listener;
    }

    public void setSuggestions(SuggestedWords suggestions) {
@@ -337,7 +342,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
    }

    private void addToDictionary(CharSequence word) {
        if (mService.addWordToDictionary(word.toString())) {
        if (mListener.addWordToDictionary(word.toString())) {
            showPreview(0, getContext().getString(R.string.added_word, word));
        }
    }
@@ -359,7 +364,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
        if (mShowingAddToDictionary && index == 0) {
            addToDictionary(word);
        } else {
            mService.pickSuggestionManually(index, word);
            mListener.pickSuggestionManually(index, word);
        }
    }

+5 −2
Original line number Diff line number Diff line
@@ -77,7 +77,8 @@ import java.util.Locale;
/**
 * Input method implementation for Qwerty'ish keyboard.
 */
public class LatinIME extends InputMethodServiceCompatWrapper implements KeyboardActionListener {
public class LatinIME extends InputMethodServiceCompatWrapper implements KeyboardActionListener,
        CandidateView.Listener {
    private static final String TAG = LatinIME.class.getSimpleName();
    private static final boolean PERF_DEBUG = false;
    private static final boolean TRACE = false;
@@ -491,7 +492,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        super.setInputView(view);
        mCandidateViewContainer = view.findViewById(R.id.candidates_container);
        mCandidateView = (CandidateView) view.findViewById(R.id.candidates);
        mCandidateView.setService(this);
        mCandidateView.setListener(this);
        mCandidateStripHeight = (int)mResources.getDimension(R.dimen.candidate_strip_height);
    }

@@ -1000,6 +1001,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        }
    }

    @Override
    public boolean addWordToDictionary(String word) {
        mUserDictionary.addWord(word, 128);
        // Suggestion strip should be updated after the operation of adding word to the
@@ -1523,6 +1525,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        return false;
    }

    @Override
    public void pickSuggestionManually(int index, CharSequence suggestion) {
        SuggestedWords suggestions = mCandidateView.getSuggestions();
        mVoiceProxy.flushAndLogAllTextModificationCounters(index, suggestion,