summaryrefslogtreecommitdiff
path: root/core/java/android/inputmethodservice/InputMethodService.java
diff options
context:
space:
mode:
authorShan Huang <shanh@google.com>2022-04-18 21:37:22 +0000
committerShan Huang <shanh@google.com>2022-04-19 00:53:59 +0000
commit0a57e88a751585e6a37f5c88efc049da2d6fc46e (patch)
tree8dfdd37cf57d787d44fc6d90dbb00d928e6452fa /core/java/android/inputmethodservice/InputMethodService.java
parent38be9e32f161828b3a8d3f4e0046af3213350622 (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.java60
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();
}
/**