diff options
author | 2011-06-27 16:57:18 +0900 | |
---|---|---|
committer | 2011-06-27 18:04:22 +0900 | |
commit | 717a8f50aec421f74e4d43432059c2fb41cb32c7 (patch) | |
tree | 20a7efaf5bc67f7ad3b69336b586a3f10eb26005 /java/src | |
parent | 7fb04fe007a6d0489168e9c87771db554c873464 (diff) | |
download | latinime-717a8f50aec421f74e4d43432059c2fb41cb32c7.tar.gz latinime-717a8f50aec421f74e4d43432059c2fb41cb32c7.tar.xz latinime-717a8f50aec421f74e4d43432059c2fb41cb32c7.zip |
Use dedicated layout for "touch to save word" feature
Change-Id: Ie8c948476740a645d8b2d9a9d821236941d27adf
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/CandidateView.java | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java index 313555daa..2186d608f 100644 --- a/java/src/com/android/inputmethod/latin/CandidateView.java +++ b/java/src/com/android/inputmethod/latin/CandidateView.java @@ -66,6 +66,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo private static final boolean DBG = LatinImeLogger.sDBG; + private final View mCandidatesStrip; private static final int NUM_CANDIDATES_IN_STRIP = 3; private final ImageView mExpandCandidatesPane; private final ImageView mCloseCandidatesPane; @@ -88,6 +89,9 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo private final PopupWindow mPreviewPopup; private final TextView mPreviewText; + private final View mTouchToSave; + private final TextView mWordToSave; + private Listener mListener; private SuggestedWords mSuggestions = SuggestedWords.EMPTY; private boolean mShowingAutoCorrectionInverted; @@ -178,6 +182,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo mPreviewPopup.setContentView(mPreviewText); mPreviewPopup.setBackgroundDrawable(null); + mCandidatesStrip = findViewById(R.id.candidates_strip); mCandidateStripHeight = res.getDimensionPixelOffset(R.dimen.candidate_strip_height); for (int i = 0; i < MAX_SUGGESTIONS; i++) { final TextView word, info; @@ -213,6 +218,10 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo } } + mTouchToSave = findViewById(R.id.touch_to_save); + mWordToSave = (TextView)findViewById(R.id.word_to_save); + mWordToSave.setOnClickListener(this); + final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.CandidateView, defStyle, R.style.CandidateViewStyle); mAutoCorrectHighlight = a.getInt(R.styleable.CandidateView_autoCorrectHighlight, 0); @@ -448,14 +457,10 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo } public void showAddToDictionaryHint(CharSequence word) { - SuggestedWords.Builder builder = new SuggestedWords.Builder() - .addWord(word) - .addWord(getContext().getText(R.string.hint_add_to_dictionary)); - setSuggestions(builder.build()); + mWordToSave.setText(word); mShowingAddToDictionary = true; - // Disable R.string.hint_add_to_dictionary button - TextView tv = mWords.get(1); - tv.setClickable(false); + mCandidatesStrip.setVisibility(View.GONE); + mTouchToSave.setVisibility(View.VISIBLE); } public boolean dismissAddToDictionaryHint() { @@ -475,6 +480,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo mWords.get(i).setText(null); mInfos.get(i).setVisibility(View.GONE); } + mTouchToSave.setVisibility(View.GONE); + mCandidatesStrip.setVisibility(View.VISIBLE); mCandidatesPane.removeAllViews(); } @@ -530,6 +537,12 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo @Override public void onClick(View view) { + if (view == mWordToSave) { + addToDictionary(((TextView)view).getText()); + clear(); + return; + } + final Object tag = view.getTag(); if (!(tag instanceof Integer)) return; @@ -538,11 +551,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo return; final CharSequence word = mSuggestions.getWord(index); - if (mShowingAddToDictionary && index == 0) { - addToDictionary(word); - } else { - mListener.pickSuggestionManually(index, word); - } + mListener.pickSuggestionManually(index, word); // Because some punctuation letters are not treated as word separator depending on locale, // {@link #setSuggestions} might not be called and candidates pane left opened. closeCandidatesPane(); |