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

Commit 101ae464 authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Warn if IMM#showSoftInputUnchecked() is called

With this CL, an @hide method InputMethodManager#showSoftInputUnchecked
is marked to be deprecated and starts showing a warning message in logcat
when it gets called to tell application developers who are still using
old implementation fo android.support.v7.widget.SearchView that they
need to switch to support library ver. 26.0 or later version.

Other than that there is no behavior change in this CL.

Test: Manually verified as follows:
       1. Flash an OS image
       2. Complete the setup wizard (if any).
       3. In N MR-1 AOSP repository
          frameworks/support/gradlew -p frameworks/support support-v7-demos:assemble
       4. adb install out/host/gradle/frameworks/support/support-v7-demos/build/outputs/apk/support-v7-demos-debug.apk
       5. adb logcat -s InputMethodManager
       6. adb shell am start -n com.example.android.supportv7/.Support7Demos
       7. Tap AppCompat -> Action Bar -> Action Bar Usage
       8. Tap the magnifier icon.
       9. Make sure that the software keyboard shows up.
      10. Make sure that in logcat a warning that showSoftInputUnchecked
          is going to be removed is shown.
Fixes: 36015425
Change-Id: If01316a0c2a210f9ea03b53700d0ef651955ba9c
parent b0db4017
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -1018,9 +1018,20 @@ public final class InputMethodManager {
        }
    }

    /** @hide */
    /**
     * This method is still kept for a while until android.support.v7.widget.SearchView ver. 26.0
     * is publicly released because previous implementations of that class had relied on this method
     * via reflection.
     *
     * @deprecated This is a hidden API. You should never use this.
     * @hide
     */
    @Deprecated
    public void showSoftInputUnchecked(int flags, ResultReceiver resultReceiver) {
        try {
            Log.w(TAG, "showSoftInputUnchecked() is a hidden method, which will be removed "
                    + "soon. If you are using android.support.v7.widget.SearchView, please update "
                    + "to version 26.0 or newer version.");
            mService.showSoftInput(mClient, flags, resultReceiver);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();