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

Commit 48a7a645 authored by Cosmin Băieș's avatar Cosmin Băieș
Browse files

API for IME language settings activity

Introduce a new attribute for InputMethodInfo to define an activity
for IME language settings. This activity allows users to modify the
languages (or keyboard layouts) of the IME.

Test: atest
  InputMethodInfoTest#testEquals
  InputMethodInfoTest#testInputMethodInfoProperties
  InputMethodInfoTest#testInputMethodInfoWriteToParcel
Bug: 311791923
Flag: android.view.inputmethod.ime_switcher_revamp
Change-Id: I18e7c5dc5271bee44e4540b3070b989df4e27c4c
parent f12aa38b
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -1052,6 +1052,7 @@ package android {
    field public static final int label = 16842753; // 0x1010001
    field public static final int label = 16842753; // 0x1010001
    field public static final int labelFor = 16843718; // 0x10103c6
    field public static final int labelFor = 16843718; // 0x10103c6
    field @Deprecated public static final int labelTextSize = 16843317; // 0x1010235
    field @Deprecated public static final int labelTextSize = 16843317; // 0x1010235
    field @FlaggedApi("android.view.inputmethod.ime_switcher_revamp") public static final int languageSettingsActivity;
    field public static final int languageTag = 16844040; // 0x1010508
    field public static final int languageTag = 16844040; // 0x1010508
    field public static final int largeHeap = 16843610; // 0x101035a
    field public static final int largeHeap = 16843610; // 0x101035a
    field public static final int largeScreens = 16843398; // 0x1010286
    field public static final int largeScreens = 16843398; // 0x1010286
@@ -55841,6 +55842,7 @@ package android.view.inputmethod {
  public final class InputMethodInfo implements android.os.Parcelable {
  public final class InputMethodInfo implements android.os.Parcelable {
    ctor public InputMethodInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
    ctor public InputMethodInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
    ctor public InputMethodInfo(String, String, CharSequence, String);
    ctor public InputMethodInfo(String, String, CharSequence, String);
    method @FlaggedApi("android.view.inputmethod.ime_switcher_revamp") @Nullable public android.content.Intent createImeLanguageSettingsActivityIntent();
    method @Nullable public android.content.Intent createStylusHandwritingSettingsActivityIntent();
    method @Nullable public android.content.Intent createStylusHandwritingSettingsActivityIntent();
    method public int describeContents();
    method public int describeContents();
    method public void dump(android.util.Printer, String);
    method public void dump(android.util.Printer, String);
@@ -55860,6 +55862,7 @@ package android.view.inputmethod {
    method public boolean supportsStylusHandwriting();
    method public boolean supportsStylusHandwriting();
    method public boolean suppressesSpellChecker();
    method public boolean suppressesSpellChecker();
    method public void writeToParcel(android.os.Parcel, int);
    method public void writeToParcel(android.os.Parcel, int);
    field @FlaggedApi("android.view.inputmethod.ime_switcher_revamp") public static final String ACTION_IME_LANGUAGE_SETTINGS = "android.view.inputmethod.action.IME_LANGUAGE_SETTINGS";
    field public static final String ACTION_STYLUS_HANDWRITING_SETTINGS = "android.view.inputmethod.action.STYLUS_HANDWRITING_SETTINGS";
    field public static final String ACTION_STYLUS_HANDWRITING_SETTINGS = "android.view.inputmethod.action.STYLUS_HANDWRITING_SETTINGS";
    field @NonNull public static final android.os.Parcelable.Creator<android.view.inputmethod.InputMethodInfo> CREATOR;
    field @NonNull public static final android.os.Parcelable.Creator<android.view.inputmethod.InputMethodInfo> CREATOR;
  }
  }
+1 −1
Original line number Original line Diff line number Diff line
@@ -3894,7 +3894,7 @@ package android.view.inputmethod {
  }
  }


  public final class InputMethodInfo implements android.os.Parcelable {
  public final class InputMethodInfo implements android.os.Parcelable {
    ctor public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, boolean, @NonNull String);
    ctor public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, @NonNull String, boolean, @NonNull String);
    ctor public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, int);
    ctor public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, int);
    field public static final int COMPONENT_NAME_MAX_LENGTH = 1000; // 0x3e8
    field public static final int COMPONENT_NAME_MAX_LENGTH = 1000; // 0x3e8
    field public static final int MAX_IMES_PER_PACKAGE = 20; // 0x14
    field public static final int MAX_IMES_PER_PACKAGE = 20; // 0x14
+2 −0
Original line number Original line Diff line number Diff line
@@ -2189,6 +2189,8 @@ UnflaggedApi: android.view.accessibility.AccessibilityWindowInfo#UNDEFINED_WINDO
    New API must be flagged with @FlaggedApi: field android.view.accessibility.AccessibilityWindowInfo.UNDEFINED_WINDOW_ID
    New API must be flagged with @FlaggedApi: field android.view.accessibility.AccessibilityWindowInfo.UNDEFINED_WINDOW_ID
UnflaggedApi: android.view.animation.AnimationUtils#lockAnimationClock(long, long):
UnflaggedApi: android.view.animation.AnimationUtils#lockAnimationClock(long, long):
    New API must be flagged with @FlaggedApi: method android.view.animation.AnimationUtils.lockAnimationClock(long,long)
    New API must be flagged with @FlaggedApi: method android.view.animation.AnimationUtils.lockAnimationClock(long,long)
UnflaggedApi: android.view.inputmethod.InputMethodInfo#InputMethodInfo(String, String, CharSequence, String, String, boolean, String):
    New API must be flagged with @FlaggedApi: constructor android.view.inputmethod.InputMethodInfo(String,String,CharSequence,String,String,boolean,String)
UnflaggedApi: android.view.inputmethod.InputMethodManager#getEnabledInputMethodListAsUser(android.os.UserHandle):
UnflaggedApi: android.view.inputmethod.InputMethodManager#getEnabledInputMethodListAsUser(android.os.UserHandle):
    New API must be flagged with @FlaggedApi: method android.view.inputmethod.InputMethodManager.getEnabledInputMethodListAsUser(android.os.UserHandle)
    New API must be flagged with @FlaggedApi: method android.view.inputmethod.InputMethodManager.getEnabledInputMethodListAsUser(android.os.UserHandle)
UnflaggedApi: android.view.inputmethod.InputMethodManager#getEnabledInputMethodSubtypeListAsUser(String, boolean, android.os.UserHandle):
UnflaggedApi: android.view.inputmethod.InputMethodManager#getEnabledInputMethodSubtypeListAsUser(String, boolean, android.os.UserHandle):
+78 −16
Original line number Original line Diff line number Diff line
@@ -81,11 +81,20 @@ public final class InputMethodInfo implements Parcelable {
     * {@link Intent#getAction() Intent action} for IME that
     * {@link Intent#getAction() Intent action} for IME that
     * {@link #supportsStylusHandwriting() supports stylus handwriting}.
     * {@link #supportsStylusHandwriting() supports stylus handwriting}.
     *
     *
     * @see #createStylusHandwritingSettingsActivityIntent().
     * @see #createStylusHandwritingSettingsActivityIntent()
     */
     */
    public static final String ACTION_STYLUS_HANDWRITING_SETTINGS =
    public static final String ACTION_STYLUS_HANDWRITING_SETTINGS =
            "android.view.inputmethod.action.STYLUS_HANDWRITING_SETTINGS";
            "android.view.inputmethod.action.STYLUS_HANDWRITING_SETTINGS";


    /**
     * {@link Intent#getAction() Intent action} for the IME language settings.
     *
     * @see #createImeLanguageSettingsActivityIntent()
     */
    @FlaggedApi(android.view.inputmethod.Flags.FLAG_IME_SWITCHER_REVAMP)
    public static final String ACTION_IME_LANGUAGE_SETTINGS =
            "android.view.inputmethod.action.IME_LANGUAGE_SETTINGS";

    /**
    /**
     * Maximal length of a component name
     * Maximal length of a component name
     * @hide
     * @hide
@@ -131,6 +140,13 @@ public final class InputMethodInfo implements Parcelable {
     */
     */
    final String mSettingsActivityName;
    final String mSettingsActivityName;


    /**
     * The input method language settings activity's name, used to
     * launch the language settings activity of this input method.
     */
    @Nullable
    private final String mLanguageSettingsActivityName;

    /**
    /**
     * The resource in the input method's .apk that holds a boolean indicating
     * The resource in the input method's .apk that holds a boolean indicating
     * whether it should be considered the default input method for this
     * whether it should be considered the default input method for this
@@ -244,6 +260,7 @@ public final class InputMethodInfo implements Parcelable {


        PackageManager pm = context.getPackageManager();
        PackageManager pm = context.getPackageManager();
        String settingsActivityComponent = null;
        String settingsActivityComponent = null;
        String languageSettingsActivityComponent = null;
        String stylusHandwritingSettingsActivity = null;
        String stylusHandwritingSettingsActivity = null;
        boolean isVrOnly;
        boolean isVrOnly;
        boolean isVirtualDeviceOnly;
        boolean isVirtualDeviceOnly;
@@ -277,9 +294,17 @@ public final class InputMethodInfo implements Parcelable {
                    com.android.internal.R.styleable.InputMethod);
                    com.android.internal.R.styleable.InputMethod);
            settingsActivityComponent = sa.getString(
            settingsActivityComponent = sa.getString(
                    com.android.internal.R.styleable.InputMethod_settingsActivity);
                    com.android.internal.R.styleable.InputMethod_settingsActivity);
            if ((si.name != null && si.name.length() > COMPONENT_NAME_MAX_LENGTH) || (
            if (Flags.imeSwitcherRevamp()) {
                    settingsActivityComponent != null
                languageSettingsActivityComponent = sa.getString(
                            && settingsActivityComponent.length() > COMPONENT_NAME_MAX_LENGTH)) {
                        com.android.internal.R.styleable.InputMethod_languageSettingsActivity);
            }
            if ((si.name != null && si.name.length() > COMPONENT_NAME_MAX_LENGTH)
                    || (settingsActivityComponent != null
                            && settingsActivityComponent.length()
                                > COMPONENT_NAME_MAX_LENGTH)
                    || (languageSettingsActivityComponent != null
                            && languageSettingsActivityComponent.length()
                                > COMPONENT_NAME_MAX_LENGTH)) {
                throw new XmlPullParserException(
                throw new XmlPullParserException(
                        "Activity name exceeds maximum of 1000 characters");
                        "Activity name exceeds maximum of 1000 characters");
            }
            }
@@ -382,6 +407,7 @@ public final class InputMethodInfo implements Parcelable {
        }
        }
        mSubtypes = new InputMethodSubtypeArray(subtypes);
        mSubtypes = new InputMethodSubtypeArray(subtypes);
        mSettingsActivityName = settingsActivityComponent;
        mSettingsActivityName = settingsActivityComponent;
        mLanguageSettingsActivityName = languageSettingsActivityComponent;
        mStylusHandwritingSettingsActivityAttr = stylusHandwritingSettingsActivity;
        mStylusHandwritingSettingsActivityAttr = stylusHandwritingSettingsActivity;
        mIsDefaultResId = isDefaultResId;
        mIsDefaultResId = isDefaultResId;
        mIsAuxIme = isAuxIme;
        mIsAuxIme = isAuxIme;
@@ -401,6 +427,7 @@ public final class InputMethodInfo implements Parcelable {
    public InputMethodInfo(InputMethodInfo source) {
    public InputMethodInfo(InputMethodInfo source) {
        mId = source.mId;
        mId = source.mId;
        mSettingsActivityName = source.mSettingsActivityName;
        mSettingsActivityName = source.mSettingsActivityName;
        mLanguageSettingsActivityName = source.mLanguageSettingsActivityName;
        mIsDefaultResId = source.mIsDefaultResId;
        mIsDefaultResId = source.mIsDefaultResId;
        mIsAuxIme = source.mIsAuxIme;
        mIsAuxIme = source.mIsAuxIme;
        mSupportsSwitchingToNextInputMethod = source.mSupportsSwitchingToNextInputMethod;
        mSupportsSwitchingToNextInputMethod = source.mSupportsSwitchingToNextInputMethod;
@@ -422,6 +449,7 @@ public final class InputMethodInfo implements Parcelable {
    InputMethodInfo(Parcel source) {
    InputMethodInfo(Parcel source) {
        mId = source.readString();
        mId = source.readString();
        mSettingsActivityName = source.readString();
        mSettingsActivityName = source.readString();
        mLanguageSettingsActivityName = source.readString8();
        mIsDefaultResId = source.readInt();
        mIsDefaultResId = source.readInt();
        mIsAuxIme = source.readInt() == 1;
        mIsAuxIme = source.readInt() == 1;
        mSupportsSwitchingToNextInputMethod = source.readInt() == 1;
        mSupportsSwitchingToNextInputMethod = source.readInt() == 1;
@@ -445,8 +473,9 @@ public final class InputMethodInfo implements Parcelable {
    public InputMethodInfo(String packageName, String className,
    public InputMethodInfo(String packageName, String className,
            CharSequence label, String settingsActivity) {
            CharSequence label, String settingsActivity) {
        this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */,
        this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */,
                settingsActivity, null /* subtypes */, 0 /* isDefaultResId */,
                settingsActivity, null /* languageSettingsActivity */, null /* subtypes */,
                false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */,
                0 /* isDefaultResId */, false /* forceDefault */,
                true /* supportsSwitchingToNextInputMethod */,
                false /* inlineSuggestionsEnabled */, false /* isVrOnly */,
                false /* inlineSuggestionsEnabled */, false /* isVrOnly */,
                false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */,
                false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */,
                false /* supportsStylusHandwriting */,
                false /* supportsStylusHandwriting */,
@@ -461,11 +490,12 @@ public final class InputMethodInfo implements Parcelable {
    @TestApi
    @TestApi
    public InputMethodInfo(@NonNull String packageName, @NonNull String className,
    public InputMethodInfo(@NonNull String packageName, @NonNull String className,
            @NonNull CharSequence label, @NonNull String settingsActivity,
            @NonNull CharSequence label, @NonNull String settingsActivity,
            boolean supportStylusHandwriting,
            @NonNull String languageSettingsActivity, boolean supportStylusHandwriting,
            @NonNull String stylusHandwritingSettingsActivityAttr) {
            @NonNull String stylusHandwritingSettingsActivityAttr) {
        this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */,
        this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */,
                settingsActivity, null /* subtypes */, 0 /* isDefaultResId */,
                settingsActivity, languageSettingsActivity, null /* subtypes */,
                false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */,
                0 /* isDefaultResId */, false /* forceDefault */,
                true /* supportsSwitchingToNextInputMethod */,
                false /* inlineSuggestionsEnabled */, false /* isVrOnly */,
                false /* inlineSuggestionsEnabled */, false /* isVrOnly */,
                false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */,
                false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */,
                supportStylusHandwriting, stylusHandwritingSettingsActivityAttr,
                supportStylusHandwriting, stylusHandwritingSettingsActivityAttr,
@@ -481,8 +511,9 @@ public final class InputMethodInfo implements Parcelable {
            @NonNull CharSequence label, @NonNull String settingsActivity,
            @NonNull CharSequence label, @NonNull String settingsActivity,
            int handledConfigChanges) {
            int handledConfigChanges) {
        this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */,
        this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */,
                settingsActivity, null /* subtypes */, 0 /* isDefaultResId */,
                settingsActivity, null /* languageSettingsActivity */, null /* subtypes */,
                false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */,
                0 /* isDefaultResId */, false /* forceDefault */,
                true /* supportsSwitchingToNextInputMethod */,
                false /* inlineSuggestionsEnabled */, false /* isVrOnly */,
                false /* inlineSuggestionsEnabled */, false /* isVrOnly */,
                false /* isVirtualDeviceOnly */, handledConfigChanges,
                false /* isVirtualDeviceOnly */, handledConfigChanges,
                false /* supportsStylusHandwriting */,
                false /* supportsStylusHandwriting */,
@@ -497,7 +528,8 @@ public final class InputMethodInfo implements Parcelable {
    public InputMethodInfo(ResolveInfo ri, boolean isAuxIme,
    public InputMethodInfo(ResolveInfo ri, boolean isAuxIme,
            String settingsActivity, List<InputMethodSubtype> subtypes, int isDefaultResId,
            String settingsActivity, List<InputMethodSubtype> subtypes, int isDefaultResId,
            boolean forceDefault) {
            boolean forceDefault) {
        this(ri, isAuxIme, settingsActivity, subtypes, isDefaultResId, forceDefault,
        this(ri, isAuxIme, settingsActivity, null /* languageSettingsActivity */, subtypes,
                isDefaultResId, forceDefault,
                true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */,
                true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */,
                false /* isVrOnly */, false /* isVirtualDeviceOnly */, 0 /* handledconfigChanges */,
                false /* isVrOnly */, false /* isVirtualDeviceOnly */, 0 /* handledconfigChanges */,
                false /* supportsStylusHandwriting */,
                false /* supportsStylusHandwriting */,
@@ -512,7 +544,8 @@ public final class InputMethodInfo implements Parcelable {
    public InputMethodInfo(ResolveInfo ri, boolean isAuxIme, String settingsActivity,
    public InputMethodInfo(ResolveInfo ri, boolean isAuxIme, String settingsActivity,
            List<InputMethodSubtype> subtypes, int isDefaultResId, boolean forceDefault,
            List<InputMethodSubtype> subtypes, int isDefaultResId, boolean forceDefault,
            boolean supportsSwitchingToNextInputMethod, boolean isVrOnly) {
            boolean supportsSwitchingToNextInputMethod, boolean isVrOnly) {
        this(ri, isAuxIme, settingsActivity, subtypes, isDefaultResId, forceDefault,
        this(ri, isAuxIme, settingsActivity, null /* languageSettingsActivity */, subtypes,
                isDefaultResId, forceDefault,
                supportsSwitchingToNextInputMethod, false /* inlineSuggestionsEnabled */, isVrOnly,
                supportsSwitchingToNextInputMethod, false /* inlineSuggestionsEnabled */, isVrOnly,
                false /* isVirtualDeviceOnly */,
                false /* isVirtualDeviceOnly */,
                0 /* handledConfigChanges */, false /* supportsStylusHandwriting */,
                0 /* handledConfigChanges */, false /* supportsStylusHandwriting */,
@@ -525,7 +558,8 @@ public final class InputMethodInfo implements Parcelable {
     * @hide
     * @hide
     */
     */
    public InputMethodInfo(ResolveInfo ri, boolean isAuxIme, String settingsActivity,
    public InputMethodInfo(ResolveInfo ri, boolean isAuxIme, String settingsActivity,
            List<InputMethodSubtype> subtypes, int isDefaultResId, boolean forceDefault,
            @Nullable String languageSettingsActivity, List<InputMethodSubtype> subtypes,
            int isDefaultResId, boolean forceDefault,
            boolean supportsSwitchingToNextInputMethod, boolean inlineSuggestionsEnabled,
            boolean supportsSwitchingToNextInputMethod, boolean inlineSuggestionsEnabled,
            boolean isVrOnly, boolean isVirtualDeviceOnly, int handledConfigChanges,
            boolean isVrOnly, boolean isVirtualDeviceOnly, int handledConfigChanges,
            boolean supportsStylusHandwriting, String stylusHandwritingSettingsActivityAttr,
            boolean supportsStylusHandwriting, String stylusHandwritingSettingsActivityAttr,
@@ -534,6 +568,7 @@ public final class InputMethodInfo implements Parcelable {
        mService = ri;
        mService = ri;
        mId = new ComponentName(si.packageName, si.name).flattenToShortString();
        mId = new ComponentName(si.packageName, si.name).flattenToShortString();
        mSettingsActivityName = settingsActivity;
        mSettingsActivityName = settingsActivity;
        mLanguageSettingsActivityName = languageSettingsActivity;
        mIsDefaultResId = isDefaultResId;
        mIsDefaultResId = isDefaultResId;
        mIsAuxIme = isAuxIme;
        mIsAuxIme = isAuxIme;
        mSubtypes = new InputMethodSubtypeArray(subtypes);
        mSubtypes = new InputMethodSubtypeArray(subtypes);
@@ -756,9 +791,34 @@ public final class InputMethodInfo implements Parcelable {
                        mStylusHandwritingSettingsActivityAttr));
                        mStylusHandwritingSettingsActivityAttr));
    }
    }


    /**
     * Returns {@link Intent} for IME language settings activity with
     * {@link Intent#getAction() Intent action} {@link #ACTION_IME_LANGUAGE_SETTINGS},
     * else <code>null</code> if
     * {@link android.R.styleable#InputMethod_languageSettingsActivity} is not defined.
     *
     * <p>To launch IME language settings, use this method to get the {@link Intent} to launch
     * the IME language settings activity.</p>
     * <p>e.g.<pre><code>startActivity(createImeLanguageSettingsActivityIntent());</code></pre></p>
     *
     * @attr ref R.styleable#InputMethod_languageSettingsActivity
     */
    @FlaggedApi(android.view.inputmethod.Flags.FLAG_IME_SWITCHER_REVAMP)
    @Nullable
    public Intent createImeLanguageSettingsActivityIntent() {
        if (TextUtils.isEmpty(mLanguageSettingsActivityName)) {
            return null;
        }
        return new Intent(ACTION_IME_LANGUAGE_SETTINGS).setComponent(
                new ComponentName(getServiceInfo().packageName,
                        mLanguageSettingsActivityName)
        );
    }

    public void dump(Printer pw, String prefix) {
    public void dump(Printer pw, String prefix) {
        pw.println(prefix + "mId=" + mId
        pw.println(prefix + "mId=" + mId
                + " mSettingsActivityName=" + mSettingsActivityName
                + " mSettingsActivityName=" + mSettingsActivityName
                + " mLanguageSettingsActivityName=" + mLanguageSettingsActivityName
                + " mIsVrOnly=" + mIsVrOnly
                + " mIsVrOnly=" + mIsVrOnly
                + " mIsVirtualDeviceOnly=" + mIsVirtualDeviceOnly
                + " mIsVirtualDeviceOnly=" + mIsVirtualDeviceOnly
                + " mSupportsSwitchingToNextInputMethod=" + mSupportsSwitchingToNextInputMethod
                + " mSupportsSwitchingToNextInputMethod=" + mSupportsSwitchingToNextInputMethod
@@ -779,8 +839,9 @@ public final class InputMethodInfo implements Parcelable {
    @Override
    @Override
    public String toString() {
    public String toString() {
        return "InputMethodInfo{" + mId
        return "InputMethodInfo{" + mId
                + ", settings: "
                + ", settings: " + mSettingsActivityName
                + mSettingsActivityName + "}";
                + ", languageSettings: " + mLanguageSettingsActivityName
                + "}";
    }
    }


    /**
    /**
@@ -872,6 +933,7 @@ public final class InputMethodInfo implements Parcelable {
    public void writeToParcel(Parcel dest, int flags) {
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(mId);
        dest.writeString(mId);
        dest.writeString(mSettingsActivityName);
        dest.writeString(mSettingsActivityName);
        dest.writeString8(mLanguageSettingsActivityName);
        dest.writeInt(mIsDefaultResId);
        dest.writeInt(mIsDefaultResId);
        dest.writeInt(mIsAuxIme ? 1 : 0);
        dest.writeInt(mIsAuxIme ? 1 : 0);
        dest.writeInt(mSupportsSwitchingToNextInputMethod ? 1 : 0);
        dest.writeInt(mSupportsSwitchingToNextInputMethod ? 1 : 0);
+8 −0
Original line number Original line Diff line number Diff line
@@ -54,3 +54,11 @@ flag {
    bug: "293640003"
    bug: "293640003"
    is_fixed_read_only: true
    is_fixed_read_only: true
}
}

flag {
    name: "ime_switcher_revamp"
    namespace: "input_method"
    description: "Feature flag for revamping the Input Method Switcher menu"
    bug: "311791923"
    is_fixed_read_only: true
}
Loading