summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
authorsatok <satok@google.com>2011-05-19 21:31:50 +0900
committersatok <satok@google.com>2011-05-26 11:02:31 +0900
commitf9f01008624e2d28c15a90d942fa36f98c8c967d (patch)
tree3e6cfc7fc71c3cf7db7588713c7f0b9a64c1da81 /core/java/com
parentf30c23d7bfa7a490ce01e2799905f320883c66d3 (diff)
downloadframeworks_base-f9f01008624e2d28c15a90d942fa36f98c8c967d.zip
frameworks_base-f9f01008624e2d28c15a90d942fa36f98c8c967d.tar.gz
frameworks_base-f9f01008624e2d28c15a90d942fa36f98c8c967d.tar.bz2
Add Apis to send notifications when the suggestion was picked
- Due to a strong request from VoiceIME Bug: 4443922 Change-Id: Ia539de0acf66053e0349daec459d75e36805f6bf
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/view/IInputMethodManager.aidl3
-rw-r--r--core/java/com/android/internal/widget/EditableInputConnection.java8
2 files changed, 10 insertions, 1 deletions
diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl
index 4ffa4e1..8039fda 100644
--- a/core/java/com/android/internal/view/IInputMethodManager.aidl
+++ b/core/java/com/android/internal/view/IInputMethodManager.aidl
@@ -17,6 +17,7 @@
package com.android.internal.view;
import android.os.ResultReceiver;
+import android.text.style.SuggestionSpan;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodSubtype;
import android.view.inputmethod.EditorInfo;
@@ -61,6 +62,8 @@ interface IInputMethodManager {
void showMySoftInput(in IBinder token, int flags);
void updateStatusIcon(in IBinder token, String packageName, int iconId);
void setImeWindowStatus(in IBinder token, int vis, int backDisposition);
+ void registerSuggestionSpansForNotification(in SuggestionSpan[] spans);
+ boolean notifySuggestionPicked(in SuggestionSpan span, String originalString, int index);
InputMethodSubtype getCurrentInputMethodSubtype();
boolean setCurrentInputMethodSubtype(in InputMethodSubtype subtype);
boolean switchToLastInputMethod(in IBinder token);
diff --git a/core/java/com/android/internal/widget/EditableInputConnection.java b/core/java/com/android/internal/widget/EditableInputConnection.java
index 0d32d4b..32e733b 100644
--- a/core/java/com/android/internal/widget/EditableInputConnection.java
+++ b/core/java/com/android/internal/widget/EditableInputConnection.java
@@ -17,9 +17,10 @@
package com.android.internal.widget;
import android.os.Bundle;
-import android.os.IBinder;
import android.text.Editable;
+import android.text.Spanned;
import android.text.method.KeyListener;
+import android.text.style.SuggestionSpan;
import android.util.Log;
import android.view.inputmethod.BaseInputConnection;
import android.view.inputmethod.CompletionInfo;
@@ -138,6 +139,11 @@ public class EditableInputConnection extends BaseInputConnection {
if (mTextView == null) {
return super.commitText(text, newCursorPosition);
}
+ if (text instanceof Spanned) {
+ Spanned spanned = ((Spanned) text);
+ SuggestionSpan[] spans = spanned.getSpans(0, text.length(), SuggestionSpan.class);
+ mIMM.registerSuggestionSpansForNotification(spans);
+ }
mTextView.resetErrorChangedFlag();
boolean success = super.commitText(text, newCursorPosition);