diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/SuggestionsView.java | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/java/src/com/android/inputmethod/latin/SuggestionsView.java b/java/src/com/android/inputmethod/latin/SuggestionsView.java index 380e73bc0..13beb4479 100644 --- a/java/src/com/android/inputmethod/latin/SuggestionsView.java +++ b/java/src/com/android/inputmethod/latin/SuggestionsView.java @@ -163,6 +163,7 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, private final int mColorTypedWord; private final int mColorAutoCorrect; private final int mColorSuggested; + private final float mAlphaObsoleted; private final float mCenterSuggestionWeight; private final int mCenterSuggestionIndex; private final Drawable mMoreSuggestionsHint; @@ -205,15 +206,26 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.SuggestionsView, defStyle, R.style.SuggestionsViewStyle); mSuggestionStripOption = a.getInt(R.styleable.SuggestionsView_suggestionStripOption, 0); - mColorTypedWord = a.getColor(R.styleable.SuggestionsView_colorTypedWord, 0); - mColorAutoCorrect = a.getColor(R.styleable.SuggestionsView_colorAutoCorrect, 0); - mColorSuggested = a.getColor(R.styleable.SuggestionsView_colorSuggested, 0); + final float alphaTypedWord = getPercent(a, + R.styleable.SuggestionsView_alphaTypedWord, 100); + final float alphaAutoCorrect = getPercent(a, + R.styleable.SuggestionsView_alphaAutoCorrect, 100); + final float alphaSuggested = getPercent(a, + R.styleable.SuggestionsView_alphaSuggested, 100); + mAlphaObsoleted = getPercent(a, R.styleable.SuggestionsView_alphaSuggested, 100); + mColorTypedWord = applyAlpha( + a.getColor(R.styleable.SuggestionsView_colorTypedWord, 0), alphaTypedWord); + mColorAutoCorrect = applyAlpha( + a.getColor(R.styleable.SuggestionsView_colorAutoCorrect, 0), alphaAutoCorrect); + mColorSuggested = applyAlpha( + a.getColor(R.styleable.SuggestionsView_colorSuggested, 0), alphaSuggested); mSuggestionsCountInStrip = a.getInt( R.styleable.SuggestionsView_suggestionsCountInStrip, DEFAULT_SUGGESTIONS_COUNT_IN_STRIP); - mCenterSuggestionWeight = a.getInt( + mCenterSuggestionWeight = getPercent(a, R.styleable.SuggestionsView_centerSuggestionPercentile, - DEFAULT_CENTER_SUGGESTION_PERCENTILE) / 100.0f; + DEFAULT_CENTER_SUGGESTION_PERCENTILE); + mMoreSuggestionsHint = a.getDrawable(R.styleable.SuggestionsView_moreSuggestionsHint); mMaxMoreSuggestionsRow = a.getInt( R.styleable.SuggestionsView_maxMoreSuggestionsRow, DEFAULT_MAX_MORE_SUGGESTIONS_ROW); @@ -222,7 +234,6 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, a.recycle(); mCenterSuggestionIndex = mSuggestionsCountInStrip / 2; - mMoreSuggestionsHint = res.getDrawable(R.drawable.more_suggestions_hint); mMoreSuggestionsBottomGap = res.getDimensionPixelOffset( R.dimen.more_suggestions_bottom_gap); @@ -235,6 +246,11 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, mHintToSaveText = context.getText(R.string.hint_add_to_dictionary); } + // Read integer value in TypedArray as percent. + private static float getPercent(TypedArray a, int index, int defValue) { + return a.getInt(index, defValue) / 100.0f; + } + // Read fraction value in TypedArray as float. private static float getRatio(TypedArray a, int index) { return a.getFraction(index, 1000, 1000, 1) / 1000.0f; @@ -293,7 +309,7 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, final SuggestedWordInfo info = (pos < suggestions.size()) ? suggestions.getInfo(pos) : null; if (info != null && info.isObsoleteSuggestedWord()) { - return applyAlpha(color, 0.5f); + return applyAlpha(color, mAlphaObsoleted); } else { return color; } @@ -792,11 +808,10 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener, final int translatedY = moreKeysPanel.translateY(y); if (mCheckingIfModalOrSlidingMode) { - final int deltaX = Math.abs(x - mOriginX); - final int deltaY = Math.abs(y - mOriginY); - if (deltaX >= mMoreSuggestionsModalTolerance - || deltaY >= mMoreSuggestionsModalTolerance) { - // Decided to be in the sliding input mode + if (Math.abs(x - mOriginX) >= mMoreSuggestionsModalTolerance + || mOriginY - y >= mMoreSuggestionsModalTolerance) { + // Decided to be in the sliding input mode only when the touch point has been moved + // upward. mCheckingIfModalOrSlidingMode = false; tracker.onShowMoreKeysPanel( translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel); |