aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorsatok <satok@google.com>2010-11-11 13:37:18 +0900
committersatok <satok@google.com>2010-11-11 17:37:11 +0900
commitca26f20fa4903de46e374babbfba8c8a1a5cac93 (patch)
tree7d1cdf2dc02c7210e775662fd766cd6875c71f25 /java/src
parent48bc6b158bb2890c1e5cbfe63e93705476ce9673 (diff)
downloadlatinime-ca26f20fa4903de46e374babbfba8c8a1a5cac93.tar.gz
latinime-ca26f20fa4903de46e374babbfba8c8a1a5cac93.tar.xz
latinime-ca26f20fa4903de46e374babbfba8c8a1a5cac93.zip
Fix states for showing PunctuationList and correction
- Fixed the visibility of the suggestion strip Change-Id: I63ad561c71464657521661dbd25c72dd34841834
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java25
-rw-r--r--java/src/com/android/inputmethod/latin/TextEntryState.java17
2 files changed, 30 insertions, 12 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index cb50cfb00..60828c372 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -667,7 +667,7 @@ public class LatinIME extends InputMethodService
mVoiceButtonOnPrimary);
updateShiftKeyState(attribute);
- setCandidatesViewShownInternal(isCandidateStripVisible() || mCompletionOn,
+ setCandidatesViewShownInternal(isCandidateStripVisible(),
false /* needsInputViewShown */ );
updateSuggestions();
@@ -827,7 +827,7 @@ public class LatinIME extends InputMethodService
if (mCandidateView != null
&& !mSuggestPuncList.equals(mCandidateView.getSuggestions())
&& !mCandidateView.isShowingAddToDictionaryHint()) {
- setNextSuggestions();
+ setPunctuationSuggestions();
}
}
}
@@ -1408,6 +1408,8 @@ public class LatinIME extends InputMethodService
private void abortCorrection(boolean force) {
if (force || TextEntryState.isCorrecting()) {
+ TextEntryState.onAbortCorrection();
+ setCandidatesViewShown(isCandidateStripVisible());
getCurrentInputConnection().finishComposingText();
clearSuggestions();
}
@@ -1598,7 +1600,8 @@ public class LatinIME extends InputMethodService
}
private boolean isCandidateStripVisible() {
- return isPredictionOn() && mShowSuggestions;
+ return (isPredictionOn() && mShowSuggestions) || mCompletionOn
+ || mCandidateView.isShowingAddToDictionaryHint() || TextEntryState.isCorrecting();
}
public void onCancelVoice() {
@@ -1614,7 +1617,7 @@ public class LatinIME extends InputMethodService
if (mKeyboardSwitcher.getInputView() != null) {
setInputView(mKeyboardSwitcher.getInputView());
}
- setCandidatesViewShown(true);
+ setCandidatesViewShown(isCandidateStripVisible());
updateInputViewShown();
postUpdateSuggestions();
}});
@@ -1815,7 +1818,7 @@ public class LatinIME extends InputMethodService
}
if (!mPredicting) {
- setNextSuggestions();
+ setPunctuationSuggestions();
return;
}
showSuggestions(mWord);
@@ -1883,7 +1886,7 @@ public class LatinIME extends InputMethodService
} else {
mBestWord = null;
}
- setCandidatesViewShown(isCandidateStripVisible() || mCompletionOn);
+ setCandidatesViewShown(isCandidateStripVisible());
}
private boolean pickDefaultSuggestion() {
@@ -1977,7 +1980,7 @@ public class LatinIME extends InputMethodService
// we just did a correction, in which case we need to stay in
// TextEntryState.State.PICKED_SUGGESTION state.
TextEntryState.typedCharacter((char) KEYCODE_SPACE, true);
- setNextSuggestions();
+ setPunctuationSuggestions();
} else if (!showingAddToDictionaryHint) {
// If we're not showing the "Touch again to save", then show corrections again.
// In case the cursor position doesn't change, make sure we show the suggestions again.
@@ -2039,7 +2042,7 @@ public class LatinIME extends InputMethodService
}
// If we just corrected a word, then don't show punctuations
if (!correcting) {
- setNextSuggestions();
+ setPunctuationSuggestions();
}
updateShiftKeyState(getCurrentInputEditorInfo());
}
@@ -2148,14 +2151,16 @@ public class LatinIME extends InputMethodService
ic.endBatchEdit();
} else {
abortCorrection(true);
- setNextSuggestions(); // Show the punctuation suggestions list
+ setPunctuationSuggestions(); // Show the punctuation suggestions list
}
} else {
abortCorrection(true);
}
}
- private void setNextSuggestions() {
+ private void setPunctuationSuggestions() {
+ TextEntryState.onShowPunctuationsList();
+ setCandidatesViewShown(isCandidateStripVisible());
setSuggestions(mSuggestPuncList, false, false, false);
}
diff --git a/java/src/com/android/inputmethod/latin/TextEntryState.java b/java/src/com/android/inputmethod/latin/TextEntryState.java
index 1d7659ca3..48a773494 100644
--- a/java/src/com/android/inputmethod/latin/TextEntryState.java
+++ b/java/src/com/android/inputmethod/latin/TextEntryState.java
@@ -62,7 +62,8 @@ public class TextEntryState {
SPACE_AFTER_PICKED,
UNDO_COMMIT,
CORRECTING,
- PICKED_CORRECTION;
+ PICKED_CORRECTION,
+ SHOWING_PUNCTUATIONS_LIST;
}
private static State sState = State.UNKNOWN;
@@ -97,7 +98,7 @@ public class TextEntryState {
}
try {
sKeyLocationFile.close();
- // Write to log file
+ // Write to log file
// Write timestamp, settings,
String out = DateFormat.format("MM:dd hh:mm:ss", Calendar.getInstance().getTime())
.toString()
@@ -169,6 +170,18 @@ public class TextEntryState {
displayState();
}
+ public static void onAbortCorrection() {
+ if (isCorrecting()) {
+ sState = State.START;
+ }
+ displayState();
+ }
+
+ public static void onShowPunctuationsList() {
+ sState = State.SHOWING_PUNCTUATIONS_LIST;
+ displayState();
+ }
+
public static void typedCharacter(char c, boolean isSeparator) {
boolean isSpace = c == ' ';
switch (sState) {