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

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

Introduce CandidateView.Listener

Bug: 4175031
Change-Id: Ie84d1c86ff099350b786c71e7081d9ea9ee0d81f
parent 3d3e6f5f
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;
@@ -66,7 +71,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;
@@ -159,11 +164,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) {
@@ -327,7 +332,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));
        }
    }
@@ -349,7 +354,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
@@ -1524,6 +1526,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,