aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-03-05 16:37:44 +0900
committerJean Chalard <jchalard@google.com>2014-03-27 17:51:32 +0900
commit6bd3723e733308a8b6d88830335bb5f786235369 (patch)
tree2de031c0fba85e1d57afd05e91d08c34d60345c5
parent3c38e1f269ad34a663db672e5cfb291fb1931987 (diff)
downloadlatinime-6bd3723e733308a8b6d88830335bb5f786235369.tar.gz
latinime-6bd3723e733308a8b6d88830335bb5f786235369.tar.xz
latinime-6bd3723e733308a8b6d88830335bb5f786235369.zip
[IL128] Remove passing some handlers.
Bug: 8636060 Change-Id: I088be9a7555265ca097667523defd73be4cbe37f
-rw-r--r--java/src/com/android/inputmethod/event/InputTransaction.java25
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java18
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java37
3 files changed, 54 insertions, 26 deletions
diff --git a/java/src/com/android/inputmethod/event/InputTransaction.java b/java/src/com/android/inputmethod/event/InputTransaction.java
index 2e9014f20..4fe9b403e 100644
--- a/java/src/com/android/inputmethod/event/InputTransaction.java
+++ b/java/src/com/android/inputmethod/event/InputTransaction.java
@@ -40,6 +40,7 @@ public class InputTransaction {
// Outputs
private int mRequiredShiftUpdate = SHIFT_NO_UPDATE;
+ private boolean mRequiresUpdateSuggestions = false;
public InputTransaction(final SettingsValues settingsValues, final Event event,
final long timestamp, final int spaceState, final int shiftState) {
@@ -50,10 +51,34 @@ public class InputTransaction {
mShiftState = shiftState;
}
+ /**
+ * Indicate that this transaction requires some type of shift update.
+ * @param updateType What type of shift update this requires.
+ */
public void requireShiftUpdate(final int updateType) {
mRequiredShiftUpdate = Math.max(mRequiredShiftUpdate, updateType);
}
+
+ /**
+ * Gets what type of shift update this transaction requires.
+ * @return The shift update type.
+ */
public int getRequiredShiftUpdate() {
return mRequiredShiftUpdate;
}
+
+ /**
+ * Indicate that this transaction requires updating the suggestions.
+ */
+ public void setRequiresUpdateSuggestions() {
+ mRequiresUpdateSuggestions = true;
+ }
+
+ /**
+ * Find out whether this transaction requires updating the suggestions.
+ * @return Whether this transaction requires updating the suggestions.
+ */
+ public boolean requiresUpdateSuggestions() {
+ return mRequiresUpdateSuggestions;
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 0c0be82df..53e6232b6 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -38,7 +38,6 @@ import android.net.ConnectivityManager;
import android.os.Debug;
import android.os.IBinder;
import android.os.Message;
-import android.os.SystemClock;
import android.preference.PreferenceManager;
import android.text.InputType;
import android.text.TextUtils;
@@ -1230,7 +1229,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final InputTransaction completeInputTransaction =
mInputLogic.onCodeInput(mSettings.getCurrent(), event,
mKeyboardSwitcher.getKeyboardShiftMode(), mHandler);
- updateShiftModeAfterInputTransaction(completeInputTransaction.getRequiredShiftUpdate());
+ updateStateAfterInputTransaction(completeInputTransaction);
mKeyboardSwitcher.onCodeInput(codePoint);
}
@@ -1450,7 +1449,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final InputTransaction completeInputTransaction = mInputLogic.onPickSuggestionManually(
mSettings.getCurrent(), index, suggestionInfo,
mKeyboardSwitcher.getKeyboardShiftMode(), mHandler);
- updateShiftModeAfterInputTransaction(completeInputTransaction.getRequiredShiftUpdate());
+ updateStateAfterInputTransaction(completeInputTransaction);
}
@Override
@@ -1488,8 +1487,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
}
- private void updateShiftModeAfterInputTransaction(final int requiredShiftUpdate) {
- switch (requiredShiftUpdate) {
+ /**
+ * After an input transaction has been executed, some state must be updated. This includes
+ * the shift state of the keyboard and suggestions. This method looks at the finished
+ * inputTransaction to find out what is necessary and updates the state accordingly.
+ * @param inputTransaction The transaction that has been executed.
+ */
+ private void updateStateAfterInputTransaction(final InputTransaction inputTransaction) {
+ switch (inputTransaction.getRequiredShiftUpdate()) {
case InputTransaction.SHIFT_UPDATE_LATER:
mHandler.postUpdateShiftState();
break;
@@ -1498,6 +1503,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
break;
default: // SHIFT_NO_UPDATE
}
+ if (inputTransaction.requiresUpdateSuggestions()) {
+ mHandler.postUpdateSuggestionStrip();
+ }
}
private void hapticAndAudioFeedback(final int code, final int repeatCount) {
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 3a59be198..4c7dc6499 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -402,7 +402,7 @@ public final class InputLogic {
// A special key, like delete, shift, emoji, or the settings key.
switch (event.mKeyCode) {
case Constants.CODE_DELETE:
- handleBackspace(inputTransaction, handler);
+ handleBackspace(inputTransaction);
LatinImeLogger.logOnDelete(event.mX, event.mY);
break;
case Constants.CODE_SHIFT:
@@ -673,7 +673,7 @@ public final class InputLogic {
commitTyped(inputTransaction.mSettingsValues, LastComposedWord.NOT_A_SEPARATOR);
}
}
- handleNonSeparator(inputTransaction.mSettingsValues, inputTransaction, handler);
+ handleNonSeparator(inputTransaction.mSettingsValues, inputTransaction);
}
return didAutoCorrect;
}
@@ -684,9 +684,7 @@ public final class InputLogic {
* @param inputTransaction The transaction in progress.
*/
private void handleNonSeparator(final SettingsValues settingsValues,
- final InputTransaction inputTransaction,
- // TODO: Remove this argument
- final LatinIME.UIHandler handler) {
+ final InputTransaction inputTransaction) {
final int codePoint = inputTransaction.mEvent.mCodePoint;
// TODO: refactor this method to stop flipping isComposingWord around all the time, and
// make it shorter (possibly cut into several pieces). Also factor handleNonSpecialCharacter
@@ -762,7 +760,7 @@ public final class InputLogic {
// In case the "add to dictionary" hint was still displayed.
mSuggestionStripViewAccessor.dismissAddToDictionaryHint();
}
- handler.postUpdateSuggestionStrip();
+ inputTransaction.setRequiresUpdateSuggestions();
if (settingsValues.mIsInternal) {
LatinImeLoggerUtils.onNonSeparator((char)codePoint, inputTransaction.mEvent.mX,
inputTransaction.mEvent.mY);
@@ -844,7 +842,7 @@ public final class InputLogic {
}
startDoubleSpacePeriodCountdown(inputTransaction);
- handler.postUpdateSuggestionStrip();
+ inputTransaction.setRequiresUpdateSuggestions();
} else {
if (swapWeakSpace) {
swapSwapperAndSpace(inputTransaction);
@@ -880,9 +878,7 @@ public final class InputLogic {
* Handle a press on the backspace key.
* @param inputTransaction The transaction in progress.
*/
- private void handleBackspace(final InputTransaction inputTransaction,
- // TODO: remove this argument
- final LatinIME.UIHandler handler) {
+ private void handleBackspace(final InputTransaction inputTransaction) {
mSpaceState = SpaceState.NONE;
mDeleteCount++;
@@ -911,7 +907,7 @@ public final class InputLogic {
mWordComposer.deleteLast(inputTransaction.mEvent);
}
mConnection.setComposingText(getTextWithUnderline(mWordComposer.getTypedWord()), 1);
- handler.postUpdateSuggestionStrip();
+ inputTransaction.setRequiresUpdateSuggestions();
if (!mWordComposer.isComposingWord()) {
// If we just removed the last character, auto-caps mode may have changed so we
// need to re-evaluate.
@@ -922,7 +918,7 @@ public final class InputLogic {
if (inputTransaction.mSettingsValues.mIsInternal) {
LatinImeLoggerUtils.onAutoCorrectionCancellation();
}
- revertCommit(inputTransaction.mSettingsValues, handler);
+ revertCommit(inputTransaction);
return;
}
if (mEnteredText != null && mConnection.sameAsTextBeforeCursor(mEnteredText)) {
@@ -1401,11 +1397,9 @@ public final class InputLogic {
*
* This is triggered upon pressing backspace just after a commit with auto-correction.
*
- * @param settingsValues the current settings values.
+ * @param inputTransaction The transaction in progress.
*/
- private void revertCommit(final SettingsValues settingsValues,
- // TODO: remove this argument
- final LatinIME.UIHandler handler) {
+ private void revertCommit(final InputTransaction inputTransaction) {
final String previousWord = mLastComposedWord.mPrevWord;
final CharSequence originallyTypedWord = mLastComposedWord.mTypedWord;
final CharSequence committedWord = mLastComposedWord.mCommittedWord;
@@ -1449,7 +1443,8 @@ public final class InputLogic {
// Given this, we add it to the list of suggestions, otherwise we discard it.
if (span instanceof SuggestionSpan) {
final SuggestionSpan suggestionSpan = (SuggestionSpan)span;
- if (!suggestionSpan.getLocale().equals(settingsValues.mLocale.toString())) {
+ if (!suggestionSpan.getLocale().equals(
+ inputTransaction.mSettingsValues.mLocale.toString())) {
continue;
}
for (final String suggestion : suggestionSpan.getSuggestions()) {
@@ -1464,11 +1459,11 @@ public final class InputLogic {
}
}
// Add the suggestion list to the list of suggestions.
- textToCommit.setSpan(new SuggestionSpan(settingsValues.mLocale,
+ textToCommit.setSpan(new SuggestionSpan(inputTransaction.mSettingsValues.mLocale,
suggestions.toArray(new String[suggestions.size()]), 0 /* flags */),
0 /* start */, lastCharIndex /* end */, 0 /* flags */);
}
- if (settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) {
+ if (inputTransaction.mSettingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) {
// For languages with spaces, we revert to the typed string, but the cursor is still
// after the separator so we don't resume suggestions. If the user wants to correct
// the word, they have to press backspace again.
@@ -1481,7 +1476,7 @@ public final class InputLogic {
mLatinIME.getCoordinatesForCurrentKeyboard(codePoints), previousWord);
mConnection.setComposingText(textToCommit, 1);
}
- if (settingsValues.mIsInternal) {
+ if (inputTransaction.mSettingsValues.mIsInternal) {
LatinImeLoggerUtils.onSeparator(mLastComposedWord.mSeparatorString,
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
}
@@ -1494,7 +1489,7 @@ public final class InputLogic {
// separator.
mLastComposedWord = LastComposedWord.NOT_A_COMPOSED_WORD;
// We have a separator between the word and the cursor: we should show predictions.
- handler.postUpdateSuggestionStrip();
+ inputTransaction.setRequiresUpdateSuggestions();
}
/**