aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorCharles Chen <clchen@google.com>2012-05-31 17:27:49 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-05-31 17:27:49 -0700
commitd30cfee577228873902a16791cd8c3ad3fad4a4c (patch)
treee57213496b4d2f4b687b433dcb9830e7c3c04fd0 /java/src
parentc720651001117d67f4aca62350979b2854a88de5 (diff)
parent40e5f403af49d8da1f25d9368d18541390e05c38 (diff)
downloadlatinime-d30cfee577228873902a16791cd8c3ad3fad4a4c.tar.gz
latinime-d30cfee577228873902a16791cd8c3ad3fad4a4c.tar.xz
latinime-d30cfee577228873902a16791cd8c3ad3fad4a4c.zip
am 40e5f403: Merge "Add special case for speaking ACTION_ENTER keys." into jb-dev
* commit '40e5f403af49d8da1f25d9368d18541390e05c38': Add special case for speaking ACTION_ENTER keys.
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
index 7e1889a74..23acb8b74 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
@@ -19,6 +19,7 @@ package com.android.inputmethod.accessibility;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
+import android.view.inputmethod.EditorInfo;
import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard;
@@ -104,6 +105,10 @@ public class KeyCodeDescriptionMapper {
return getDescriptionForShiftKey(context, keyboard);
}
+ if (code == Keyboard.CODE_ACTION_ENTER) {
+ return getDescriptionForActionKey(context, keyboard, key);
+ }
+
if (!TextUtils.isEmpty(key.mLabel)) {
final String label = key.mLabel.toString().trim();
@@ -192,6 +197,52 @@ public class KeyCodeDescriptionMapper {
}
/**
+ * Returns a context-sensitive description of the "Enter" action key.
+ *
+ * @param context The package's context.
+ * @param keyboard The keyboard on which the key resides.
+ * @param key The key to describe.
+ * @return Returns a context-sensitive description of the "Enter" action
+ * key.
+ */
+ private String getDescriptionForActionKey(Context context, Keyboard keyboard, Key key) {
+ final KeyboardId keyboardId = keyboard.mId;
+ final int actionId = keyboardId.imeActionId();
+ final int resId;
+
+ // Always use the label, if available.
+ if (!TextUtils.isEmpty(key.mLabel)) {
+ return key.mLabel.toString().trim();
+ }
+
+ // Otherwise, use the action ID.
+ switch (actionId) {
+ case EditorInfo.IME_ACTION_SEARCH:
+ resId = R.string.spoken_description_search;
+ break;
+ case EditorInfo.IME_ACTION_GO:
+ resId = R.string.label_go_key;
+ break;
+ case EditorInfo.IME_ACTION_SEND:
+ resId = R.string.label_send_key;
+ break;
+ case EditorInfo.IME_ACTION_NEXT:
+ resId = R.string.label_next_key;
+ break;
+ case EditorInfo.IME_ACTION_DONE:
+ resId = R.string.label_done_key;
+ break;
+ case EditorInfo.IME_ACTION_PREVIOUS:
+ resId = R.string.label_previous_key;
+ break;
+ default:
+ resId = R.string.spoken_description_return;
+ }
+
+ return context.getString(resId);
+ }
+
+ /**
* Returns a localized character sequence describing what will happen when
* the specified key is pressed based on its key code.
* <p>