Merge "Fix IME callback not being re-registered on screen off / on." into tm-dev am: bd7ac0c646
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18310689 Change-Id: I48b28b3c6e1ed6c44b73e055b675f38638080f81 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1625,7 +1625,6 @@ public class InputMethodService extends AbstractInputMethodService {
|
||||
// when IME developers are doing something unsupported.
|
||||
InputMethodPrivilegedOperationsRegistry.remove(mToken);
|
||||
}
|
||||
unregisterCompatOnBackInvokedCallback();
|
||||
mImeDispatcher = null;
|
||||
}
|
||||
|
||||
@@ -2788,6 +2787,11 @@ public class InputMethodService extends AbstractInputMethodService {
|
||||
if (mInkWindow != null) {
|
||||
finishStylusHandwriting();
|
||||
}
|
||||
// Back callback is typically unregistered in {@link #hideWindow()}, but it's possible
|
||||
// for {@link #doFinishInput()} to be called without {@link #hideWindow()} so we also
|
||||
// unregister here.
|
||||
// TODO(b/232341407): Add CTS to verify back behavior after screen on / off.
|
||||
unregisterCompatOnBackInvokedCallback();
|
||||
}
|
||||
|
||||
void doStartInput(InputConnection ic, EditorInfo attribute, boolean restarting) {
|
||||
|
||||
@@ -158,6 +158,12 @@ public class ImeOnBackInvokedDispatcher implements OnBackInvokedDispatcher, Parc
|
||||
|
||||
/** Clears all registered callbacks on the instance. */
|
||||
public void clear() {
|
||||
// Unregister previously registered callbacks if there's any.
|
||||
if (getReceivingDispatcher() != null) {
|
||||
for (OnBackInvokedCallback callback : mImeCallbackMap.values()) {
|
||||
getReceivingDispatcher().unregisterOnBackInvokedCallback(callback);
|
||||
}
|
||||
}
|
||||
mImeCallbackMap.clear();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user