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

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

Clarify on DEFAULT_INPUT_METHOD and InputMethodInfo#getId()

This CL aims to clarify more on what "IME ID" means in Android.

"IME ID" is a string representation of a certain implementation of
InputMethodService, which has always been computed by

  new ComponentName(packageName, serviceName).flattenToShortString(),

then has been exposed to developers through at least the following two
public APIs.

 * Settings.Secure.DEFAULT_INPUT_METHOD
 * InputMethodInfo#getId()

Now that our IME CTS tests are already requiring that "IME ID" equals
to test IMEs' component name indirectly, it would be more beneficial
if we clearly mention that "IME ID" is guaranteed to be constructed by

  ComponentName#flattenToShortString()

hence is also guaranteed to be parsed with

  ComponentName#unflattenFromString().

It is to late to change strong representations that have been
exposed to developers for more than 10 years anyway.

Other than updating public API documents, this CL does nothing.

Fix: 192392438
Test: presubmit
Change-Id: I013cd79b92363fe6e438f445606b5fc53e2660f6
parent b72545e7
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -6410,8 +6410,15 @@ public final class Settings {
        public static final String DATA_ROAMING = Global.DATA_ROAMING;
        /**
         * Setting to record the input method used by default, holding the ID
         * of the desired method.
         * Stores {@link android.view.inputmethod.InputMethodInfo#getId()} of the input method
         * service that is currently selected.
         *
         * <p>Although the name {@link #DEFAULT_INPUT_METHOD} implies that there is a concept of
         * <i>default</i> input method, in reality this setting is no more or less than the
         * <strong>currently selected</strong> input method. This setting can be updated at any
         * time as a result of user-initiated and system-initiated input method switching.</p>
         *
         * <p>Use {@link ComponentName#unflattenFromString(String)} to parse the stored value.</p>
         */
        @Readable
        public static final String DEFAULT_INPUT_METHOD = "default_input_method";
+3 −2
Original line number Diff line number Diff line
@@ -418,8 +418,9 @@ public final class InputMethodInfo implements Parcelable {
    }

    /**
     * Return a unique ID for this input method.  The ID is generated from
     * the package and class name implementing the method.
     * @return a unique ID for this input method, which is guaranteed to be the same as the result
     *         of {@code getComponent().flattenToShortString()}.
     * @see ComponentName#unflattenFromString(String)
     */
    public String getId() {
        return mId;