Less code, less chance of stuff escaping, and a bit of a clarification.
Yay.

Change-Id: I3193fd8ad7ac28195260cbc231c4e498a63a460c
main
Jean Chalard 2014-02-18 17:07:46 +09:00
parent db21fad18f
commit 63be066544
6 changed files with 12 additions and 27 deletions

View File

@ -1310,12 +1310,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// Nothing to do so far. // Nothing to do so far.
} }
// TODO: remove this, read this directly from mInputLogic or something in the tests
@UsedForTesting
public boolean isShowingPunctuationList() {
return mInputLogic.isShowingPunctuationList(mSettings.getCurrent());
}
// TODO[IL]: Define a clear interface for this // TODO[IL]: Define a clear interface for this
public boolean isSuggestionStripVisible() { public boolean isSuggestionStripVisible() {
final SettingsValues currentSettings = mSettings.getCurrent(); final SettingsValues currentSettings = mSettings.getCurrent();
@ -1692,7 +1686,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// TODO: can this be removed somehow without breaking the tests? // TODO: can this be removed somehow without breaking the tests?
@UsedForTesting @UsedForTesting
/* package for test */ SuggestedWords getSuggestedWords() { /* package for test */ SuggestedWords getSuggestedWordsForTest() {
// You may not use this method for anything else than debug // You may not use this method for anything else than debug
return DEBUG ? mInputLogic.mSuggestedWords : null; return DEBUG ? mInputLogic.mSuggestedWords : null;
} }

View File

@ -198,7 +198,7 @@ public final class InputLogic {
final SuggestedWords suggestedWords = mSuggestedWords; final SuggestedWords suggestedWords = mSuggestedWords;
final String suggestion = suggestionInfo.mWord; final String suggestion = suggestionInfo.mWord;
// If this is a punctuation picked from the suggestion strip, pass it to onCodeInput // If this is a punctuation picked from the suggestion strip, pass it to onCodeInput
if (suggestion.length() == 1 && isShowingPunctuationList(settingsValues)) { if (suggestion.length() == 1 && suggestedWords.isPunctuationSuggestions()) {
// Word separators are suggested before the user inputs something. // Word separators are suggested before the user inputs something.
// So, LatinImeLogger logs "" as a user's input. // So, LatinImeLogger logs "" as a user's input.
LatinImeLogger.logOnManualSuggestion("", suggestion, index, suggestedWords); LatinImeLogger.logOnManualSuggestion("", suggestion, index, suggestedWords);
@ -821,7 +821,7 @@ public final class InputLogic {
if (maybeDoubleSpacePeriod(settingsValues, handler)) { if (maybeDoubleSpacePeriod(settingsValues, handler)) {
keyboardSwitcher.updateShiftState(); keyboardSwitcher.updateShiftState();
mSpaceState = SpaceState.DOUBLE; mSpaceState = SpaceState.DOUBLE;
} else if (!isShowingPunctuationList(settingsValues)) { } else if (!mSuggestedWords.isPunctuationSuggestions()) {
mSpaceState = SpaceState.WEAK; mSpaceState = SpaceState.WEAK;
} }
} }
@ -1455,15 +1455,6 @@ public final class InputLogic {
handler.postUpdateSuggestionStrip(); handler.postUpdateSuggestionStrip();
} }
/**
* Find out if the punctuation list is shown in the suggestion strip.
* @return whether the current suggestions are the punctuation list.
*/
// TODO: make this private. It's used through LatinIME for tests.
public boolean isShowingPunctuationList(final SettingsValues settingsValues) {
return settingsValues.mSpacingAndPunctuations.mSuggestPuncList == mSuggestedWords;
}
/** /**
* Factor in auto-caps and manual caps and compute the current caps mode. * Factor in auto-caps and manual caps and compute the current caps mode.
* @param settingsValues the current settings values. * @param settingsValues the current settings values.

View File

@ -357,7 +357,7 @@ public class InputLogicTests extends InputTestsBase {
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS); sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
runMessages(); runMessages();
// Test the first prediction is displayed // Test the first prediction is displayed
final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords(); final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("predictions after space", "Obama", assertEquals("predictions after space", "Obama",
suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null); suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
} }
@ -371,7 +371,7 @@ public class InputLogicTests extends InputTestsBase {
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS); sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
runMessages(); runMessages();
// Test the first prediction is displayed // Test the first prediction is displayed
final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords(); final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("predictions after manual pick", "Obama", assertEquals("predictions after manual pick", "Obama",
suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null); suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
} }
@ -382,7 +382,7 @@ public class InputLogicTests extends InputTestsBase {
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS); sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
runMessages(); runMessages();
// Test the first prediction is not displayed // Test the first prediction is not displayed
final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords(); final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("no prediction after period", 0, suggestedWords.size()); assertEquals("no prediction after period", 0, suggestedWords.size());
} }
} }

View File

@ -99,7 +99,7 @@ public class InputLogicTestsLanguageWithoutSpaces extends InputTestsBase {
assertEquals("predictions in lang without spaces", "Barack", assertEquals("predictions in lang without spaces", "Barack",
mEditText.getText().toString()); mEditText.getText().toString());
// Test the first prediction is displayed // Test the first prediction is displayed
final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords(); final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("predictions in lang without spaces", "Obama", assertEquals("predictions in lang without spaces", "Obama",
suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null); suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
} }

View File

@ -60,7 +60,7 @@ public class InputLogicTestsNonEnglish extends InputTestsBase {
sleep(DELAY_TO_WAIT_FOR_UNDERLINE); sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages(); runMessages();
assertTrue("type word then type space should display punctuation strip", assertTrue("type word then type space should display punctuation strip",
mLatinIME.isShowingPunctuationList()); mLatinIME.getSuggestedWordsForTest().isPunctuationSuggestions());
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP); pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP); pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
assertEquals("type word then type space then punctuation from strip twice for French", assertEquals("type word then type space then punctuation from strip twice for French",
@ -84,7 +84,7 @@ public class InputLogicTestsNonEnglish extends InputTestsBase {
type(WORD_TO_TYPE); type(WORD_TO_TYPE);
sleep(DELAY_TO_WAIT_FOR_UNDERLINE); sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages(); runMessages();
final SuggestedWords suggestedWords = mLatinIME.getSuggestedWords(); final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
assertEquals("type word then type space yields predictions for French", assertEquals("type word then type space yields predictions for French",
EXPECTED_RESULT, suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null); EXPECTED_RESULT, suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
} finally { } finally {

View File

@ -41,7 +41,7 @@ public class PunctuationTests extends InputTestsBase {
sleep(DELAY_TO_WAIT_FOR_UNDERLINE); sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages(); runMessages();
assertTrue("type word then type space should display punctuation strip", assertTrue("type word then type space should display punctuation strip",
mLatinIME.isShowingPunctuationList()); mLatinIME.getSuggestedWordsForTest().isPunctuationSuggestions());
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP); pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
pickSuggestionManually(0, PUNCTUATION_FROM_STRIP); pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
assertEquals("type word then type space then punctuation from strip twice", assertEquals("type word then type space then punctuation from strip twice",
@ -156,7 +156,7 @@ public class PunctuationTests extends InputTestsBase {
type(WORD_TO_TYPE); type(WORD_TO_TYPE);
assertEquals("auto-correction with single quote inside. ID = " assertEquals("auto-correction with single quote inside. ID = "
+ Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID) + Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID)
+ " ; Suggestions = " + mLatinIME.getSuggestedWords(), + " ; Suggestions = " + mLatinIME.getSuggestedWordsForTest(),
EXPECTED_RESULT, mEditText.getText().toString()); EXPECTED_RESULT, mEditText.getText().toString());
} }
@ -166,7 +166,7 @@ public class PunctuationTests extends InputTestsBase {
type(WORD_TO_TYPE); type(WORD_TO_TYPE);
assertEquals("auto-correction with single quotes around. ID = " assertEquals("auto-correction with single quotes around. ID = "
+ Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID) + Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID)
+ " ; Suggestions = " + mLatinIME.getSuggestedWords(), + " ; Suggestions = " + mLatinIME.getSuggestedWordsForTest(),
EXPECTED_RESULT, mEditText.getText().toString()); EXPECTED_RESULT, mEditText.getText().toString());
} }