aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-05-09 01:55:45 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-05-09 01:55:45 -0700
commit46b26ed892afc626e042c1e969abc02b6fb588dd (patch)
tree21be49332b4a64182f74a58fac81d1daef5f752c /java/src
parent9648b1674ef4c82cfdd923c0d77d564d78f48b89 (diff)
parentc8bde75cf455c02efc57c2e35bbe446b83c23739 (diff)
downloadlatinime-46b26ed892afc626e042c1e969abc02b6fb588dd.tar.gz
latinime-46b26ed892afc626e042c1e969abc02b6fb588dd.tar.xz
latinime-46b26ed892afc626e042c1e969abc02b6fb588dd.zip
am c8bde75c: Merge "Optimize InputConnection.getCursorCapsMode calling" into jb-dev
* commit 'c8bde75cf455c02efc57c2e35bbe446b83c23739': Optimize InputConnection.getCursorCapsMode calling
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java24
1 files changed, 18 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 0fcd23cc6..e8211aecf 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1035,13 +1035,25 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
public boolean getCurrentAutoCapsState() {
+ if (!mSettingsValues.mAutoCap) return false;
+
+ final EditorInfo ei = getCurrentInputEditorInfo();
+ if (ei == null) return false;
+
+ final int inputType = ei.inputType;
+ if ((inputType & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS) != 0) return true;
+
+ final boolean noNeedToCheckCapsMode = (inputType & (InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
+ | InputType.TYPE_TEXT_FLAG_CAP_WORDS)) == 0;
+ if (noNeedToCheckCapsMode) return false;
+
final InputConnection ic = getCurrentInputConnection();
- EditorInfo ei = getCurrentInputEditorInfo();
- if (mSettingsValues.mAutoCap && ic != null && ei != null
- && ei.inputType != InputType.TYPE_NULL) {
- return ic.getCursorCapsMode(ei.inputType) != 0;
- }
- return false;
+ if (ic == null) return false;
+ // TODO: This blocking IPC call is heavy. Consider doing this without using IPC calls.
+ // Note: getCursorCapsMode() returns the current capitalization mode that is any
+ // combination of CAP_MODE_CHARACTERS, CAP_MODE_WORDS, and CAP_MODE_SENTENCES. 0 means none
+ // of them.
+ return ic.getCursorCapsMode(inputType) != 0;
}
// "ic" may be null