diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl index 5b7e500c46304..be15c700818ca 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl @@ -150,5 +150,10 @@ interface ISystemUiProxy { */ oneway void notifyTaskbarAutohideSuspend(boolean suspend) = 48; - // Next id = 49 + /** + * Notifies SystemUI to invoke IME Switcher. + */ + void onImeSwitcherPressed() = 49; + + // Next id = 50 } diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java index 721a6af37e210..bf7577c1d8303 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java +++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java @@ -17,6 +17,7 @@ package com.android.systemui.recents; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; +import static android.view.Display.DEFAULT_DISPLAY; import static android.view.MotionEvent.ACTION_CANCEL; import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_UP; @@ -68,6 +69,7 @@ import android.view.KeyEvent; import android.view.MotionEvent; import android.view.Surface; import android.view.accessibility.AccessibilityManager; +import android.view.inputmethod.InputMethodManager; import androidx.annotation.NonNull; @@ -236,6 +238,15 @@ public class OverviewProxyService extends CurrentUserTracker implements }); } + @Override + public void onImeSwitcherPressed() throws RemoteException { + // TODO(b/204901476) We're intentionally using DEFAULT_DISPLAY for now since + // Launcher/Taskbar isn't display aware. + mContext.getSystemService(InputMethodManager.class) + .showInputMethodPickerFromSystem(true /* showAuxiliarySubtypes */, + DEFAULT_DISPLAY); + } + @Override public void setHomeRotationEnabled(boolean enabled) { verifyCallerAndClearCallingIdentityPostMain("setHomeRotationEnabled", () ->