Loading core/java/android/view/inputmethod/InputMethodInfo.java +8 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading core/java/com/android/internal/inputmethod/InputMethodUtils.java +8 −9 Original line number Diff line number Diff line Loading @@ -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)) { Loading Loading @@ -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)) { Loading Loading @@ -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; } } Loading packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtil.java +1 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodPreference.java +2 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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 Loading packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodSettingValuesWrapper.java +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ public class InputMethodSettingValuesWrapper { return enabledValidSystemNonAuxAsciiCapableImeCount <= 1 && !(enabledValidSystemNonAuxAsciiCapableImeCount == 1 && !isEnabled) && InputMethodUtils.isSystemIme(imi) && imi.isSystem() && isValidSystemNonAuxAsciiCapableIme(imi, context); } Loading Loading
core/java/android/view/inputmethod/InputMethodInfo.java +8 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading
core/java/com/android/internal/inputmethod/InputMethodUtils.java +8 −9 Original line number Diff line number Diff line Loading @@ -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)) { Loading Loading @@ -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)) { Loading Loading @@ -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; } } Loading
packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtil.java +1 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading
packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodPreference.java +2 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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 Loading
packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodSettingValuesWrapper.java +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ public class InputMethodSettingValuesWrapper { return enabledValidSystemNonAuxAsciiCapableImeCount <= 1 && !(enabledValidSystemNonAuxAsciiCapableImeCount == 1 && !isEnabled) && InputMethodUtils.isSystemIme(imi) && imi.isSystem() && isValidSystemNonAuxAsciiCapableIme(imi, context); } Loading