am 2c7a3e04: Merge "[AC3] Start calling the methods for auto-commit."

* commit '2c7a3e0405b71101e5f4ce85ef9697036782c860':
  [AC3] Start calling the methods for auto-commit.
This commit is contained in:
Jean Chalard 2013-08-20 04:07:02 -07:00 committed by Android Git Automerger
commit d619127d2f
3 changed files with 26 additions and 0 deletions

View file

@ -133,6 +133,16 @@ public abstract class Dictionary {
return true;
}
/**
* Whether we think this suggestion should trigger an auto-commit.
*/
public boolean shouldAutoCommit(final SuggestedWordInfo candidate) {
// If we don't have support for auto-commit, or if we don't know, we return false to
// avoid auto-committing stuff. Implementations of the Dictionary class that know to
// determine whether we should auto-commit will override this.
return false;
}
/**
* Not a true dictionary. A placeholder used to indicate suggestions that don't come from any
* real dictionary.

View file

@ -1797,6 +1797,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
@Override
public void onUpdateBatchInput(final InputPointers batchPointers) {
final SuggestedWordInfo candidate = mSuggestedWords.getAutoCommitCandidate();
if (null != candidate) {
if (candidate.mSourceDict.shouldAutoCommit(candidate)) {
// TODO: implement auto-commit
}
}
BatchInputUpdater.getInstance().onUpdateBatchInput(batchPointers);
}

View file

@ -143,6 +143,12 @@ public final class SuggestedWords {
return suggestionsList;
}
public SuggestedWordInfo getAutoCommitCandidate() {
if (mSuggestedWordInfoList.size() <= 0) return null;
final SuggestedWordInfo candidate = mSuggestedWordInfoList.get(0);
return candidate.isEligibleForAutoCommit() ? candidate : null;
}
public static final class SuggestedWordInfo {
public static final int NOT_AN_INDEX = -1;
public static final int MAX_SCORE = Integer.MAX_VALUE;
@ -186,6 +192,10 @@ public final class SuggestedWords {
mIndexOfTouchPointOfSecondWord = indexOfTouchPointOfSecondWord;
}
public boolean isEligibleForAutoCommit() {
return (KIND_CORRECTION == mKind && NOT_AN_INDEX != mIndexOfTouchPointOfSecondWord);
}
public void setDebugString(final String str) {
if (null == str) throw new NullPointerException("Debug info is null");
mDebugString = str;