Java Code Examples for android.view.inputmethod.EditorInfo#IME_FLAG_NO_EXTRACT_UI

The following examples show how to use android.view.inputmethod.EditorInfo#IME_FLAG_NO_EXTRACT_UI . 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: LatinIME.java    From openboard with GNU General Public License v3.0 6 votes vote down vote up
@Override
public boolean onEvaluateFullscreenMode() {
    final SettingsValues settingsValues = mSettings.getCurrent();
    if (isImeSuppressedByHardwareKeyboard()) {
        // If there is a hardware keyboard, disable full screen mode.
        return false;
    }
    // Reread resource value here, because this method is called by the framework as needed.
    final boolean isFullscreenModeAllowed = Settings.readUseFullscreenMode(getResources());
    if (super.onEvaluateFullscreenMode() && isFullscreenModeAllowed) {
        // TODO: Remove this hack. Actually we should not really assume NO_EXTRACT_UI
        // implies NO_FULLSCREEN. However, the framework mistakenly does.  i.e. NO_EXTRACT_UI
        // without NO_FULLSCREEN doesn't work as expected. Because of this we need this
        // hack for now.  Let's get rid of this once the framework gets fixed.
        final EditorInfo ei = getCurrentInputEditorInfo();
        return !(ei != null && ((ei.imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0));
    }
    return false;
}
 
Example 2
Source File: LatinIME.java    From Android-Keyboard with Apache License 2.0 6 votes vote down vote up
@Override
public boolean onEvaluateFullscreenMode() {
    final SettingsValues settingsValues = mSettings.getCurrent();
    if (isImeSuppressedByHardwareKeyboard()) {
        // If there is a hardware keyboard, disable full screen mode.
        return false;
    }

    if (KeyboardSwitcher.getInstance().isFloatingKeyboard()) {
        return false;
    }

    // Reread resource value here, because this method is called by the framework as needed.
    final boolean isFullscreenModeAllowed = Settings.readUseFullscreenMode(getResources());
    if (super.onEvaluateFullscreenMode() && isFullscreenModeAllowed) {
        // TODO: Remove this hack. Actually we should not really assume NO_EXTRACT_UI
        // implies NO_FULLSCREEN. However, the framework mistakenly does.  i.e. NO_EXTRACT_UI
        // without NO_FULLSCREEN doesn't work as expected. Because of this we need this
        // hack for now.  Let's get rid of this once the framework gets fixed.
        final EditorInfo ei = getCurrentInputEditorInfo();
        return !(ei != null && ((ei.imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0));
    }
    return false;
}
 
Example 3
Source File: LatinIME.java    From LokiBoard-Android-Keylogger with Apache License 2.0 6 votes vote down vote up
@Override
public boolean onEvaluateFullscreenMode() {
    if (isImeSuppressedByHardwareKeyboard()) {
        // If there is a hardware keyboard, disable full screen mode.
        return false;
    }
    // Reread resource value here, because this method is called by the framework as needed.
    final boolean isFullscreenModeAllowed = Settings.readUseFullscreenMode(getResources());
    if (super.onEvaluateFullscreenMode() && isFullscreenModeAllowed) {
        // TODO: Remove this hack. Actually we should not really assume NO_EXTRACT_UI
        // implies NO_FULLSCREEN. However, the framework mistakenly does.  i.e. NO_EXTRACT_UI
        // without NO_FULLSCREEN doesn't work as expected. Because of this we need this
        // hack for now.  Let's get rid of this once the framework gets fixed.
        final EditorInfo ei = getCurrentInputEditorInfo();
        return !(ei != null && ((ei.imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0));
    }
    return false;
}
 
Example 4
Source File: LatinIME.java    From simple-keyboard with Apache License 2.0 6 votes vote down vote up
@Override
public boolean onEvaluateFullscreenMode() {
    if (isImeSuppressedByHardwareKeyboard()) {
        // If there is a hardware keyboard, disable full screen mode.
        return false;
    }
    // Reread resource value here, because this method is called by the framework as needed.
    final boolean isFullscreenModeAllowed = Settings.readUseFullscreenMode(getResources());
    if (super.onEvaluateFullscreenMode() && isFullscreenModeAllowed) {
        // TODO: Remove this hack. Actually we should not really assume NO_EXTRACT_UI
        // implies NO_FULLSCREEN. However, the framework mistakenly does.  i.e. NO_EXTRACT_UI
        // without NO_FULLSCREEN doesn't work as expected. Because of this we need this
        // hack for now.  Let's get rid of this once the framework gets fixed.
        final EditorInfo ei = getCurrentInputEditorInfo();
        return !(ei != null && ((ei.imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0));
    }
    return false;
}
 
Example 5
Source File: LatinIME.java    From AOSP-Kayboard-7.1.2 with Apache License 2.0 6 votes vote down vote up
@Override
public boolean onEvaluateFullscreenMode() {
    final SettingsValues settingsValues = mSettings.getCurrent();
    if (isImeSuppressedByHardwareKeyboard()) {
        // If there is a hardware keyboard, disable full screen mode.
        return false;
    }
    // Reread resource value here, because this method is called by the framework as needed.
    final boolean isFullscreenModeAllowed = Settings.readUseFullscreenMode(getResources());
    if (super.onEvaluateFullscreenMode() && isFullscreenModeAllowed) {
        // TODO: Remove this hack. Actually we should not really assume NO_EXTRACT_UI
        // implies NO_FULLSCREEN. However, the framework mistakenly does.  i.e. NO_EXTRACT_UI
        // without NO_FULLSCREEN doesn't work as expected. Because of this we need this
        // hack for now.  Let's get rid of this once the framework gets fixed.
        final EditorInfo ei = getCurrentInputEditorInfo();
        return !(ei != null && ((ei.imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0));
    }
    return false;
}
 
Example 6
Source File: LatinIME.java    From Indic-Keyboard with Apache License 2.0 6 votes vote down vote up
@Override
public boolean onEvaluateFullscreenMode() {
    final SettingsValues settingsValues = mSettings.getCurrent();
    if (isImeSuppressedByHardwareKeyboard()) {
        // If there is a hardware keyboard, disable full screen mode.
        return false;
    }
    // Reread resource value here, because this method is called by the framework as needed.
    final boolean isFullscreenModeAllowed = Settings.readUseFullscreenMode(getResources());
    if (super.onEvaluateFullscreenMode() && isFullscreenModeAllowed) {
        // TODO: Remove this hack. Actually we should not really assume NO_EXTRACT_UI
        // implies NO_FULLSCREEN. However, the framework mistakenly does.  i.e. NO_EXTRACT_UI
        // without NO_FULLSCREEN doesn't work as expected. Because of this we need this
        // hack for now.  Let's get rid of this once the framework gets fixed.
        final EditorInfo ei = getCurrentInputEditorInfo();
        return !(ei != null && ((ei.imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0));
    }
    return false;
}
 
Example 7
Source File: FreeScrollingTextField.java    From CodeEditor with Apache License 2.0 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    outAttrs.inputType = InputType.TYPE_CLASS_TEXT
            | InputType.TYPE_TEXT_FLAG_MULTI_LINE;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_ENTER_ACTION
            | EditorInfo.IME_ACTION_DONE
            | EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    if (_inputConnection == null) {
        _inputConnection = this.new TextFieldInputConnection(this);
    } else {
        _inputConnection.resetComposingState();
    }
    return _inputConnection;
}
 
Example 8
Source File: FreeScrollingTextField.java    From CodeEditor with Apache License 2.0 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    outAttrs.inputType = InputType.TYPE_CLASS_TEXT
            | InputType.TYPE_TEXT_FLAG_MULTI_LINE;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_ENTER_ACTION
            | EditorInfo.IME_ACTION_DONE
            | EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    if (_inputConnection == null) {
        _inputConnection = this.new TextFieldInputConnection(this);
    } else {
        _inputConnection.resetComposingState();
    }
    return _inputConnection;
}
 
Example 9
Source File: SDLActivity.java    From simpleSDL with MIT License 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    ic = new SDLInputConnection(this, true);

    outAttrs.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI
            | EditorInfo.IME_FLAG_NO_FULLSCREEN /* API 11 */;

    return ic;
}
 
Example 10
Source File: InputMethodService.java    From android_9.0.0_r45 with Apache License 2.0 5 votes vote down vote up
/**
 * Called when the fullscreen-mode extracting editor info has changed,
 * to determine whether the extracting (extract text and candidates) portion
 * of the UI should be shown.  The standard implementation hides or shows
 * the extract area depending on whether it makes sense for the
 * current editor.  In particular, a {@link InputType#TYPE_NULL}
 * input type or {@link EditorInfo#IME_FLAG_NO_EXTRACT_UI} flag will
 * turn off the extract area since there is no text to be shown.
 */
public void onUpdateExtractingVisibility(EditorInfo ei) {
    if (ei.inputType == InputType.TYPE_NULL ||
            (ei.imeOptions&EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0) {
        // No reason to show extract UI!
        setExtractViewShown(false);
        return;
    }
    
    setExtractViewShown(true);
}
 
Example 11
Source File: Utils.java    From Emoji with Apache License 2.0 5 votes vote down vote up
static boolean shouldOverrideRegularCondition(@NonNull final Context context, final EditText editText) {
  if ((editText.getImeOptions() & EditorInfo.IME_FLAG_NO_EXTRACT_UI) == 0) {
    return getOrientation(context) == Configuration.ORIENTATION_LANDSCAPE;
  }

  return false;
}
 
Example 12
Source File: ImeAdapter.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * @see View#onCreateInputConnection(EditorInfo)
 * @param allowKeyboardLearning Whether to allow keyboard (IME) app to do personalized learning.
 */
public ChromiumBaseInputConnection onCreateInputConnection(
        EditorInfo outAttrs, boolean allowKeyboardLearning) {
    // InputMethodService evaluates fullscreen mode even when the new input connection is
    // null. This makes sure IME doesn't enter fullscreen mode or open custom UI.
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN | EditorInfo.IME_FLAG_NO_EXTRACT_UI;

    // TODO(changwan): Replace with EditorInfoCompat#IME_FLAG_NO_PERSONALIZED_LEARNING or
    //                 EditorInfo#IME_FLAG_NO_PERSONALIZED_LEARNING as soon as either is
    //                 available in all build config types.
    if (!allowKeyboardLearning) outAttrs.imeOptions |= IME_FLAG_NO_PERSONALIZED_LEARNING;
    // Without this line, some third-party IMEs will try to compose text even when
    // not on an editable node. Even when we return null here, key events can still go
    // through ImeAdapter#dispatchKeyEvent().
    if (mTextInputType == TextInputType.NONE) {
        setInputConnection(null);
        if (DEBUG_LOGS) Log.i(TAG, "onCreateInputConnection returns null.");
        return null;
    }
    if (mInputConnectionFactory == null) return null;
    setInputConnection(mInputConnectionFactory.initializeAndGet(mContainerView, this,
            mTextInputType, mTextInputFlags, mTextInputMode, mLastSelectionStart,
            mLastSelectionEnd, outAttrs));
    if (DEBUG_LOGS) Log.i(TAG, "onCreateInputConnection: " + mInputConnection);

    if (mCursorAnchorInfoController != null) {
        mCursorAnchorInfoController.onRequestCursorUpdates(false /* not an immediate request */,
                false /* disable monitoring */, mContainerView);
    }
    if (isValid()) {
        nativeRequestCursorUpdate(mNativeImeAdapterAndroid,
                false /* not an immediate request */, false /* disable monitoring */);
    }
    return mInputConnection;
}
 
Example 13
Source File: SDLActivity.java    From android-port with GNU General Public License v3.0 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    ic = new SDLInputConnection(this, true);

    outAttrs.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI
            | EditorInfo.IME_FLAG_NO_FULLSCREEN /* API 11 */;

    return ic;
}
 
Example 14
Source File: TokenCompleteTextView.java    From TokenAutoComplete with Apache License 2.0 5 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(@NonNull EditorInfo outAttrs) {
    InputConnection superConn = super.onCreateInputConnection(outAttrs);
    if (superConn != null) {
        TokenInputConnection conn = new TokenInputConnection(superConn, true);
        outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
        outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
        return conn;
    } else {
        return null;
    }
}
 
Example 15
Source File: AdapterInputConnection.java    From android-chromium with BSD 2-Clause "Simplified" License 4 votes vote down vote up
@VisibleForTesting
AdapterInputConnection(View view, ImeAdapter imeAdapter, EditorInfo outAttrs) {
    super(view, true);
    mInternalView = view;
    mImeAdapter = imeAdapter;
    mImeAdapter.setInputConnection(this);
    mSingleLine = true;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN
            | EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    outAttrs.inputType = EditorInfo.TYPE_CLASS_TEXT
            | EditorInfo.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT;

    if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeText) {
        // Normal text field
        outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeTextArea ||
            imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeContentEditable) {
        // TextArea or contenteditable.
        outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE
                | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES
                | EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NONE;
        mSingleLine = false;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypePassword) {
        // Password
        outAttrs.inputType = InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeSearch) {
        // Search
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_SEARCH;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeUrl) {
        // Url
        // TYPE_TEXT_VARIATION_URI prevents Tab key from showing, so
        // exclude it for now.
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeEmail) {
        // Email
        outAttrs.inputType = InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeTel) {
        // Telephone
        // Number and telephone do not have both a Tab key and an
        // action in default OSK, so set the action to NEXT
        outAttrs.inputType = InputType.TYPE_CLASS_PHONE;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeNumber) {
        // Number
        outAttrs.inputType = InputType.TYPE_CLASS_NUMBER
                | InputType.TYPE_NUMBER_VARIATION_NORMAL;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
    }
    outAttrs.initialSelStart = imeAdapter.getInitialSelectionStart();
    outAttrs.initialSelEnd = imeAdapter.getInitialSelectionEnd();
    mLastUpdateSelectionStart = imeAdapter.getInitialSelectionStart();
    mLastUpdateSelectionEnd = imeAdapter.getInitialSelectionEnd();
}
 
Example 16
Source File: AdapterInputConnection.java    From android-chromium with BSD 2-Clause "Simplified" License 4 votes vote down vote up
@VisibleForTesting
AdapterInputConnection(View view, ImeAdapter imeAdapter, EditorInfo outAttrs) {
    super(view, true);
    mInternalView = view;
    mImeAdapter = imeAdapter;
    mImeAdapter.setInputConnection(this);
    mSingleLine = true;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN
            | EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    outAttrs.inputType = EditorInfo.TYPE_CLASS_TEXT
            | EditorInfo.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT;

    if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeText) {
        // Normal text field
        outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeTextArea ||
            imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeContentEditable) {
        // TextArea or contenteditable.
        outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE
                | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES
                | EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NONE;
        mSingleLine = false;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypePassword) {
        // Password
        outAttrs.inputType = InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeSearch) {
        // Search
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_SEARCH;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeUrl) {
        // Url
        // TYPE_TEXT_VARIATION_URI prevents Tab key from showing, so
        // exclude it for now.
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeEmail) {
        // Email
        outAttrs.inputType = InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_GO;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeTel) {
        // Telephone
        // Number and telephone do not have both a Tab key and an
        // action in default OSK, so set the action to NEXT
        outAttrs.inputType = InputType.TYPE_CLASS_PHONE;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
    } else if (imeAdapter.getTextInputType() == ImeAdapter.sTextInputTypeNumber) {
        // Number
        outAttrs.inputType = InputType.TYPE_CLASS_NUMBER
                | InputType.TYPE_NUMBER_VARIATION_NORMAL;
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
    }
    outAttrs.initialSelStart = imeAdapter.getInitialSelectionStart();
    outAttrs.initialSelEnd = imeAdapter.getInitialSelectionEnd();
    mLastUpdateSelectionStart = imeAdapter.getInitialSelectionStart();
    mLastUpdateSelectionEnd = imeAdapter.getInitialSelectionEnd();
}
 
Example 17
Source File: EmojiEditTextE.java    From iGap-Android with GNU Affero General Public License v3.0 4 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    return super.onCreateInputConnection(outAttrs);
}
 
Example 18
Source File: MEditText.java    From iGap-Android with GNU Affero General Public License v3.0 4 votes vote down vote up
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    InputConnection conn = super.onCreateInputConnection(outAttrs);
    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    return conn;
}