Hiding SuggestedWords.EMPTY and refactoring code that compares SuggestedWords instances directly to it to use isEmpty instead
Bug: 17560717 Change-Id: I7032bf0ab46f9cf5e3b3312a14e689b5496764c1main
parent
1c810c6725
commit
30f4a2a4d7
|
@ -49,7 +49,7 @@ public class DrawingHandler extends LeakGuardHandlerWrapper<Callbacks> {
|
|||
callbacks.dismissKeyPreviewWithoutDelay((Key)msg.obj);
|
||||
break;
|
||||
case MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT:
|
||||
callbacks.showGestureFloatingPreviewText(SuggestedWords.EMPTY);
|
||||
callbacks.showGestureFloatingPreviewText(SuggestedWords.getEmptyInstance());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -98,7 +98,7 @@ public class GestureFloatingTextDrawingPreview extends AbstractDrawingPreview {
|
|||
private final RectF mGesturePreviewRectangle = new RectF();
|
||||
private int mPreviewTextX;
|
||||
private int mPreviewTextY;
|
||||
private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
|
||||
private SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
|
||||
private final int[] mLastPointerCoords = CoordinateUtils.newInstance();
|
||||
|
||||
public GestureFloatingTextDrawingPreview(final TypedArray mainKeyboardViewAttr) {
|
||||
|
|
|
@ -1491,7 +1491,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final boolean isEmptyApplicationSpecifiedCompletions =
|
||||
currentSettingsValues.isApplicationSpecifiedCompletionsOn()
|
||||
&& suggestedWords.isEmpty();
|
||||
final boolean noSuggestionsFromDictionaries = (SuggestedWords.EMPTY == suggestedWords)
|
||||
final boolean noSuggestionsFromDictionaries = suggestedWords.isEmpty()
|
||||
|| suggestedWords.isPunctuationSuggestions()
|
||||
|| isEmptyApplicationSpecifiedCompletions;
|
||||
final boolean isBeginningOfSentencePrediction = (suggestedWords.mInputStyle
|
||||
|
@ -1518,7 +1518,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final OnGetSuggestedWordsCallback callback) {
|
||||
final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
|
||||
if (keyboard == null) {
|
||||
callback.onGetSuggestedWords(SuggestedWords.EMPTY);
|
||||
callback.onGetSuggestedWords(SuggestedWords.getEmptyInstance());
|
||||
return;
|
||||
}
|
||||
mInputLogic.getSuggestedWords(mSettings.getCurrent(), keyboard.getProximityInfo(),
|
||||
|
@ -1526,10 +1526,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
}
|
||||
|
||||
@Override
|
||||
public void showSuggestionStrip(final SuggestedWords sourceSuggestedWords) {
|
||||
final SuggestedWords suggestedWords =
|
||||
sourceSuggestedWords.isEmpty() ? SuggestedWords.EMPTY : sourceSuggestedWords;
|
||||
if (SuggestedWords.EMPTY == suggestedWords) {
|
||||
public void showSuggestionStrip(final SuggestedWords suggestedWords) {
|
||||
if (suggestedWords.isEmpty()) {
|
||||
setNeutralSuggestionStrip();
|
||||
} else {
|
||||
setSuggestedWords(suggestedWords);
|
||||
|
@ -1537,7 +1535,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
// Cache the auto-correction in accessibility code so we can speak it if the user
|
||||
// touches a key that will insert it.
|
||||
AccessibilityUtils.getInstance().setAutoCorrection(suggestedWords,
|
||||
sourceSuggestedWords.mTypedWord);
|
||||
suggestedWords.mTypedWord);
|
||||
}
|
||||
|
||||
// Called from {@link SuggestionStripView} through the {@link SuggestionStripView#Listener}
|
||||
|
@ -1572,7 +1570,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
public void setNeutralSuggestionStrip() {
|
||||
final SettingsValues currentSettings = mSettings.getCurrent();
|
||||
final SuggestedWords neutralSuggestions = currentSettings.mBigramPredictionEnabled
|
||||
? SuggestedWords.EMPTY : currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
|
||||
? SuggestedWords.getEmptyInstance()
|
||||
: currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
|
||||
setSuggestedWords(neutralSuggestions);
|
||||
}
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ public class SuggestedWords {
|
|||
public static final int MAX_SUGGESTIONS = 18;
|
||||
|
||||
private static final ArrayList<SuggestedWordInfo> EMPTY_WORD_INFO_LIST = new ArrayList<>(0);
|
||||
public static final SuggestedWords EMPTY = new SuggestedWords(
|
||||
private static final SuggestedWords EMPTY = new SuggestedWords(
|
||||
EMPTY_WORD_INFO_LIST, null /* rawSuggestions */, false /* typedWordValid */,
|
||||
false /* willAutoCorrect */, false /* isObsoleteSuggestions */, INPUT_STYLE_NONE);
|
||||
|
||||
|
@ -196,6 +196,10 @@ public class SuggestedWords {
|
|||
return result;
|
||||
}
|
||||
|
||||
public static final SuggestedWords getEmptyInstance() {
|
||||
return SuggestedWords.EMPTY;
|
||||
}
|
||||
|
||||
// Should get rid of the first one (what the user typed previously) from suggestions
|
||||
// and replace it with what the user currently typed.
|
||||
public static ArrayList<SuggestedWordInfo> getTypedWordAndPreviousSuggestions(
|
||||
|
|
|
@ -86,7 +86,7 @@ public final class InputLogic {
|
|||
// Current space state of the input method. This can be any of the above constants.
|
||||
private int mSpaceState;
|
||||
// Never null
|
||||
public SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
|
||||
public SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
|
||||
public final Suggest mSuggest;
|
||||
private final DictionaryFacilitator mDictionaryFacilitator;
|
||||
|
||||
|
@ -151,7 +151,7 @@ public final class InputLogic {
|
|||
mSpaceState = SpaceState.NONE;
|
||||
mRecapitalizeStatus.disable(); // Do not perform recapitalize until the cursor is moved once
|
||||
mCurrentlyPressedHardwareKeys.clear();
|
||||
mSuggestedWords = SuggestedWords.EMPTY;
|
||||
mSuggestedWords = SuggestedWords.getEmptyInstance();
|
||||
// In some cases (namely, after rotation of the device) editorInfo.initialSelStart is lying
|
||||
// so we try using some heuristics to find out about these and fix them.
|
||||
mConnection.tryFixLyingCursorPosition();
|
||||
|
@ -325,7 +325,7 @@ public final class InputLogic {
|
|||
// however need to reset the suggestion strip right away, because we know we can't take
|
||||
// the risk of calling commitCompletion twice because we don't know how the app will react.
|
||||
if (suggestionInfo.isKindOf(SuggestedWordInfo.KIND_APP_DEFINED)) {
|
||||
mSuggestedWords = SuggestedWords.EMPTY;
|
||||
mSuggestedWords = SuggestedWords.getEmptyInstance();
|
||||
mSuggestionStripViewAccessor.setNeutralSuggestionStrip();
|
||||
inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
|
||||
resetComposingState(true /* alsoResetLastComposedWord */);
|
||||
|
@ -501,7 +501,7 @@ public final class InputLogic {
|
|||
final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler) {
|
||||
mInputLogicHandler.onStartBatchInput();
|
||||
handler.showGesturePreviewAndSuggestionStrip(
|
||||
SuggestedWords.EMPTY, false /* dismissGestureFloatingPreviewText */);
|
||||
SuggestedWords.getEmptyInstance(), false /* dismissGestureFloatingPreviewText */);
|
||||
handler.cancelUpdateSuggestionStrip();
|
||||
++mAutoCommitSequenceNumber;
|
||||
mConnection.beginBatchEdit();
|
||||
|
@ -600,14 +600,14 @@ public final class InputLogic {
|
|||
public void onCancelBatchInput(final LatinIME.UIHandler handler) {
|
||||
mInputLogicHandler.onCancelBatchInput();
|
||||
handler.showGesturePreviewAndSuggestionStrip(
|
||||
SuggestedWords.EMPTY, true /* dismissGestureFloatingPreviewText */);
|
||||
SuggestedWords.getEmptyInstance(), true /* dismissGestureFloatingPreviewText */);
|
||||
}
|
||||
|
||||
// TODO: on the long term, this method should become private, but it will be difficult.
|
||||
// Especially, how do we deal with InputMethodService.onDisplayCompletions?
|
||||
public void setSuggestedWords(final SuggestedWords suggestedWords,
|
||||
final SettingsValues settingsValues, final LatinIME.UIHandler handler) {
|
||||
if (SuggestedWords.EMPTY != suggestedWords) {
|
||||
if (!suggestedWords.isEmpty()) {
|
||||
final String autoCorrection;
|
||||
final String dictType;
|
||||
if (suggestedWords.mWillAutoCorrect) {
|
||||
|
@ -1393,7 +1393,7 @@ public final class InputLogic {
|
|||
+ "requested!");
|
||||
}
|
||||
// Clear the suggestions strip.
|
||||
mSuggestionStripViewAccessor.showSuggestionStrip(SuggestedWords.EMPTY);
|
||||
mSuggestionStripViewAccessor.showSuggestionStrip(SuggestedWords.getEmptyInstance());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1885,9 +1885,8 @@ public final class InputLogic {
|
|||
*/
|
||||
private SuggestedWords retrieveOlderSuggestions(final String typedWord,
|
||||
final SuggestedWords previousSuggestedWords) {
|
||||
final SuggestedWords oldSuggestedWords =
|
||||
previousSuggestedWords.isPunctuationSuggestions() ? SuggestedWords.EMPTY
|
||||
: previousSuggestedWords;
|
||||
final SuggestedWords oldSuggestedWords = previousSuggestedWords.isPunctuationSuggestions()
|
||||
? SuggestedWords.getEmptyInstance() : previousSuggestedWords;
|
||||
final ArrayList<SuggestedWords.SuggestedWordInfo> typedWordAndPreviousSuggestions =
|
||||
SuggestedWords.getTypedWordAndPreviousSuggestions(typedWord, oldSuggestedWords);
|
||||
return new SuggestedWords(typedWordAndPreviousSuggestions, null /* rawSuggestions */,
|
||||
|
|
|
@ -82,7 +82,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
|
|||
private final ArrayList<View> mDividerViews = new ArrayList<>();
|
||||
|
||||
Listener mListener;
|
||||
private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
|
||||
private SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
|
||||
private int mStartIndexOfMoreSuggestions;
|
||||
|
||||
private final SuggestionStripLayoutHelper mLayoutHelper;
|
||||
|
|
|
@ -147,7 +147,7 @@ public class SuggestedWordsTests extends AndroidTestCase {
|
|||
assertNull(wordsWithoutTypedWord.getTypedWordInfoOrNull());
|
||||
|
||||
// Make sure getTypedWordInfoOrNull() returns null.
|
||||
assertNull(SuggestedWords.EMPTY.getTypedWordInfoOrNull());
|
||||
assertNull(SuggestedWords.getEmptyInstance().getTypedWordInfoOrNull());
|
||||
|
||||
final SuggestedWords emptySuggestedWords = new SuggestedWords(
|
||||
new ArrayList<SuggestedWordInfo>(), null /* rawSuggestions */,
|
||||
|
@ -157,6 +157,6 @@ public class SuggestedWordsTests extends AndroidTestCase {
|
|||
SuggestedWords.INPUT_STYLE_NONE);
|
||||
assertNull(emptySuggestedWords.getTypedWordInfoOrNull());
|
||||
|
||||
assertNull(SuggestedWords.EMPTY.getTypedWordInfoOrNull());
|
||||
assertNull(SuggestedWords.getEmptyInstance().getTypedWordInfoOrNull());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue