diff options
author | 2011-09-05 17:22:34 +0900 | |
---|---|---|
committer | 2011-09-05 18:59:37 +0900 | |
commit | 9676038b6e9fb66760588d7f9c9c642cc493dd71 (patch) | |
tree | cb18b5e73ba938caca65d00ca4a928993cb84b1a /java/src/com/android/inputmethod/latin/SuggestionsView.java | |
parent | 1d8ec1cb9fb2c395873566438fe63e46b9e535da (diff) | |
download | latinime-9676038b6e9fb66760588d7f9c9c642cc493dd71.tar.gz latinime-9676038b6e9fb66760588d7f9c9c642cc493dd71.tar.xz latinime-9676038b6e9fb66760588d7f9c9c642cc493dd71.zip |
Introduce maxMoreSuggestionsRow and minMoreSuggetionsWidth attributes to SuggestionsView
Bug: 5257594
Change-Id: Id52c841b72e38eb9034a1a7f26bcf3d4d81ad216
Diffstat (limited to 'java/src/com/android/inputmethod/latin/SuggestionsView.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/SuggestionsView.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/latin/SuggestionsView.java b/java/src/com/android/inputmethod/latin/SuggestionsView.java index f11ac1dcf..e99c6d474 100644 --- a/java/src/com/android/inputmethod/latin/SuggestionsView.java +++ b/java/src/com/android/inputmethod/latin/SuggestionsView.java @@ -35,7 +35,6 @@ import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.text.style.UnderlineSpan; import android.util.AttributeSet; -import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -146,12 +145,15 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, private static class SuggestionsViewParams { private static final int DEFAULT_SUGGESTIONS_COUNT_IN_STRIP = 3; private static final int DEFAULT_CENTER_SUGGESTION_PERCENTILE = 40; + private static final int DEFAULT_MAX_MORE_SUGGESTIONS_ROW = 2; private static final int PUNCTUATIONS_IN_STRIP = 6; public final int mPadding; public final int mDividerWidth; public final int mSuggestionsStripHeight; public final int mSuggestionsCountInStrip; + public final int mMaxMoreSuggestionsRow; + public final float mMinMoreSuggestionsWidth; private final List<TextView> mWords; private final List<View> mDividers; @@ -211,6 +213,11 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, mCenterSuggestionWeight = a.getInt( R.styleable.SuggestionsView_centerSuggestionPercentile, DEFAULT_CENTER_SUGGESTION_PERCENTILE) / 100.0f; + mMaxMoreSuggestionsRow = a.getInt( + R.styleable.SuggestionsView_maxMoreSuggestionsRow, + DEFAULT_MAX_MORE_SUGGESTIONS_ROW); + mMinMoreSuggestionsWidth = getRatio(a, + R.styleable.SuggestionsView_minMoreSuggestionsWidth); a.recycle(); mCenterSuggestionIndex = mSuggestionsCountInStrip / 2; @@ -225,6 +232,11 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, mHintToSaveText = context.getText(R.string.hint_add_to_dictionary); } + // Read fraction value in TypedArray as float. + private static float getRatio(TypedArray a, int index) { + return a.getFraction(index, 1000, 1000, 1) / 1000.0f; + } + private CharSequence getStyledSuggestionWord(SuggestedWords suggestions, int pos) { final CharSequence word = suggestions.getWord(pos); final boolean isAutoCorrect = pos == 1 && willAutoCorrect(suggestions); @@ -718,11 +730,10 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, final View container = mMoreSuggestionsContainer; final int maxWidth = stripWidth - container.getPaddingLeft() - container.getPaddingRight(); - final DisplayMetrics dm = getContext().getResources().getDisplayMetrics(); - // TODO: Revise how we determine the height - final int maxHeight = dm.heightPixels - mKeyboardView.getHeight() - getHeight() * 3; final MoreSuggestions.Builder builder = mMoreSuggestionsBuilder; - builder.layout(mSuggestions, params.mSuggestionsCountInStrip, maxWidth, maxHeight); + builder.layout(mSuggestions, params.mSuggestionsCountInStrip, maxWidth, + (int)(maxWidth * params.mMinMoreSuggestionsWidth), + params.mMaxMoreSuggestionsRow); mMoreSuggestionsView.setKeyboard(builder.build()); container.measure( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); |