diff options
| author | Yohei Yukawa <yukawa@google.com> | 2016-06-23 01:37:10 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2016-06-23 01:37:10 +0000 |
| commit | bf055ba65844f3df53d48554255afd7ba97691ab (patch) | |
| tree | b8accc7b2b7c0a8017e613a2fa4f01467758c603 /core/java/android/inputmethodservice/InputMethodService.java | |
| parent | 4667fd17d8d2cb01458daa3c96442316f0f3dc8a (diff) | |
| parent | d02470f5a89a4e4a94dda371ab472e9cedd1130d (diff) | |
Merge \\"Add InputMethodService#exposeContent()\\" into nyc-mr1-dev am: dc42d7dd13
am: d02470f5a8
Change-Id: Id551d53ae3d7c34157ddf166aa44bdef67d46853
Diffstat (limited to 'core/java/android/inputmethodservice/InputMethodService.java')
| -rw-r--r-- | core/java/android/inputmethodservice/InputMethodService.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 34742d6c0fbd..6594c0912551 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -23,6 +23,7 @@ import android.annotation.CallSuper; import android.annotation.DrawableRes; import android.annotation.IntDef; import android.annotation.MainThread; +import android.annotation.NonNull; import android.app.ActivityManager; import android.app.Dialog; import android.content.Context; @@ -65,6 +66,7 @@ import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; import android.view.inputmethod.InputBinding; import android.view.inputmethod.InputConnection; +import android.view.inputmethod.InputContentInfo; import android.view.inputmethod.InputMethod; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; @@ -2599,6 +2601,39 @@ public class InputMethodService extends AbstractInputMethodService { } /** + * Allow the receiver of {@link InputContentInfo} to obtain a temporary read-only access + * permission to the content. + * + * <p>Make sure that the content provider owning the Uri sets the + * {@link android.R.styleable#AndroidManifestProvider_grantUriPermissions + * grantUriPermissions} attribute in its manifest or included the + * {@link android.R.styleable#AndroidManifestGrantUriPermission + * <grant-uri-permissions>} tag. Otherwise {@link InputContentInfo#requestPermission()} + * can fail.</p> + * + * <p>Although calling this API is allowed only for the IME that is currently selected, the + * client is able to request a temporary read-only access even after the current IME is switched + * to any other IME as long as the client keeps {@link InputContentInfo} object.</p> + * + * @param inputContentInfo Content to be temporarily exposed from the input method to the + * application. + * This cannot be {@code null}. + * @param editorInfo The editor that receives {@link InputContentInfo}. + * @return {@code false} if we cannot allow a temporary access permission. + */ + public final boolean exposeContent(@NonNull InputContentInfo inputContentInfo, + @NonNull EditorInfo editorInfo) { + if (inputContentInfo == null) { + throw new NullPointerException("inputContentInfo"); + } + if (editorInfo == null) { + throw new NullPointerException("editorInfo"); + } + + return mImm.exposeContent(mToken, inputContentInfo, editorInfo); + } + + /** * Performs a dump of the InputMethodService's internal state. Override * to add your own information to the dump. */ |
