From a0984662a17df0d5c293d62bf653a40491c2bd58 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Tue, 25 Feb 2014 14:52:18 +0900 Subject: [PATCH] [QRP3] Refactoring Rename some variables for clarity and use constants instead of immediates. Change-Id: Ie07fbfcc3738ac4e67aefddc339fc54259172c39 --- java/res/values/attrs.xml | 2 +- java/res/values/themes-gb.xml | 2 +- java/res/values/themes-ics.xml | 2 +- java/res/values/themes-klp.xml | 2 +- .../SuggestionStripLayoutHelper.java | 28 ++++++++++--------- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 055060642..475e92f2e 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -175,7 +175,7 @@ - + diff --git a/java/res/values/themes-gb.xml b/java/res/values/themes-gb.xml index a460d4f7f..c189da383 100644 --- a/java/res/values/themes-gb.xml +++ b/java/res/values/themes-gb.xml @@ -133,7 +133,7 @@ parent="SuggestionStripView" > @drawable/keyboard_suggest_strip_gb - autoCorrectBold|validTypedWordBold + autoCorrectBold|validTypedWordBold @color/highlight_color_gb @color/typed_word_color_gb @color/highlight_color_gb diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml index caea92186..720eda9ce 100644 --- a/java/res/values/themes-ics.xml +++ b/java/res/values/themes-ics.xml @@ -112,7 +112,7 @@ parent="SuggestionStripView" > @drawable/keyboard_suggest_strip_holo - autoCorrectBold|validTypedWordBold + autoCorrectBold|validTypedWordBold @color/typed_word_color_ics @color/typed_word_color_ics @color/highlight_color_ics diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml index 0599fb65e..830527171 100644 --- a/java/res/values/themes-klp.xml +++ b/java/res/values/themes-klp.xml @@ -112,7 +112,7 @@ parent="SuggestionStripView" > @drawable/keyboard_suggest_strip_holo - autoCorrectBold|validTypedWordBold + autoCorrectBold|validTypedWordBold @color/typed_word_color_klp @color/typed_word_color_klp @color/highlight_color_klp diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java index 7a7464e1d..ecefecf19 100644 --- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java +++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java @@ -95,9 +95,9 @@ final class SuggestionStripLayoutHelper { private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD); private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan(); - private final int mSuggestionStripOption; + private final int mSuggestionStripOptions; // These constants are the flag values of - // {@link R.styleable#SuggestionStripView_suggestionStripOption} attribute. + // {@link R.styleable#SuggestionStripView_suggestionStripOptions} attribute. private static final int AUTO_CORRECT_BOLD = 0x01; private static final int AUTO_CORRECT_UNDERLINE = 0x02; private static final int VALID_TYPED_WORD_BOLD = 0x04; @@ -122,8 +122,8 @@ final class SuggestionStripLayoutHelper { final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SuggestionStripView, defStyle, R.style.SuggestionStripView); - mSuggestionStripOption = a.getInt( - R.styleable.SuggestionStripView_suggestionStripOption, 0); + mSuggestionStripOptions = a.getInt( + R.styleable.SuggestionStripView_suggestionStripOptions, 0); mAlphaObsoleted = ResourceUtils.getFraction(a, R.styleable.SuggestionStripView_alphaObsoleted, 1.0f); mColorValidTypedWord = a.getColor(R.styleable.SuggestionStripView_colorValidTypedWord, 0); @@ -200,22 +200,24 @@ final class SuggestionStripLayoutHelper { return null; } final String word = suggestedWords.getLabel(indexInSuggestedWords); - final boolean isAutoCorrect = indexInSuggestedWords == 1 - && suggestedWords.mWillAutoCorrect; - final boolean isTypedWordValid = indexInSuggestedWords == 0 - && suggestedWords.mTypedWordValid; - if (!isAutoCorrect && !isTypedWordValid) { + // TODO: don't use the index to decide whether this is the auto-correction/typed word, as + // this is brittle + final boolean isAutoCorrection = suggestedWords.mWillAutoCorrect + && indexInSuggestedWords == SuggestedWords.INDEX_OF_AUTO_CORRECTION; + final boolean isTypedWordValid = suggestedWords.mTypedWordValid + && indexInSuggestedWords == SuggestedWords.INDEX_OF_TYPED_WORD; + if (!isAutoCorrection && !isTypedWordValid) { return word; } final int len = word.length(); final Spannable spannedWord = new SpannableString(word); - final int option = mSuggestionStripOption; - if ((isAutoCorrect && (option & AUTO_CORRECT_BOLD) != 0) - || (isTypedWordValid && (option & VALID_TYPED_WORD_BOLD) != 0)) { + final int options = mSuggestionStripOptions; + if ((isAutoCorrection && (options & AUTO_CORRECT_BOLD) != 0) + || (isTypedWordValid && (options & VALID_TYPED_WORD_BOLD) != 0)) { spannedWord.setSpan(BOLD_SPAN, 0, len, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } - if (isAutoCorrect && (option & AUTO_CORRECT_UNDERLINE) != 0) { + if (isAutoCorrection && (options & AUTO_CORRECT_UNDERLINE) != 0) { spannedWord.setSpan(UNDERLINE_SPAN, 0, len, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } return spannedWord;