Allow IME to register system back callbacks in

ImeOnBackInvokedDispatcher#switchRootView.

This has the same purpose as ag/20766528, which only addressed one of
the two occurances of IME registering callbacks.

Bug: 262727745
Test: CtsInputMethodTestCases
Test: KeyboardVisibilityControlTest

Change-Id: I0ad892f17211a132d8a69b7f68a6c10f5740c457
This commit is contained in:
Shan Huang
2023-01-04 21:39:56 +00:00
parent a9ad4038b3
commit 6577b62a5d

View File

@@ -220,16 +220,14 @@ public class ImeOnBackInvokedDispatcher implements OnBackInvokedDispatcher, Parc
* @param previous the previously focused {@link ViewRootImpl}.
* @param current the currently focused {@link ViewRootImpl}.
*/
// TODO(b/232845902): Add CTS to test IME back behavior when there's root view change while
// IME is up.
public void switchRootView(ViewRootImpl previous, ViewRootImpl current) {
for (ImeOnBackInvokedCallback imeCallback : mImeCallbacks) {
if (previous != null) {
previous.getOnBackInvokedDispatcher().unregisterOnBackInvokedCallback(imeCallback);
}
if (current != null) {
current.getOnBackInvokedDispatcher().registerOnBackInvokedCallback(
imeCallback.mPriority, imeCallback);
current.getOnBackInvokedDispatcher().registerOnBackInvokedCallbackUnchecked(
imeCallback, imeCallback.mPriority);
}
}
}