Revert^3 "Add API for Custom IME Switcher button visibility"

9cde0f490bdf0e9c38cd65e3229b98517a4a0491

Change-Id: I1b4267818ef3298015ffadb02cb822f7f26fb6b2
diff --git a/core/api/current.txt b/core/api/current.txt
index 494c66b..c210d8c 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -20995,7 +20995,6 @@
     method @Deprecated public android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl onCreateInputMethodSessionInterface();
     method public android.view.View onCreateInputView();
     method protected void onCurrentInputMethodSubtypeChanged(android.view.inputmethod.InputMethodSubtype);
-    method @FlaggedApi("android.view.inputmethod.ime_switcher_revamp_api") public void onCustomImeSwitcherButtonRequestedVisible(boolean);
     method public void onDisplayCompletions(android.view.inputmethod.CompletionInfo[]);
     method public boolean onEvaluateFullscreenMode();
     method @CallSuper public boolean onEvaluateInputViewShown();
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index ae83668..8c3f0ef 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -55,7 +55,6 @@
 import static android.view.inputmethod.ConnectionlessHandwritingCallback.CONNECTIONLESS_HANDWRITING_ERROR_OTHER;
 import static android.view.inputmethod.ConnectionlessHandwritingCallback.CONNECTIONLESS_HANDWRITING_ERROR_UNSUPPORTED;
 import static android.view.inputmethod.Flags.FLAG_CONNECTIONLESS_HANDWRITING;
-import static android.view.inputmethod.Flags.FLAG_IME_SWITCHER_REVAMP_API;
 import static android.view.inputmethod.Flags.ctrlShiftShortcut;
 import static android.view.inputmethod.Flags.predictiveBackIme;
 
@@ -4393,39 +4392,6 @@
     }
 
     /**
-     * Called when the requested visibility of a custom IME Switcher button changes.
-     *
-     * <p>When the system provides an IME navigation bar, it may decide to show an IME Switcher
-     * button inside this bar. However, the IME can request hiding the bar provided by the system
-     * with {@code getWindowInsetsController().hide(captionBar())} (the IME navigation bar provides
-     * {@link Type#captionBar() captionBar} insets to the IME window). If the request is successful,
-     * then it becomes the IME's responsibility to provide a custom IME Switcher button in its
-     * input view, with equivalent functionality.</p>
-     *
-     * <p>This custom button is only requested to be visible when the system provides the IME
-     * navigation bar, both the bar and the IME Switcher button inside it should be visible,
-     * but the IME successfully requested to hide the bar. This does not depend on the current
-     * visibility of the IME. It could be called with {@code true} while the IME is hidden, in
-     * which case the IME should prepare to show the button as soon as the IME itself is shown.</p>
-     *
-     * <p>This is only called when the requested visibility changes. The default value is
-     * {@code false} and as such, this will not be called initially if the resulting value is
-     * {@code false}.</p>
-     *
-     * <p>This can be called at any time after {@link #onCreate}, even if the IME is not currently
-     * visible. However, this is not guaranteed to be called before the IME is shown, as it depends
-     * on when the IME requested hiding the IME navigation bar. If the request is sent during
-     * the showing flow (e.g. during {@link #onStartInputView}), this will be called shortly after
-     * {@link #onWindowShown}, but before the first IME frame is drawn.</p>
-     *
-     * @param visible whether the button is requested visible or not.
-     */
-    @FlaggedApi(FLAG_IME_SWITCHER_REVAMP_API)
-    public void onCustomImeSwitcherButtonRequestedVisible(boolean visible) {
-        // Intentionally empty
-    }
-
-    /**
      * Called when the IME switch button was clicked from the client. Depending on the number of
      * enabled IME subtypes, this will either switch to the next IME/subtype, or show the input
      * method picker dialog.
diff --git a/core/java/android/inputmethodservice/NavigationBarController.java b/core/java/android/inputmethodservice/NavigationBarController.java
index 38be8d9..b08454d 100644
--- a/core/java/android/inputmethodservice/NavigationBarController.java
+++ b/core/java/android/inputmethodservice/NavigationBarController.java
@@ -41,7 +41,6 @@
 import android.view.WindowInsetsController.Appearance;
 import android.view.animation.Interpolator;
 import android.view.animation.PathInterpolator;
-import android.view.inputmethod.Flags;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.FrameLayout;
 
@@ -179,9 +178,6 @@
 
         private boolean mDrawLegacyNavigationBarBackground;
 
-        /** Whether a custom IME Switcher button should be visible. */
-        private boolean mCustomImeSwitcherVisible;
-
         private final Rect mTempRect = new Rect();
         private final int[] mTempPos = new int[2];
 
@@ -269,7 +265,6 @@
                     // IME navigation bar.
                     boolean visible = insets.isVisible(captionBar());
                     mNavigationBarFrame.setVisibility(visible ? View.VISIBLE : View.GONE);
-                    checkCustomImeSwitcherVisibility();
                 }
                 return view.onApplyWindowInsets(insets);
             });
@@ -496,8 +491,6 @@
                     mShouldShowImeSwitcherWhenImeIsShown;
             mShouldShowImeSwitcherWhenImeIsShown = shouldShowImeSwitcherWhenImeIsShown;
 
-            checkCustomImeSwitcherVisibility();
-
             mService.mWindow.getWindow().getDecorView().getWindowInsetsController()
                     .setImeCaptionBarInsetsHeight(getImeCaptionBarHeight(imeDrawsImeNavBar));
 
@@ -623,33 +616,12 @@
                     && mNavigationBarFrame.getVisibility() == View.VISIBLE;
         }
 
-        /**
-         * Checks if a custom IME Switcher button should be visible, and notifies the IME when this
-         * state changes. This can only be {@code true} if three conditions are met:
-         *
-         * <li>The IME should draw the IME navigation bar.</li>
-         * <li>The IME Switcher button should be visible when the IME is visible.</li>
-         * <li>The IME navigation bar should be visible, but was requested hidden by the IME.</li>
-         */
-        private void checkCustomImeSwitcherVisibility() {
-            if (!Flags.imeSwitcherRevampApi()) {
-                return;
-            }
-            final boolean visible = mImeDrawsImeNavBar && mShouldShowImeSwitcherWhenImeIsShown
-                    && mNavigationBarFrame != null && !isShown();
-            if (visible != mCustomImeSwitcherVisible) {
-                mCustomImeSwitcherVisible = visible;
-                mService.onCustomImeSwitcherButtonRequestedVisible(mCustomImeSwitcherVisible);
-            }
-        }
-
         @Override
         public String toDebugString() {
             return "{mImeDrawsImeNavBar=" + mImeDrawsImeNavBar
                     + " mNavigationBarFrame=" + mNavigationBarFrame
                     + " mShouldShowImeSwitcherWhenImeIsShown="
                     + mShouldShowImeSwitcherWhenImeIsShown
-                    + " mCustomImeSwitcherVisible="  + mCustomImeSwitcherVisible
                     + " mAppearance=0x" + Integer.toHexString(mAppearance)
                     + " mDarkIntensity=" + mDarkIntensity
                     + " mDrawLegacyNavigationBarBackground=" + mDrawLegacyNavigationBarBackground