Squash SuggestionsStripParams into SuggestionsViewParams

Bug: 5246982
Change-Id: Idc2563cb0175aabc4282f9fd45eefaa129ed4961
This commit is contained in:
Tadashi G. Takaoka 2011-09-02 16:53:38 +09:00
parent 5bb7a64fe2
commit d3e50a2acf

View file

@ -89,7 +89,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
private SuggestedWords mSuggestions = SuggestedWords.EMPTY;
private boolean mShowingAutoCorrectionInverted;
private final SuggestionsStripParams mStripParams;
private final SuggestionsViewParams mParams;
private static final float MIN_TEXT_XSCALE = 0.70f;
private final UiHandler mHandler = new UiHandler(this);
@ -144,41 +144,22 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
}
private static class SuggestionsViewParams {
public final int mPadding;
public final int mDividerWidth;
public final int mSuggestionsStripHeight;
protected final List<TextView> mWords;
protected final List<View> mDividers;
protected final List<TextView> mInfos;
protected SuggestionsViewParams(List<TextView> words, List<View> dividers,
List<TextView> infos) {
mWords = words;
mDividers = dividers;
mInfos = infos;
final TextView word = words.get(0);
final View divider = dividers.get(0);
mPadding = word.getCompoundPaddingLeft() + word.getCompoundPaddingRight();
divider.measure(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
mDividerWidth = divider.getMeasuredWidth();
final Resources res = word.getResources();
mSuggestionsStripHeight = res.getDimensionPixelSize(R.dimen.suggestions_strip_height);
}
}
private static class SuggestionsStripParams extends SuggestionsViewParams {
private static final int DEFAULT_SUGGESTIONS_COUNT_IN_STRIP = 3;
private static final int DEFAULT_CENTER_SUGGESTION_PERCENTILE = 40;
private static final int PUNCTUATIONS_IN_STRIP = 6;
public final int mPadding;
public final int mDividerWidth;
public final int mSuggestionsStripHeight;
public final int mSuggestionsCountInStrip;
private final List<TextView> mWords;
private final List<View> mDividers;
private final List<TextView> mInfos;
private final int mColorTypedWord;
private final int mColorAutoCorrect;
private final int mColorSuggested;
public final int mSuggestionsCountInStrip;
private final float mCenterSuggestionWeight;
private final int mCenterSuggestionIndex;
private final Drawable mMoreSuggestionsHint;
@ -202,9 +183,22 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
private final TextView mHintToSaveView;
private final CharSequence mHintToSaveText;
public SuggestionsStripParams(Context context, AttributeSet attrs, int defStyle,
public SuggestionsViewParams(Context context, AttributeSet attrs, int defStyle,
List<TextView> words, List<View> dividers, List<TextView> infos) {
super(words, dividers, infos);
mWords = words;
mDividers = dividers;
mInfos = infos;
final TextView word = words.get(0);
final View divider = dividers.get(0);
mPadding = word.getCompoundPaddingLeft() + word.getCompoundPaddingRight();
divider.measure(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
mDividerWidth = divider.getMeasuredWidth();
final Resources res = word.getResources();
mSuggestionsStripHeight = res.getDimensionPixelSize(R.dimen.suggestions_strip_height);
final TypedArray a = context.obtainStyledAttributes(
attrs, R.styleable.SuggestionsView, defStyle, R.style.SuggestionsViewStyle);
mSuggestionStripOption = a.getInt(R.styleable.SuggestionsView_suggestionStripOption, 0);
@ -220,7 +214,6 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
a.recycle();
mCenterSuggestionIndex = mSuggestionsCountInStrip / 2;
final Resources res = context.getResources();
mMoreSuggestionsHint = res.getDrawable(R.drawable.more_suggestions_hint);
mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorTypedWord ^ 0x00ffffff);
@ -496,9 +489,8 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
mInfos.add((TextView)inflater.inflate(R.layout.suggestion_info, null));
}
mStripParams = new SuggestionsStripParams(context, attrs, defStyle, mWords, mDividers,
mInfos);
mStripParams.mWordToSaveView.setOnClickListener(this);
mParams = new SuggestionsViewParams(context, attrs, defStyle, mWords, mDividers, mInfos);
mParams.mWordToSaveView.setOnClickListener(this);
mMoreSuggestionsContainer = inflater.inflate(R.layout.more_suggestions, null);
mMoreSuggestionsView = (MoreSuggestionsView)mMoreSuggestionsContainer
@ -535,7 +527,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
if (mSuggestions.size() == 0)
return;
mStripParams.layout(mSuggestions, mSuggestionsStrip, mSuggestionsPlacer, getWidth());
mParams.layout(mSuggestions, mSuggestionsStrip, mSuggestionsPlacer, getWidth());
}
private static CharSequence getDebugInfo(SuggestedWords suggestions, int pos) {
@ -624,7 +616,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
}
public void onAutoCorrectionInverted(CharSequence autoCorrectedWord) {
final CharSequence inverted = mStripParams.getInvertedText(autoCorrectedWord);
final CharSequence inverted = mParams.getInvertedText(autoCorrectedWord);
if (inverted == null)
return;
final TextView tv = mWords.get(1);
@ -634,12 +626,12 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
public boolean isShowingAddToDictionaryHint() {
return mSuggestionsStrip.getChildCount() > 0
&& mSuggestionsStrip.getChildAt(0) == mStripParams.mWordToSaveView;
&& mSuggestionsStrip.getChildAt(0) == mParams.mWordToSaveView;
}
public void showAddToDictionaryHint(CharSequence word) {
clear();
mStripParams.layoutAddToDictionaryHint(word, mSuggestionsStrip, getWidth());
mParams.layoutAddToDictionaryHint(word, mSuggestionsStrip, getWidth());
}
public boolean dismissAddToDictionaryHint() {
@ -671,7 +663,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
return;
final TextView previewText = mPreviewText;
previewText.setTextColor(mStripParams.mColorTypedWord);
previewText.setTextColor(mParams.mColorTypedWord);
previewText.setText(word);
previewText.measure(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
@ -692,7 +684,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
private void addToDictionary(CharSequence word) {
if (mListener.addWordToDictionary(word.toString())) {
final CharSequence message = getContext().getString(R.string.added_word, word);
showPreview(mStripParams.mWordToSaveView, message);
showPreview(mParams.mWordToSaveView, message);
}
}
@ -732,7 +724,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
@Override
public boolean onLongClick(View view) {
final SuggestionsStripParams params = mStripParams;
final SuggestionsViewParams params = mParams;
if (params.mMoreSuggestionsAvailable) {
final int stripWidth = getWidth();
final View container = mMoreSuggestionsContainer;
@ -799,7 +791,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
@Override
public void onClick(View view) {
if (view == mStripParams.mWordToSaveView) {
if (view == mParams.mWordToSaveView) {
addToDictionary((CharSequence)view.getTag());
clear();
return;