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

Commit fd70fe8f authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Deprecate InputMethodUtils#isSystemIme() part 1

There are not a small number of files that import InputMethodUtils
just to use InputMethodUtils#isSystemIme() is necessary.

In order to make InputMethodUtils purely an internal utility library,
it would make much more sense if the logic is implemented as a private
API of InputMethodInfo, like methods like
InputMethodInfo#isAuxiliaryIme(), rather than in a static method of
InputMethodUtils.

This is a purely mechanical refactoring.  There should be no behavior
change.

Bug: 77730201
Test: atest FrameworksCoreTests:com.android.internal.inputmethod.InputMethodUtilsTest
Change-Id: I9c8518988787b748ebb35fc86fe6beee1d6c633d
parent 5310da6c
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -501,6 +501,14 @@ public final class InputMethodInfo implements Parcelable {
        return mId.hashCode();
    }

    /**
     * @hide
     * @return {@code true} if the IME is a trusted system component (e.g. pre-installed)
     */
    public boolean isSystem() {
        return (mService.serviceInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
    }

    /**
     * @hide
     */
+8 −9
Original line number Diff line number Diff line
@@ -129,16 +129,16 @@ public class InputMethodUtils {
    }
    // ----------------------------------------------------------------------

    public static boolean isSystemIme(InputMethodInfo inputMethod) {
        return (inputMethod.getServiceInfo().applicationInfo.flags
                & ApplicationInfo.FLAG_SYSTEM) != 0;
    @Deprecated
    public static boolean isSystemIme(@NonNull InputMethodInfo inputMethod) {
        return inputMethod.isSystem();
    }

    public static boolean isSystemImeThatHasSubtypeOf(final InputMethodInfo imi,
            final Context context, final boolean checkDefaultAttribute,
            @Nullable final Locale requiredLocale, final boolean checkCountry,
            final String requiredSubtypeMode) {
        if (!isSystemIme(imi)) {
        if (!imi.isSystem()) {
            return false;
        }
        if (checkDefaultAttribute && !imi.isDefault(context)) {
@@ -182,7 +182,7 @@ public class InputMethodUtils {

    private static boolean isSystemAuxilialyImeThatHasAutomaticSubtype(final InputMethodInfo imi,
            final Context context, final boolean checkDefaultAttribute) {
        if (!isSystemIme(imi)) {
        if (!imi.isSystem()) {
            return false;
        }
        if (checkDefaultAttribute && !imi.isDefault(context)) {
@@ -435,12 +435,11 @@ public class InputMethodUtils {
            if (imi.isAuxiliaryIme()) {
                continue;
            }
            if (InputMethodUtils.isSystemIme(imi)
                    && containsSubtypeOf(imi, ENGLISH_LOCALE, false /* checkCountry */,
                            SUBTYPE_MODE_KEYBOARD)) {
            if (imi.isSystem() && containsSubtypeOf(
                    imi, ENGLISH_LOCALE, false /* checkCountry */, SUBTYPE_MODE_KEYBOARD)) {
                return imi;
            }
            if (firstFoundSystemIme < 0 && InputMethodUtils.isSystemIme(imi)) {
            if (firstFoundSystemIme < 0 && imi.isSystem()) {
                firstFoundSystemIme = i;
            }
        }
+1 −2
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodSubtype;

import com.android.internal.app.LocaleHelper;
import com.android.internal.inputmethod.InputMethodUtils;

import java.util.HashMap;
import java.util.HashSet;
@@ -176,7 +175,7 @@ public class InputMethodAndSubtypeUtil {
                    ((TwoStatePreference) pref).isChecked()
                    : enabledIMEsAndSubtypesMap.containsKey(imiId);
            final boolean isCurrentInputMethod = imiId.equals(currentInputMethodId);
            final boolean systemIme = InputMethodUtils.isSystemIme(imi);
            final boolean systemIme = imi.isSystem();
            if ((!hasHardKeyboard && InputMethodSettingValuesWrapper.getInstance(
                    context.getActivity()).isAlwaysCheckedIme(imi, context.getActivity()))
                    || isImeChecked) {
+2 −3
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import android.view.inputmethod.InputMethodSubtype;
import android.widget.Toast;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.inputmethod.InputMethodUtils;
import com.android.settingslib.R;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedSwitchPreference;
@@ -124,7 +123,7 @@ public class InputMethodPreference extends RestrictedSwitchPreference implements
            setIntent(intent);
        }
        mInputMethodSettingValues = InputMethodSettingValuesWrapper.getInstance(context);
        mHasPriorityInSorting = InputMethodUtils.isSystemIme(imi)
        mHasPriorityInSorting = imi.isSystem()
                && mInputMethodSettingValues.isValidSystemNonAuxAsciiCapableIme(imi, context);
        setOnPreferenceClickListener(this);
        setOnPreferenceChangeListener(this);
@@ -153,7 +152,7 @@ public class InputMethodPreference extends RestrictedSwitchPreference implements
            setCheckedInternal(false);
            return false;
        }
        if (InputMethodUtils.isSystemIme(mImi)) {
        if (mImi.isSystem()) {
            // Enable a system IME. No need to show a security warning dialog,
            // but we might need to prompt if it's not Direct Boot aware.
            // TV doesn't doesn't need to worry about this, but other platforms should show
+1 −1
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ public class InputMethodSettingValuesWrapper {

        return enabledValidSystemNonAuxAsciiCapableImeCount <= 1
                && !(enabledValidSystemNonAuxAsciiCapableImeCount == 1 && !isEnabled)
                && InputMethodUtils.isSystemIme(imi)
                && imi.isSystem()
                && isValidSystemNonAuxAsciiCapableIme(imi, context);

    }
Loading