类android.view.inputmethod.CompletionInfo源码实例Demo

下面列出了怎么用android.view.inputmethod.CompletionInfo的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: java-n-IDE-for-Android   文件: TerminalKeyboard.java
public void pickSuggestionManually(int index) {
    if (mCompletionOn && mCompletions != null && index >= 0
            && index < mCompletions.length) {
        CompletionInfo ci = mCompletions[index];
        getCurrentInputConnection().commitCompletion(ci);
        if (mCandidateView != null) {
            mCandidateView.clear();
        }
        updateShiftKeyState(getCurrentInputEditorInfo());
    } else if (mComposing.length() > 0) {
        // If we were generating candidate suggestions for the current
        // text, we would commit one of them here.  But for this sample,
        // we will just commit the current text.
        commitTyped(getCurrentInputConnection());
    }
}
 
源代码2 项目: AndroidKeyboard   文件: SoftKeyboard.java
/**
 * This tells us about completions that the editor has determined based
 * on the current text in it.  We want to use this in fullscreen mode
 * to show the completions ourselves, since the editor can not be seen
 * in that situation.
 */
@Override
public void onDisplayCompletions(CompletionInfo[] completions) {
    if (mCompletionOn) {
        mCompletions = completions;
        if (completions == null) {
            setSuggestions(null, false, false);
            return;
        }

        List<String> stringList = new ArrayList<>();
        for (CompletionInfo ci : completions) {
            if (ci != null) stringList.add(ci.getText().toString());
        }
        setSuggestions(stringList, true, true);
    }
}
 
源代码3 项目: AndroidKeyboard   文件: SoftKeyboard.java
public void pickSuggestionManually(int index) {
    if (mCompletionOn && mCompletions != null && index >= 0 && index < mCompletions.length) {
        CompletionInfo ci = mCompletions[index];
        getCurrentInputConnection().commitCompletion(ci);
        if (mCandidateView != null) {
            mCandidateView.clear();
        }
        updateShiftKeyState(getCurrentInputEditorInfo());
    } else if (mComposing.length() > 0) {
        // If we were generating candidate suggestions for the current
        // text, we would commit one of them here. But for this sample,
        // we will just commit the current text.
        mComposing.setLength(index);
        mComposing = new StringBuilder(list.get(index) + " ");
        commitTyped(getCurrentInputConnection());
    }
}
 
源代码4 项目: hackerskeyboard   文件: LatinIME.java
@Override
public void onDisplayCompletions(CompletionInfo[] completions) {
    if (mCompletionOn) {
        mCompletions = completions;
        if (completions == null) {
            clearSuggestions();
            return;
        }

        List<CharSequence> stringList = new ArrayList<CharSequence>();
        for (int i = 0; i < (completions != null ? completions.length : 0); i++) {
            CompletionInfo ci = completions[i];
            if (ci != null)
                stringList.add(ci.getText());
        }
        // When in fullscreen mode, show completions generated by the
        // application
        setSuggestions(stringList, true, true, true);
        mBestWord = null;
        setCandidatesViewShown(true);
    }
}
 
源代码5 项目: sinovoice-pathfinder   文件: Pathfinder.java
/**
 * This tells us about completions that the editor has determined based
 * on the current text in it.  We want to use this in fullscreen mode
 * to show the completions ourself, since the editor can not be seen
 * in that situation.
 */
@Override 
public void onDisplayCompletions(CompletionInfo[] completions) {
    if (mCompletionOn) {
        mCompletions = completions;
        if (completions == null) {
            setSuggestions(null, false, false);
            return;
        }
        
        List<String> stringList = new ArrayList<String>();
        for (int i = 0; i < completions.length; i++) {
            CompletionInfo ci = completions[i];
            if (ci != null) stringList.add(ci.getText().toString());
        }
        setSuggestions(stringList, true, true);
    }
}
 
源代码6 项目: sinovoice-pathfinder   文件: Pathfinder.java
public void pickSuggestionManually(int index, String text) {
	mComposing.setLength(0);
	mComposing.append(text);
	
    if (mCompletionOn && mCompletions != null && index >= 0
            && index < mCompletions.length) {
        CompletionInfo ci = mCompletions[index];
        getCurrentInputConnection().commitCompletion(ci);
        if (mCandidateView != null) {
            mCandidateView.clear();
        }
    } else if (mComposing.length() > 0) {
        // If we were generating candidate suggestions for the current
        // text, we would commit one of them here.  But for this sample,
        // we will just commit the current text.
        commitTyped(getCurrentInputConnection());
    }
}
 
源代码7 项目: android_9.0.0_r45   文件: InputMethodService.java
/**
 * Call {@link InputMethodService#onDisplayCompletions
 * InputMethodService.onDisplayCompletions()}.
 */
public void displayCompletions(CompletionInfo[] completions) {
    if (!isEnabled()) {
        return;
    }
    mCurCompletions = completions;
    onDisplayCompletions(completions);
}
 
源代码8 项目: android_9.0.0_r45   文件: InputMethodService.java
private void resetStateForNewConfiguration() {
    boolean visible = mWindowVisible;
    int showFlags = mShowInputFlags;
    boolean showingInput = mShowInputRequested;
    CompletionInfo[] completions = mCurCompletions;
    initViews();
    mInputViewStarted = false;
    mCandidatesViewStarted = false;
    if (mInputStarted) {
        doStartInput(getCurrentInputConnection(),
                getCurrentInputEditorInfo(), true);
    }
    if (visible) {
        if (showingInput) {
            // If we were last showing the soft keyboard, try to do so again.
            if (dispatchOnShowInputRequested(showFlags, true)) {
                showWindow(true);
                if (completions != null) {
                    mCurCompletions = completions;
                    onDisplayCompletions(completions);
                }
            } else {
                doHideWindow();
            }
        } else if (mCandidatesVisibility == View.VISIBLE) {
            // If the candidates are currently visible, make sure the
            // window is shown for them.
            showWindow(false);
        } else {
            // Otherwise hide the window.
            doHideWindow();
        }
        // If user uses hard keyboard, IME button should always be shown.
        boolean showing = onEvaluateInputViewShown();
        mImm.setImeWindowStatus(mToken, mStartInputToken,
                IME_ACTIVE | (showing ? IME_VISIBLE : 0), mBackDisposition);
    }
}
 
源代码9 项目: android_9.0.0_r45   文件: AutoCompleteTextView.java
private void buildImeCompletions() {
    final ListAdapter adapter = mAdapter;
    if (adapter != null) {
        InputMethodManager imm = InputMethodManager.peekInstance();
        if (imm != null) {
            final int count = Math.min(adapter.getCount(), 20);
            CompletionInfo[] completions = new CompletionInfo[count];
            int realCount = 0;

            for (int i = 0; i < count; i++) {
                if (adapter.isEnabled(i)) {
                    Object item = adapter.getItem(i);
                    long id = adapter.getItemId(i);
                    completions[realCount] = new CompletionInfo(id, realCount,
                            convertSelectionToString(item));
                    realCount++;
                }
            }

            if (realCount != count) {
                CompletionInfo[] tmp = new CompletionInfo[realCount];
                System.arraycopy(completions, 0, tmp, 0, realCount);
                completions = tmp;
            }

            imm.displayCompletions(this, completions);
        }
    }
}
 
源代码10 项目: openboard   文件: RichInputConnection.java
public void commitCompletion(final CompletionInfo completionInfo) {
    if (DEBUG_BATCH_NESTING) checkBatchEdit();
    if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
    CharSequence text = completionInfo.getText();
    // text should never be null, but just in case, it's better to insert nothing than to crash
    if (null == text) text = "";
    mCommittedTextBeforeComposingText.append(text);
    mExpectedSelStart += text.length() - mComposingText.length();
    mExpectedSelEnd = mExpectedSelStart;
    mComposingText.setLength(0);
    if (isConnected()) {
        mIC.commitCompletion(completionInfo);
    }
    if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
}
 
源代码11 项目: openboard   文件: CompletionInfoUtils.java
public static CompletionInfo[] removeNulls(final CompletionInfo[] src) {
    int j = 0;
    final CompletionInfo[] dst = new CompletionInfo[src.length];
    for (int i = 0; i < src.length; ++i) {
        if (null != src[i] && !TextUtils.isEmpty(src[i].getText())) {
            dst[j] = src[i];
            ++j;
        }
    }
    return Arrays.copyOfRange(dst, 0, j);
}
 
源代码12 项目: openboard   文件: LatinIME.java
@Override
public void onDisplayCompletions(final CompletionInfo[] applicationSpecifiedCompletions) {
    if (DebugFlags.DEBUG_ENABLED) {
        Log.i(TAG, "Received completions:");
        if (applicationSpecifiedCompletions != null) {
            for (int i = 0; i < applicationSpecifiedCompletions.length; i++) {
                Log.i(TAG, "  #" + i + ": " + applicationSpecifiedCompletions[i]);
            }
        }
    }
    if (!mSettings.getCurrent().isApplicationSpecifiedCompletionsOn()) {
        return;
    }
    // If we have an update request in flight, we need to cancel it so it does not override
    // these completions.
    mHandler.cancelUpdateSuggestionStrip();
    if (applicationSpecifiedCompletions == null) {
        setNeutralSuggestionStrip();
        return;
    }

    final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
            SuggestedWords.getFromApplicationSpecifiedCompletions(
                    applicationSpecifiedCompletions);
    final SuggestedWords suggestedWords = new SuggestedWords(applicationSuggestedWords,
            null /* rawSuggestions */,
            null /* typedWord */,
            false /* typedWordValid */,
            false /* willAutoCorrect */,
            false /* isObsoleteSuggestions */,
            SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED /* inputStyle */,
            SuggestedWords.NOT_A_SEQUENCE_NUMBER);
    // When in fullscreen mode, show completions generated by the application forcibly
    setSuggestedWords(suggestedWords);
}
 
源代码13 项目: openboard   文件: SuggestedWords.java
public static ArrayList<SuggestedWordInfo> getFromApplicationSpecifiedCompletions(
        final CompletionInfo[] infos) {
    final ArrayList<SuggestedWordInfo> result = new ArrayList<>();
    for (final CompletionInfo info : infos) {
        if (null == info || null == info.getText()) {
            continue;
        }
        result.add(new SuggestedWordInfo(info));
    }
    return result;
}
 
源代码14 项目: openboard   文件: SuggestedWords.java
/**
 * Create a new suggested word info from an application-specified completion.
 * If the passed argument or its contained text is null, this throws a NPE.
 * @param applicationSpecifiedCompletion The application-specified completion info.
 */
public SuggestedWordInfo(final CompletionInfo applicationSpecifiedCompletion) {
    mWord = applicationSpecifiedCompletion.getText().toString();
    mPrevWordsContext = "";
    mApplicationSpecifiedCompletionInfo = applicationSpecifiedCompletion;
    mScore = SuggestedWordInfo.MAX_SCORE;
    mKindAndFlags = SuggestedWordInfo.KIND_APP_DEFINED;
    mSourceDict = Dictionary.DICTIONARY_APPLICATION_DEFINED;
    mCodePointCount = StringUtils.codePointCount(mWord);
    mIndexOfTouchPointOfSecondWord = SuggestedWordInfo.NOT_AN_INDEX;
    mAutoCommitFirstWordConfidence = SuggestedWordInfo.NOT_A_CONFIDENCE;
}
 
源代码15 项目: Android-Keyboard   文件: LatinIME.java
@Override
public void onDisplayCompletions(final CompletionInfo[] applicationSpecifiedCompletions) {
    if (DebugFlags.DEBUG_ENABLED) {
        Log.i(TAG, "Received completions:");
        if (applicationSpecifiedCompletions != null) {
            for (int i = 0; i < applicationSpecifiedCompletions.length; i++) {
                Log.i(TAG, "  #" + i + ": " + applicationSpecifiedCompletions[i]);
            }
        }
    }
    if (!mSettings.getCurrent().isApplicationSpecifiedCompletionsOn()) {
        return;
    }
    // If we have an update request in flight, we need to cancel it so it does not override
    // these completions.
    mHandler.cancelUpdateSuggestionStrip();
    if (applicationSpecifiedCompletions == null) {
        setNeutralSuggestionStrip();
        return;
    }

    final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
            SuggestedWords.getFromApplicationSpecifiedCompletions(
                    applicationSpecifiedCompletions);
    final SuggestedWords suggestedWords = new SuggestedWords(applicationSuggestedWords,
            null /* rawSuggestions */,
            null /* typedWord */,
            false /* typedWordValid */,
            false /* willAutoCorrect */,
            false /* isObsoleteSuggestions */,
            SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED /* inputStyle */,
            SuggestedWords.NOT_A_SEQUENCE_NUMBER);
    // When in fullscreen mode, show completions generated by the application forcibly
    setSuggestedWords(suggestedWords);
}
 
public boolean commitCompletion(CompletionInfo text) {
    if (DEBUG) Log.v(TAG, "commitCompletion " + text);
    mTextView.beginBatchEdit();
    mTextView.onCommitCompletion(text);
    mTextView.endBatchEdit();
    return true;
}
 
源代码17 项目: AOSP-Kayboard-7.1.2   文件: RichInputConnection.java
public void commitCompletion(final CompletionInfo completionInfo) {
    if (DEBUG_BATCH_NESTING) checkBatchEdit();
    if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
    CharSequence text = completionInfo.getText();
    // text should never be null, but just in case, it's better to insert nothing than to crash
    if (null == text) text = "";
    mCommittedTextBeforeComposingText.append(text);
    mExpectedSelStart += text.length() - mComposingText.length();
    mExpectedSelEnd = mExpectedSelStart;
    mComposingText.setLength(0);
    if (isConnected()) {
        mIC.commitCompletion(completionInfo);
    }
    if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
}
 
源代码18 项目: AOSP-Kayboard-7.1.2   文件: CompletionInfoUtils.java
public static CompletionInfo[] removeNulls(final CompletionInfo[] src) {
    int j = 0;
    final CompletionInfo[] dst = new CompletionInfo[src.length];
    for (int i = 0; i < src.length; ++i) {
        if (null != src[i] && !TextUtils.isEmpty(src[i].getText())) {
            dst[j] = src[i];
            ++j;
        }
    }
    return Arrays.copyOfRange(dst, 0, j);
}
 
源代码19 项目: AOSP-Kayboard-7.1.2   文件: LatinIME.java
@Override
public void onDisplayCompletions(final CompletionInfo[] applicationSpecifiedCompletions) {
    if (DebugFlags.DEBUG_ENABLED) {
        Log.i(TAG, "Received completions:");
        if (applicationSpecifiedCompletions != null) {
            for (int i = 0; i < applicationSpecifiedCompletions.length; i++) {
                Log.i(TAG, "  #" + i + ": " + applicationSpecifiedCompletions[i]);
            }
        }
    }
    if (!mSettings.getCurrent().isApplicationSpecifiedCompletionsOn()) {
        return;
    }
    // If we have an update request in flight, we need to cancel it so it does not override
    // these completions.
    mHandler.cancelUpdateSuggestionStrip();
    if (applicationSpecifiedCompletions == null) {
        setNeutralSuggestionStrip();
        return;
    }

    final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
            SuggestedWords.getFromApplicationSpecifiedCompletions(
                    applicationSpecifiedCompletions);
    final SuggestedWords suggestedWords = new SuggestedWords(applicationSuggestedWords,
            null /* rawSuggestions */,
            null /* typedWord */,
            false /* typedWordValid */,
            false /* willAutoCorrect */,
            false /* isObsoleteSuggestions */,
            SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED /* inputStyle */,
            SuggestedWords.NOT_A_SEQUENCE_NUMBER);
    // When in fullscreen mode, show completions generated by the application forcibly
    setSuggestedWords(suggestedWords);
}
 
源代码20 项目: AOSP-Kayboard-7.1.2   文件: SuggestedWords.java
public static ArrayList<SuggestedWordInfo> getFromApplicationSpecifiedCompletions(
        final CompletionInfo[] infos) {
    final ArrayList<SuggestedWordInfo> result = new ArrayList<>();
    for (final CompletionInfo info : infos) {
        if (null == info || null == info.getText()) {
            continue;
        }
        result.add(new SuggestedWordInfo(info));
    }
    return result;
}
 
源代码21 项目: AOSP-Kayboard-7.1.2   文件: SuggestedWords.java
/**
 * Create a new suggested word info from an application-specified completion.
 * If the passed argument or its contained text is null, this throws a NPE.
 * @param applicationSpecifiedCompletion The application-specified completion info.
 */
public SuggestedWordInfo(final CompletionInfo applicationSpecifiedCompletion) {
    mWord = applicationSpecifiedCompletion.getText().toString();
    mPrevWordsContext = "";
    mApplicationSpecifiedCompletionInfo = applicationSpecifiedCompletion;
    mScore = SuggestedWordInfo.MAX_SCORE;
    mKindAndFlags = SuggestedWordInfo.KIND_APP_DEFINED;
    mSourceDict = Dictionary.DICTIONARY_APPLICATION_DEFINED;
    mCodePointCount = StringUtils.codePointCount(mWord);
    mIndexOfTouchPointOfSecondWord = SuggestedWordInfo.NOT_AN_INDEX;
    mAutoCommitFirstWordConfidence = SuggestedWordInfo.NOT_A_CONFIDENCE;
}
 
源代码22 项目: JotaTextEditor   文件: EditableInputConnection.java
public boolean commitCompletion(CompletionInfo text) {
    if (DEBUG) Log.v(TAG, "commitCompletion " + text);
    mTextView.beginBatchEdit();
    mTextView.onCommitCompletion(text);
    mTextView.endBatchEdit();
    return true;
}
 
源代码23 项目: adt-leanback-support   文件: SearchBar.java
/**
 * Update the completion list shown by the IME
 *
 * @param completions list of completions shown in the IME, can be null or empty to clear them
 */
public void displayCompletions(List<String> completions) {
    List<CompletionInfo> infos = new ArrayList<CompletionInfo>();
    if (null != completions) {
        for (String completion : completions) {
            infos.add(new CompletionInfo(infos.size(), infos.size(), completion));
        }
    }

    mInputMethodManager.displayCompletions(mSearchTextEditor,
            infos.toArray(new CompletionInfo[] {}));
}
 
源代码24 项目: Indic-Keyboard   文件: LatinIME.java
@Override
public void onDisplayCompletions(final CompletionInfo[] applicationSpecifiedCompletions) {
    if (DebugFlags.DEBUG_ENABLED) {
        Log.i(TAG, "Received completions:");
        if (applicationSpecifiedCompletions != null) {
            for (int i = 0; i < applicationSpecifiedCompletions.length; i++) {
                Log.i(TAG, "  #" + i + ": " + applicationSpecifiedCompletions[i]);
            }
        }
    }
    if (!mSettings.getCurrent().isApplicationSpecifiedCompletionsOn()) {
        return;
    }
    // If we have an update request in flight, we need to cancel it so it does not override
    // these completions.
    mHandler.cancelUpdateSuggestionStrip();
    if (applicationSpecifiedCompletions == null) {
        setNeutralSuggestionStrip();
        return;
    }

    final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
            SuggestedWords.getFromApplicationSpecifiedCompletions(
                    applicationSpecifiedCompletions);
    final SuggestedWords suggestedWords = new SuggestedWords(applicationSuggestedWords,
            null /* rawSuggestions */,
            null /* typedWord */,
            false /* typedWordValid */,
            false /* willAutoCorrect */,
            false /* isObsoleteSuggestions */,
            SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED /* inputStyle */,
            SuggestedWords.NOT_A_SEQUENCE_NUMBER);
    // When in fullscreen mode, show completions generated by the application forcibly
    setSuggestedWords(suggestedWords);
}
 
源代码25 项目: Indic-Keyboard   文件: RichInputConnection.java
public void commitCompletion(final CompletionInfo completionInfo) {
    if (DEBUG_BATCH_NESTING) checkBatchEdit();
    if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
    CharSequence text = completionInfo.getText();
    // text should never be null, but just in case, it's better to insert nothing than to crash
    if (null == text) text = "";
    mCommittedTextBeforeComposingText.append(text);
    mExpectedSelStart += text.length() - mComposingText.length();
    mExpectedSelEnd = mExpectedSelStart;
    mComposingText.setLength(0);
    if (isConnected()) {
        mIC.commitCompletion(completionInfo);
    }
    if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
}
 
源代码26 项目: Indic-Keyboard   文件: CompletionInfoUtils.java
public static CompletionInfo[] removeNulls(final CompletionInfo[] src) {
    int j = 0;
    final CompletionInfo[] dst = new CompletionInfo[src.length];
    for (int i = 0; i < src.length; ++i) {
        if (null != src[i] && !TextUtils.isEmpty(src[i].getText())) {
            dst[j] = src[i];
            ++j;
        }
    }
    return Arrays.copyOfRange(dst, 0, j);
}
 
源代码27 项目: Indic-Keyboard   文件: SuggestedWords.java
public static ArrayList<SuggestedWordInfo> getFromApplicationSpecifiedCompletions(
        final CompletionInfo[] infos) {
    final ArrayList<SuggestedWordInfo> result = new ArrayList<>();
    for (final CompletionInfo info : infos) {
        if (null == info || null == info.getText()) {
            continue;
        }
        result.add(new SuggestedWordInfo(info));
    }
    return result;
}
 
源代码28 项目: Indic-Keyboard   文件: SuggestedWords.java
/**
 * Create a new suggested word info from an application-specified completion.
 * If the passed argument or its contained text is null, this throws a NPE.
 * @param applicationSpecifiedCompletion The application-specified completion info.
 */
public SuggestedWordInfo(final CompletionInfo applicationSpecifiedCompletion) {
    mWord = applicationSpecifiedCompletion.getText().toString();
    mPrevWordsContext = "";
    mApplicationSpecifiedCompletionInfo = applicationSpecifiedCompletion;
    mScore = SuggestedWordInfo.MAX_SCORE;
    mKindAndFlags = SuggestedWordInfo.KIND_APP_DEFINED;
    mSourceDict = Dictionary.DICTIONARY_APPLICATION_DEFINED;
    mCodePointCount = StringUtils.codePointCount(mWord);
    mIndexOfTouchPointOfSecondWord = SuggestedWordInfo.NOT_AN_INDEX;
    mAutoCommitFirstWordConfidence = SuggestedWordInfo.NOT_A_CONFIDENCE;
}
 
@Override
public void displayCompletions(CompletionInfo[] completions) {
    mCaller.executeOrSendMessage(mCaller.obtainMessageO(
            DO_DISPLAY_COMPLETIONS, completions));
}
 
源代码30 项目: android_9.0.0_r45   文件: AutoCompleteTextView.java
@Override
public void onCommitCompletion(CompletionInfo completion) {
    if (isPopupShowing()) {
        mPopup.performItemClick(completion.getPosition());
    }
}
 
 类所在包
 类方法
 同包方法