aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src
diff options
context:
space:
mode:
authorTom Ouyang <ouyang@google.com>2013-05-15 11:04:54 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-05-15 11:04:54 -0700
commitb55f0be85c51d07c6e64d8fc59279349045e52aa (patch)
tree22b374c26a4edcc5cd791f42b5315a56313bde7b /native/jni/src
parent511432b23c6b37a896186af073acfb66c4a4698b (diff)
parent17fce9e3455c9fbc88f6eabf220165abdaaee417 (diff)
downloadlatinime-b55f0be85c51d07c6e64d8fc59279349045e52aa.tar.gz
latinime-b55f0be85c51d07c6e64d8fc59279349045e52aa.tar.xz
latinime-b55f0be85c51d07c6e64d8fc59279349045e52aa.zip
am 17fce9e3: am fd02ec10: Always consider corrections of intentional omissions (e.g., apostrophe)
* commit '17fce9e3455c9fbc88f6eabf220165abdaaee417': Always consider corrections of intentional omissions (e.g., apostrophe)
Diffstat (limited to 'native/jni/src')
-rw-r--r--native/jni/src/suggest/core/policy/traversal.h3
-rw-r--r--native/jni/src/suggest/core/suggest.cpp4
-rw-r--r--native/jni/src/suggest/policyimpl/typing/typing_traversal.h9
3 files changed, 12 insertions, 4 deletions
diff --git a/native/jni/src/suggest/core/policy/traversal.h b/native/jni/src/suggest/core/policy/traversal.h
index 02c358aec..d3146da7f 100644
--- a/native/jni/src/suggest/core/policy/traversal.h
+++ b/native/jni/src/suggest/core/policy/traversal.h
@@ -28,7 +28,8 @@ class Traversal {
virtual int getMaxPointerCount() const = 0;
virtual bool allowsErrorCorrections(const DicNode *const dicNode) const = 0;
virtual bool isOmission(const DicTraverseSession *const traverseSession,
- const DicNode *const dicNode, const DicNode *const childDicNode) const = 0;
+ const DicNode *const dicNode, const DicNode *const childDicNode,
+ const bool allowsErrorCorrections) const = 0;
virtual bool isSpaceSubstitutionTerminal(const DicTraverseSession *const traverseSession,
const DicNode *const dicNode) const = 0;
virtual bool isSpaceOmissionTerminal(const DicTraverseSession *const traverseSession,
diff --git a/native/jni/src/suggest/core/suggest.cpp b/native/jni/src/suggest/core/suggest.cpp
index b1a5ff24e..4f94a9a3b 100644
--- a/native/jni/src/suggest/core/suggest.cpp
+++ b/native/jni/src/suggest/core/suggest.cpp
@@ -296,8 +296,8 @@ void Suggest::expandCurrentDicNodes(DicTraverseSession *traverseSession) const {
correctionDicNode.advanceDigraphIndex();
processDicNodeAsDigraph(traverseSession, &correctionDicNode);
}
- if (allowsErrorCorrections
- && TRAVERSAL->isOmission(traverseSession, &dicNode, childDicNode)) {
+ if (TRAVERSAL->isOmission(traverseSession, &dicNode, childDicNode,
+ allowsErrorCorrections)) {
// TODO: (Gesture) Change weight between omission and substitution errors
// TODO: (Gesture) Terminal node should not be handled as omission
correctionDicNode.initByCopy(childDicNode);
diff --git a/native/jni/src/suggest/policyimpl/typing/typing_traversal.h b/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
index 9f8347452..fb1fb79d1 100644
--- a/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
+++ b/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
@@ -43,10 +43,17 @@ class TypingTraversal : public Traversal {
}
AK_FORCE_INLINE bool isOmission(const DicTraverseSession *const traverseSession,
- const DicNode *const dicNode, const DicNode *const childDicNode) const {
+ const DicNode *const dicNode, const DicNode *const childDicNode,
+ const bool allowsErrorCorrections) const {
if (!CORRECT_OMISSION) {
return false;
}
+ // Note: Always consider intentional omissions (like apostrophes) since they are common.
+ const bool canConsiderOmission =
+ allowsErrorCorrections || childDicNode->canBeIntentionalOmission();
+ if (!canConsiderOmission) {
+ return false;
+ }
const int inputSize = traverseSession->getInputSize();
// TODO: Don't refer to isCompletion?
if (dicNode->isCompletion(inputSize)) {