diff options
| author | Shan Huang <shanh@google.com> | 2022-04-18 21:37:22 +0000 |
|---|---|---|
| committer | Shan Huang <shanh@google.com> | 2022-04-19 00:53:59 +0000 |
| commit | 0a57e88a751585e6a37f5c88efc049da2d6fc46e (patch) | |
| tree | 8dfdd37cf57d787d44fc6d90dbb00d928e6452fa /core/java/android/inputmethodservice/InputMethodService.java | |
| parent | 38be9e32f161828b3a8d3f4e0046af3213350622 (diff) | |
Revert "Migrate InputMethodService to use OnBackInvokedDispatcher"
This reverts commit 38be9e32f161828b3a8d3f4e0046af3213350622.
Reason for revert: Caused b/229642813 and b/229355440
Bug:229642813
Bug:229636388
Change-Id: I65e4f66ec2156d4e0812753d71ac82afd965fe3b
Diffstat (limited to 'core/java/android/inputmethodservice/InputMethodService.java')
| -rw-r--r-- | core/java/android/inputmethodservice/InputMethodService.java | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 6ece5efae537..4fdd53425328 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -101,7 +101,6 @@ import android.view.BatchedInputEventReceiver.SimpleBatchedInputEventReceiver; import android.view.Choreographer; import android.view.Gravity; import android.view.InputChannel; -import android.view.InputDevice; import android.view.InputEventReceiver; import android.view.KeyCharacterMap; import android.view.KeyEvent; @@ -135,10 +134,7 @@ import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TextView; -import android.window.OnBackInvokedCallback; -import android.window.OnBackInvokedDispatcher; import android.window.WindowMetricsHelper; -import android.window.WindowOnBackInvokedDispatcher; import com.android.internal.annotations.GuardedBy; import com.android.internal.inputmethod.IInputContentUriToken; @@ -349,9 +345,6 @@ public class InputMethodService extends AbstractInputMethodService { **/ private RingBuffer<MotionEvent> mPendingEvents; - /** Callback to handle back invocation when IME window is shown. */ - private OnBackInvokedCallback mBackCallback; - /** * Returns whether {@link InputMethodService} is responsible for rendering the back button and * the IME switcher button or not when the gestural navigation is enabled. @@ -1612,7 +1605,6 @@ public class InputMethodService extends AbstractInputMethodService { @Override public void onDestroy() { mDestroyed = true; super.onDestroy(); - unregisterOnBackInvokedCallback(); mRootView.getViewTreeObserver().removeOnComputeInternalInsetsListener( mInsetsComputer); doFinishInput(); @@ -2587,7 +2579,6 @@ public class InputMethodService extends AbstractInputMethodService { cancelImeSurfaceRemoval(); mInShowWindow = false; Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); - registerOnBackInvokedCallback(); } @@ -2634,56 +2625,6 @@ public class InputMethodService extends AbstractInputMethodService { } /** - * Registers an {@link OnBackInvokedCallback} to handle back invocation when ahead-of-time - * back dispatching is enabled. We keep the KEYCODE_BACK based legacy code around to handle - * back on older devices. - */ - private void registerOnBackInvokedCallback() { - if (mBackCallback != null) { - // A back callback has already been registered. - return; - } - final ViewRootImpl viewRootImpl = mRootView == null ? null : mRootView.getViewRootImpl(); - if (viewRootImpl != null && WindowOnBackInvokedDispatcher.isOnBackInvokedCallbackEnabled( - viewRootImpl.mContext)) { - final OnBackInvokedCallback callback = () -> { - KeyEvent downEvent = createKeyEvent( - KeyEvent.ACTION_DOWN, false /* isTracking */); - onKeyDown(KeyEvent.KEYCODE_BACK, downEvent); - boolean hasStartedTracking = - (downEvent.getFlags() & KeyEvent.FLAG_START_TRACKING) != 0; - KeyEvent upEvent = createKeyEvent(KeyEvent.ACTION_UP, hasStartedTracking); - onKeyUp(KeyEvent.KEYCODE_BACK, upEvent); - }; - viewRootImpl.getOnBackInvokedDispatcher().registerOnBackInvokedCallback( - OnBackInvokedDispatcher.PRIORITY_DEFAULT, callback); - mBackCallback = callback; - } - } - - private KeyEvent createKeyEvent(int action, boolean isTracking) { - final long when = SystemClock.uptimeMillis(); - return new KeyEvent(when, when, action, - KeyEvent.KEYCODE_BACK, 0 /* repeat */, 0 /* metaState */, - KeyCharacterMap.VIRTUAL_KEYBOARD, 0 /* scancode */, - KeyEvent.FLAG_FROM_SYSTEM | KeyEvent.FLAG_VIRTUAL_HARD_KEY - | (isTracking ? KeyEvent.FLAG_TRACKING : 0), - InputDevice.SOURCE_KEYBOARD); - } - - private void unregisterOnBackInvokedCallback() { - final ViewRootImpl viewRootImpl = mRootView == null ? null : mRootView.getViewRootImpl(); - if (viewRootImpl != null - && mBackCallback != null - && WindowOnBackInvokedDispatcher.isOnBackInvokedCallbackEnabled( - viewRootImpl.mContext)) { - viewRootImpl.getOnBackInvokedDispatcher() - .unregisterOnBackInvokedCallback(mBackCallback); - } - mBackCallback = null; - } - - /** * Applies the IME visibility in {@link android.view.ImeInsetsSourceConsumer}. * * @param setVisible {@code true} to make it visible, false to hide it. @@ -2728,7 +2669,6 @@ public class InputMethodService extends AbstractInputMethodService { } mLastWasInFullscreenMode = mIsFullscreen; updateFullscreenMode(); - unregisterOnBackInvokedCallback(); } /** |
