Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 991b1ef8 authored by Jean Chalard's avatar Jean Chalard Committed by Android Git Automerger
Browse files

am 02ce3dc2: Fix a bug with bad application completions

* commit '02ce3dc2':
  Fix a bug with bad application completions
parents 68b392cc 02ce3dc2
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.inputmethod.latin;

import android.text.TextUtils;
import android.view.inputmethod.CompletionInfo;

import java.util.Arrays;

/**
 * Utilities to do various stuff with CompletionInfo.
 */
public class CompletionInfoUtils {
    private CompletionInfoUtils() {
        // This utility class is not publicly instantiable.
    }

    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);
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -983,7 +983,8 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
            }
        }
        if (!mSettings.getCurrent().isApplicationSpecifiedCompletionsOn()) return;
        mApplicationSpecifiedCompletions = applicationSpecifiedCompletions;
        mApplicationSpecifiedCompletions =
                CompletionInfoUtils.removeNulls(applicationSpecifiedCompletions);
        if (applicationSpecifiedCompletions == null) {
            clearSuggestionStrip();
            if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
+3 −1
Original line number Diff line number Diff line
@@ -392,7 +392,9 @@ public final class RichInputConnection {
    public void commitCompletion(final CompletionInfo completionInfo) {
        if (DEBUG_BATCH_NESTING) checkBatchEdit();
        if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
        final CharSequence text = completionInfo.getText();
        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);