android.support.v13.view.inputmethod.EditorInfoCompat Java Examples

The following examples show how to use android.support.v13.view.inputmethod.EditorInfoCompat. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ImageKeyboard.java    From input-samples with Apache License 2.0 6 votes vote down vote up
private boolean isCommitContentSupported(
        @Nullable EditorInfo editorInfo, @NonNull String mimeType) {
    if (editorInfo == null) {
        return false;
    }

    final InputConnection ic = getCurrentInputConnection();
    if (ic == null) {
        return false;
    }

    if (!validatePackageName(editorInfo)) {
        return false;
    }

    final String[] supportedMimeTypes = EditorInfoCompat.getContentMimeTypes(editorInfo);
    for (String supportedMimeType : supportedMimeTypes) {
        if (ClipDescription.compareMimeTypes(mimeType, supportedMimeType)) {
            return true;
        }
    }
    return false;
}
 
Example #2
Source File: ImageKeyboard.java    From android-CommitContentSampleIME with Apache License 2.0 6 votes vote down vote up
private boolean isCommitContentSupported(
        @Nullable EditorInfo editorInfo, @NonNull String mimeType) {
    if (editorInfo == null) {
        return false;
    }

    final InputConnection ic = getCurrentInputConnection();
    if (ic == null) {
        return false;
    }

    if (!validatePackageName(editorInfo)) {
        return false;
    }

    final String[] supportedMimeTypes = EditorInfoCompat.getContentMimeTypes(editorInfo);
    for (String supportedMimeType : supportedMimeTypes) {
        if (ClipDescription.compareMimeTypes(mimeType, supportedMimeType)) {
            return true;
        }
    }
    return false;
}
 
Example #3
Source File: MainActivity.java    From input-samples with Apache License 2.0 5 votes vote down vote up
/**
 * Creates a new instance of {@link EditText} that is configured to specify the given content
 * MIME types to EditorInfo#contentMimeTypes so that developers can locally test how the current
 * input method behaves for such content MIME types.
 *
 * @param contentMimeTypes A {@link String} array that indicates the supported content MIME
 *                         types
 * @return a new instance of {@link EditText}, which specifies EditorInfo#contentMimeTypes with
 * the given content MIME types
 */
private EditText createEditTextWithContentMimeTypes(String[] contentMimeTypes) {
    final CharSequence hintText;
    final String[] mimeTypes;  // our own copy of contentMimeTypes.
    if (contentMimeTypes == null || contentMimeTypes.length == 0) {
        hintText = "MIME: []";
        mimeTypes = new String[0];
    } else {
        hintText = "MIME: " + Arrays.toString(contentMimeTypes);
        mimeTypes = Arrays.copyOf(contentMimeTypes, contentMimeTypes.length);
    }
    EditText exitText = new EditText(this) {
        @Override
        public InputConnection onCreateInputConnection(EditorInfo editorInfo) {
            final InputConnection ic = super.onCreateInputConnection(editorInfo);
            EditorInfoCompat.setContentMimeTypes(editorInfo, mimeTypes);
            final InputConnectionCompat.OnCommitContentListener callback =
                    new InputConnectionCompat.OnCommitContentListener() {
                        @Override
                        public boolean onCommitContent(InputContentInfoCompat inputContentInfo,
                                int flags, Bundle opts) {
                            return MainActivity.this.onCommitContent(
                                    inputContentInfo, flags, opts, mimeTypes);
                        }
                    };
            return InputConnectionCompat.createWrapper(ic, editorInfo, callback);
        }
    };
    exitText.setHint(hintText);
    exitText.setTextColor(Color.WHITE);
    exitText.setHintTextColor(Color.WHITE);
    return exitText;
}
 
Example #4
Source File: RTextEditorView.java    From rtexteditorview with MIT License 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
    if (isIncognitoModeEnabled) {
        outAttrs.imeOptions = outAttrs.imeOptions
                | EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING;
    }
    return inputConnection;
}
 
Example #5
Source File: MainActivity.java    From android-CommitContentSampleApp with Apache License 2.0 5 votes vote down vote up
/**
 * Creates a new instance of {@link EditText} that is configured to specify the given content
 * MIME types to EditorInfo#contentMimeTypes so that developers can locally test how the current
 * input method behaves for such content MIME types.
 *
 * @param contentMimeTypes A {@link String} array that indicates the supported content MIME
 *                         types
 * @return a new instance of {@link EditText}, which specifies EditorInfo#contentMimeTypes with
 * the given content MIME types
 */
private EditText createEditTextWithContentMimeTypes(String[] contentMimeTypes) {
    final CharSequence hintText;
    final String[] mimeTypes;  // our own copy of contentMimeTypes.
    if (contentMimeTypes == null || contentMimeTypes.length == 0) {
        hintText = "MIME: []";
        mimeTypes = new String[0];
    } else {
        hintText = "MIME: " + Arrays.toString(contentMimeTypes);
        mimeTypes = Arrays.copyOf(contentMimeTypes, contentMimeTypes.length);
    }
    EditText exitText = new EditText(this) {
        @Override
        public InputConnection onCreateInputConnection(EditorInfo editorInfo) {
            final InputConnection ic = super.onCreateInputConnection(editorInfo);
            EditorInfoCompat.setContentMimeTypes(editorInfo, mimeTypes);
            final InputConnectionCompat.OnCommitContentListener callback =
                    new InputConnectionCompat.OnCommitContentListener() {
                        @Override
                        public boolean onCommitContent(InputContentInfoCompat inputContentInfo,
                                int flags, Bundle opts) {
                            return MainActivity.this.onCommitContent(
                                    inputContentInfo, flags, opts, mimeTypes);
                        }
                    };
            return InputConnectionCompat.createWrapper(ic, editorInfo, callback);
        }
    };
    exitText.setHint(hintText);
    exitText.setTextColor(Color.WHITE);
    exitText.setHintTextColor(Color.WHITE);
    return exitText;
}
 
Example #6
Source File: ComposeText.java    From Silence with GNU General Public License v3.0 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo editorInfo) {
  InputConnection inputConnection = super.onCreateInputConnection(editorInfo);

  if (SilencePreferences.getEnterKeyType(getContext()).equals("send")) {
    editorInfo.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
  }

  if (Build.VERSION.SDK_INT <= 13) return inputConnection;
  if (mediaListener == null)       return inputConnection;

  EditorInfoCompat.setContentMimeTypes(editorInfo, new String[] {"image/jpeg", "image/png", "image/gif"});
  return InputConnectionCompat.createWrapper(inputConnection, editorInfo, new CommitContentListener(mediaListener));
}
 
Example #7
Source File: ImageInsertEditText.java    From Slide with GNU General Public License v3.0 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo attrs) {
    InputConnection con = super.onCreateInputConnection(attrs);
    EditorInfoCompat.setContentMimeTypes(attrs, new String[] { "image/gif", "image/png" });

    return InputConnectionCompat.createWrapper(con, attrs, new InputConnectionCompat.OnCommitContentListener() {
        @Override
        public boolean onCommitContent(InputContentInfoCompat inputContentInfo, int flags, Bundle opts) {
            if (callback != null) {
                if (BuildCompat.isAtLeastNMR1() &&
                        (flags & InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION) != 0) {
                    try {
                        inputContentInfo.requestPermission();
                    } catch (Exception e) {
                        return false;
                    }
                }

                callback.onImageSelected(
                        inputContentInfo.getContentUri(),
                        inputContentInfo.getDescription().getMimeType(0)
                );

                return true;
            } else {
                return false;
            }
        }
    });
}
 
Example #8
Source File: EditMessage.java    From Conversations with GNU General Public License v3.0 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo editorInfo) {
    final InputConnection ic = super.onCreateInputConnection(editorInfo);

    if (mimeTypes != null && mCommitContentListener != null && ic != null) {
        EditorInfoCompat.setContentMimeTypes(editorInfo, mimeTypes);
        return InputConnectionCompat.createWrapper(ic, editorInfo, (inputContentInfo, flags, opts) -> EditMessage.this.mCommitContentListener.onCommitContent(inputContentInfo, flags, opts, mimeTypes));
    } else {
        return ic;
    }
}