Files
frameworks_base/core/java/com/android
Yohei Yukawa e6cd60da19 Clarify EditableInputConnection has a public alternative
This is a preparation to remove @UnsupportedAppUsage from the
constructor of a hidden class EditableInputConnection.

In most of cases, app developers should be using

  android.view.inputmethod.InputConnectionWrapper

to intercept InputConnection API calls before they are delivered to
EditText as follows.

  final EditText editText = new EditText(activity) {
    @Override
    public InputConnection onCreateInputConnection(
        EditorInfo editorInfo) {
      return new InputConnectionWrapper(
          super.onCreateInputConnection(editorInfo), false) {
        /**
         * {@inheritDoc}
         */
        @Override
        public boolean commitText(
            CharSequence text, int newCursorPosition) {
          // do something
          return super.commitText(text, newCursorPosition);
        }
      };
    }
  };

You can also re-implement BaseInputConnection without hidden APIs
since Android 9.  See CLs that are associated with Bug 24688781 for
details.

This CL makes this fact clear for app developers by using
"publicAlternatives" field in @UnsupportedAppUsage.

Bug: 192969370
Test: presubmit
Change-Id: I0c879645a84fde14dd6444bb4735f543457e43a8
2021-07-07 09:03:53 -07:00
..
…