[QRP5] Fix boldness for predictions, and small refactoring

This is more correct. When predictions, the typed word should
always be null unless explicitly passed. The text color should be
that of a valid typed word only if it's actually the typed word.

Bug: 13170509
Change-Id: I769ae100e112c37c6f02064fe9ef2f81372ca9e5
main
Jean Chalard 2014-02-25 15:35:37 +09:00
parent 783f193239
commit 0c34ee20a8
3 changed files with 6 additions and 5 deletions

View File

@ -227,7 +227,7 @@ public final class Suggest {
// TODO: this first argument is lying. If this is a whitelisted word which is an // TODO: this first argument is lying. If this is a whitelisted word which is an
// actual word, it says typedWordValid = false, which looks wrong. We should either // actual word, it says typedWordValid = false, which looks wrong. We should either
// rename the attribute or change the value. // rename the attribute or change the value.
!allowsToBeAutoCorrected /* typedWordValid */, !isPrediction && !allowsToBeAutoCorrected /* typedWordValid */,
hasAutoCorrection, /* willAutoCorrect */ hasAutoCorrection, /* willAutoCorrect */
false /* isObsoleteSuggestions */, isPrediction, sequenceNumber)); false /* isObsoleteSuggestions */, isPrediction, sequenceNumber));
} }

View File

@ -69,7 +69,7 @@ public class SuggestedWords {
final boolean isPrediction, final boolean isPrediction,
final int sequenceNumber) { final int sequenceNumber) {
this(suggestedWordInfoList, rawSuggestions, this(suggestedWordInfoList, rawSuggestions,
suggestedWordInfoList.isEmpty() ? null (suggestedWordInfoList.isEmpty() || isPrediction) ? null
: suggestedWordInfoList.get(INDEX_OF_TYPED_WORD).mWord, : suggestedWordInfoList.get(INDEX_OF_TYPED_WORD).mWord,
typedWordValid, willAutoCorrect, isObsoleteSuggestions, isPrediction, typedWordValid, willAutoCorrect, isObsoleteSuggestions, isPrediction,
sequenceNumber); sequenceNumber);

View File

@ -248,13 +248,14 @@ final class SuggestionStripLayoutHelper {
final int indexInSuggestedWords) { final int indexInSuggestedWords) {
final int positionInStrip = final int positionInStrip =
getPositionInSuggestionStrip(indexInSuggestedWords, suggestedWords); getPositionInSuggestionStrip(indexInSuggestedWords, suggestedWords);
final boolean isTypedWord = !suggestedWords.mIsPrediction // Use identity for strings, not #equals : it's the typed word if it's the same object
&& (indexInSuggestedWords == SuggestedWords.INDEX_OF_TYPED_WORD); final boolean isTypedWord =
suggestedWords.getWord(indexInSuggestedWords) == suggestedWords.mTypedWord;
final int color; final int color;
if (positionInStrip == mCenterPositionInStrip && suggestedWords.mWillAutoCorrect) { if (positionInStrip == mCenterPositionInStrip && suggestedWords.mWillAutoCorrect) {
color = mColorAutoCorrect; color = mColorAutoCorrect;
} else if (positionInStrip == mCenterPositionInStrip && suggestedWords.mTypedWordValid) { } else if (isTypedWord && suggestedWords.mTypedWordValid) {
color = mColorValidTypedWord; color = mColorValidTypedWord;
} else if (isTypedWord) { } else if (isTypedWord) {
color = mColorTypedWord; color = mColorTypedWord;