diff options
author | satok <satok@google.com> | 2011-05-19 21:31:50 +0900 |
---|---|---|
committer | satok <satok@google.com> | 2011-05-26 11:02:31 +0900 |
commit | f9f01008624e2d28c15a90d942fa36f98c8c967d (patch) | |
tree | 3e6cfc7fc71c3cf7db7588713c7f0b9a64c1da81 /core/java/com | |
parent | f30c23d7bfa7a490ce01e2799905f320883c66d3 (diff) | |
download | frameworks_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.aidl | 3 | ||||
-rw-r--r-- | core/java/com/android/internal/widget/EditableInputConnection.java | 8 |
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); |