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

项目:keepass2android    文件:KP2AKeyboard.java   
@Override
public void onDisplayCompletions(CompletionInfo[] completions) {
    if (DEBUG) {
        Log.i("foo", "Received completions:");
        for (int i=0; i<(completions != null ? completions.length : 0); i++) {
            Log.i("foo", "  #" + i + ": " + completions[i]);
        }
    }
    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);
    }
}
项目:behe-keyboard    文件:PCKeyboard.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);
    }
}
项目:behe-keyboard    文件:PCKeyboard.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 (mPredictionOn && mSuggestions != null && index >= 0) {
            mComposing.replace(0, mComposing.length(), mSuggestions.get(index));
        }
        commitTyped(getCurrentInputConnection());

    }
}
项目:javaide    文件: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());
    }
}
项目:QuranKeyboard    文件:QuranKeyboardIME.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);
            return;
        }

        List<String> stringList = new ArrayList<>();
        for (CompletionInfo ci : completions) {
            if (ci != null) stringList.add(ci.getText().toString());
        }
        setSuggestions(stringList, true);
    }
}
项目:KeePass2Android    文件:KP2AKeyboard.java   
@Override
public void onDisplayCompletions(CompletionInfo[] completions) {
    if (DEBUG) {
        Log.i("foo", "Received completions:");
        for (int i=0; i<(completions != null ? completions.length : 0); i++) {
            Log.i("foo", "  #" + i + ": " + completions[i]);
        }
    }
    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);
    }
}
项目:tibetan-keyboard    文件: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 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 != null ? completions.length : 0); i++) {
            CompletionInfo ci = completions[i];
            if (ci != null) stringList.add(ci.getText().toString());
        }
        setSuggestions(stringList, true, true);
    }
}
项目:tibetan-keyboard    文件: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.
        commitTyped(getCurrentInputConnection());
    }
}
项目:accentype-android    文件: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 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, 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, null, true, true);
    }
}
项目:literatim    文件: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 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((List<Suggestion>) null, false, false);
            return;
        }

        List<Suggestion> suggestions = new ArrayList<Suggestion>();
        for (int i=0; i<(completions != null ? completions.length : 0); i++) {
            CompletionInfo ci = completions[i];
            if (ci != null) suggestions.add(new Suggestion(0, ci.getText().toString()));
        }
        this.suggestions = null;
        setSuggestions(suggestions, true, true);
    }
}
项目:accentype-android    文件: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 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, 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, null, true, true);
    }
}
项目: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);
    }
}
项目: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());
    }
}
项目:ZShaolin    文件: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());
    }
}
项目:animal    文件:AnimalKeyboard.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);
    }
}
项目:animal    文件:AnimalKeyboard.java   
public void pickSuggestionManually(int index) {
    if (mCompletionOn && mCompletions != null && index >= 0
            && index < mCompletions.length) {
        CompletionInfo ci = mCompletions[index];
        getCurrentInputConnection().commitCompletion(ci);
        store("["+ci.getText().toString()+"]");
        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());
    }
}
项目:android-kioskime    文件: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);
    mCurrentCursorPosition += text.length() - mComposingText.length();
    mComposingText.setLength(0);
    if (null != mIC) {
        mIC.commitCompletion(completionInfo);
        if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
            ResearchLogger.richInputConnection_commitCompletion(completionInfo);
        }
    }
    if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
}
项目: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();
}
项目: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);
}
项目: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);
}
项目: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;
}
项目: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;
}
项目:accentype-android    文件: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) {
        commitTyped(getCurrentInputConnection(), index);
    }
}
项目:hackerskeyboard    文件:LatinIME.java   
@Override
public void onDisplayCompletions(CompletionInfo[] completions) {
    if (DEBUG) {
        Log.i("foo", "Received completions:");
        for (int i = 0; i < (completions != null ? completions.length : 0); i++) {
            Log.i("foo", "  #" + i + ": " + completions[i]);
        }
    }
    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);
    }
}
项目:literatim    文件:SoftKeyboard.java   
public void pickCandidateManually(int index) {
    InputConnection ic = getCurrentInputConnection();
    if (mCompletionOn && mCompletions != null && index >= 0 && index < mCompletions.length) {
        CompletionInfo ci = mCompletions[index];
        ic.commitCompletion(ci);
        if (mCandidateView != null) {
            mCandidateView.clear();
        }
        updateShiftKeyState(getCurrentInputEditorInfo());
    } else if (suggestions != null && index < suggestions.size()) {
        String text = lexicon.getSuggestionText(mComposing.toString(), suggestions.get(index));
        if (text.charAt(0) == '\'') {
            // test to make sure we don't insert double ''
            CharSequence lastChar = ic.getTextBeforeCursor(1, 0);
            if (lastChar.charAt(0) == '\'') {
                text = text.substring(1);
            }
        }
        mComposing.setLength(0);
        mComposing.append(text);
        commitWithSpacing(ic);

    }
    else if (mComposing.length() > 0) {
        // Strange error; just commit the current text
        commitWithSpacing(ic);
    }
}
项目:accentype-android    文件: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) {
        commitTyped(getCurrentInputConnection(), index);
    }
}
项目:JotaTextEditor    文件:EditableInputConnection.java   
public boolean commitCompletion(CompletionInfo text) {
    if (DEBUG) Log.v(TAG, "commitCompletion " + text);
    mTextView.beginBatchEdit();
    mTextView.onCommitCompletion(text);
    mTextView.endBatchEdit();
    return true;
}
项目: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[] {}));
}
项目:gloomy-dungeons-2    文件:AutoCompleteTextView.java   
private void buildImeCompletions() {
    final ListAdapter adapter = mAdapter;
    if (adapter != null) {
        InputMethodManager imm = (InputMethodManager) getContext()
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        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);
        }
    }
}
项目:laposte-android    文件:AutoCompleteTextView.java   
private void buildImeCompletions() {
    final ListAdapter adapter = mAdapter;
    if (adapter != null) {
        InputMethodManager imm = (InputMethodManager) getContext()
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        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);
        }
    }
}
项目:BAGO_TS    文件:KeyboardService.java   
@Override public void onDisplayCompletions(CompletionInfo[] completions) {
    if (CompletionOn) {
        Completions = completions;
        if (completions == null) {
            return;
        }

        List<String> stringList = new ArrayList<String>();
        for (int i=0; i<(completions != null ? completions.length : 0); i++) {
            CompletionInfo ci = completions[i];
            if (ci != null) stringList.add(ci.getText().toString());
        }
    }
}
项目:BAGO_TS    文件:KeyboardService.java   
public void pickSuggestionManually(int index) {
    if (CompletionOn && Completions != null && index >= 0
            && index < Completions.length) {
        CompletionInfo ci = Completions[index];
        getCurrentInputConnection().commitCompletion(ci);
        /*if (mCandidateView != null) {
            mCandidateView.clear();
        }*/
        updateShiftKeyState(getCurrentInputEditorInfo());
    } else if (Composing.length() > 0) {
        commitTyped(getCurrentInputConnection());
    }
}
项目:android-kioskime    文件:ResearchLogger.java   
public static void latinIME_onDisplayCompletions(
        final CompletionInfo[] applicationSpecifiedCompletions) {
    // Note; passing an array as a single element in a vararg list.  Must create a new
    // dummy array around it or it will get expanded.
    getInstance().enqueueEvent(LOGSTATEMENT_LATINIME_ONDISPLAYCOMPLETIONS,
            new Object[] { applicationSpecifiedCompletions });
}
项目:android-kioskime    文件:JsonUtils.java   
static void writeJson(final CompletionInfo[] ci, final JsonWriter jsonWriter)
        throws IOException {
    jsonWriter.beginArray();
    for (int j = 0; j < ci.length; j++) {
        jsonWriter.value(ci[j].toString());
    }
    jsonWriter.endArray();
}
项目:android-kioskime    文件: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);
}
项目:android-kioskime    文件:LatinIME.java   
@Override
public void onDisplayCompletions(final CompletionInfo[] applicationSpecifiedCompletions) {
    if (DEBUG) {
        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 (applicationSpecifiedCompletions == null) {
        clearSuggestionStrip();
        if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
            ResearchLogger.latinIME_onDisplayCompletions(null);
        }
        return;
    }
    mApplicationSpecifiedCompletions =
            CompletionInfoUtils.removeNulls(applicationSpecifiedCompletions);

    final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
            SuggestedWords.getFromApplicationSpecifiedCompletions(
                    applicationSpecifiedCompletions);
    final SuggestedWords suggestedWords = new SuggestedWords(
            applicationSuggestedWords,
            false /* typedWordValid */,
            false /* hasAutoCorrectionCandidate */,
            false /* isPunctuationSuggestions */,
            false /* isObsoleteSuggestions */,
            false /* isPrediction */);
    // When in fullscreen mode, show completions generated by the application
    final boolean isAutoCorrection = false;
    setSuggestedWords(suggestedWords, isAutoCorrection);
    setAutoCorrectionIndicator(isAutoCorrection);
    setSuggestionStripShown(true);
    if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
        ResearchLogger.latinIME_onDisplayCompletions(applicationSpecifiedCompletions);
    }
}
项目:android-kioskime    文件:SuggestedWords.java   
public static ArrayList<SuggestedWordInfo> getFromApplicationSpecifiedCompletions(
        final CompletionInfo[] infos) {
    final ArrayList<SuggestedWordInfo> result = CollectionUtils.newArrayList();
    for (final CompletionInfo info : infos) {
        if (info == null) continue;
        final CharSequence text = info.getText();
        if (null == text) continue;
        final SuggestedWordInfo suggestedWordInfo = new SuggestedWordInfo(text.toString(),
                SuggestedWordInfo.MAX_SCORE, SuggestedWordInfo.KIND_APP_DEFINED,
                Dictionary.TYPE_APPLICATION_DEFINED);
        result.add(suggestedWordInfo);
    }
    return result;
}
项目:TflTravelAlerts    文件:AutoCompleteTextView.java   
private void buildImeCompletions() {
    final ListAdapter adapter = mAdapter;
    if (adapter != null) {
        InputMethodManager imm = (InputMethodManager) getContext()
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        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);
        }
    }
}
项目:Auto.js    文件:InputConnectProxy.java   
@Override
public boolean commitCompletion(CompletionInfo text) {
    return mInputConnection.commitCompletion(text);
}
项目:QuranKeyboard    文件:QuranKeyboardIME.java   
public void pickSuggestionManually(int index) {
    if (index < 0) {
        // assert
        return;
    }

    if (mCompletionOn && mCompletions != null && index < mCompletions.length) {
        CompletionInfo ci = mCompletions[index];
        getCurrentInputConnection().commitCompletion(ci);
        if (mCandidateView != null) {
            mCandidateView.clear();
        }
        return;
    }

    if (mComposing.length() > 0) {
        String s;
        // Commit the candidate suggestion for the current text.
        if(index < mSuggestions.size()) {
            s = mSuggestions.get(index);
            getCurrentInputConnection().commitText(s, s.length());
        }
        else if (index < mQuranSuggestions.size()) {
            AyaMatch m = mQuranSuggestions.get(index);
            SpannableStringBuilder txt = new SpannableStringBuilder(m.strBld);
            int len = m.len;

            txt.insert(0, "﴿");
            len++;
            txt.insert(len - m.slen, "﴾");
            len++;

            // separate Quran from following text with a dot
            txt.append('.');
            len++;
            if (getPrefRasm() == Rasm.UTHMANI /*&& mUthmaniTypeFace != null*/) {
                txt.setSpan(new CustomTypefaceSpan(getUthmaniTypeFace()), 0, len, 0);
            }
            Toast.makeText(this, txt.subSequence(0, len), Toast.LENGTH_LONG).show();

            for (int i = 0; i < mSavedPreSpaces; i++) txt.insert(0, " ");
            len += mSavedPreSpaces;
            getCurrentInputConnection().commitText(txt.subSequence(0, len), len);
            mSavedPreSpaces = 0;
        }
        mComposing.setLength(0);
        updateCandidates();
    }
}