Merge cherrypicks of ['googleplex-android-review.googlesource.com/35234605'] into security-aosp-24Q3-release. Change-Id: I0b7552f902eb1e38787e1f3294df81e0a5fb9051
diff --git a/quickstep/src/com/android/quickstep/OverviewCommandHelper.java b/quickstep/src/com/android/quickstep/OverviewCommandHelper.java index 7da92bc..b5c0291 100644 --- a/quickstep/src/com/android/quickstep/OverviewCommandHelper.java +++ b/quickstep/src/com/android/quickstep/OverviewCommandHelper.java
@@ -29,6 +29,7 @@ import android.os.SystemClock; import android.os.Trace; import android.util.Log; +import android.view.KeyEvent; import android.view.View; import androidx.annotation.BinderThread; @@ -79,6 +80,7 @@ private final TouchInteractionService mService; private final OverviewComponentObserver mOverviewComponentObserver; private final TaskAnimationManager mTaskAnimationManager; + private final SystemUiProxy mSystemUiProxy; private final ArrayList<CommandInfo> mPendingCommands = new ArrayList<>(); /** @@ -98,10 +100,12 @@ public OverviewCommandHelper(TouchInteractionService service, OverviewComponentObserver observer, - TaskAnimationManager taskAnimationManager) { + TaskAnimationManager taskAnimationManager, + SystemUiProxy systemUiProxy) { mService = service; mOverviewComponentObserver = observer; mTaskAnimationManager = taskAnimationManager; + mSystemUiProxy = systemUiProxy; } /** @@ -265,7 +269,7 @@ case TYPE_HOME: ActiveGestureLog.INSTANCE.addLog( "OverviewCommandHelper.executeCommand(TYPE_HOME)"); - mService.startActivity(mOverviewComponentObserver.getHomeIntent()); + mSystemUiProxy.onKeyEvent(KeyEvent.KEYCODE_HOME); return true; case TYPE_SHOW: // When Recents is not currently visible, the command's type is TYPE_SHOW
diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java index 433baa9..9913bce 100644 --- a/quickstep/src/com/android/quickstep/SystemUiProxy.java +++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java
@@ -218,6 +218,17 @@ } @Override + public void onKeyEvent(int keycode) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.onKeyEvent(keycode); + } catch (RemoteException e) { + Log.w(TAG, "Failed call onKeyEvent", e); + } + } + } + + @Override public void onImeSwitcherPressed() { if (mSystemUiProxy != null) { try {
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index bfdc3df..975bbe0 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -644,7 +644,8 @@ mTaskAnimationManager = new TaskAnimationManager(this); mOverviewComponentObserver = new OverviewComponentObserver(this, mDeviceState); mOverviewCommandHelper = new OverviewCommandHelper(this, - mOverviewComponentObserver, mTaskAnimationManager); + mOverviewComponentObserver, mTaskAnimationManager, + SystemUiProxy.INSTANCE.get(this)); mResetGestureInputConsumer = new ResetGestureInputConsumer( mTaskAnimationManager, mTaskbarManager::getCurrentActivityContext); mInputConsumer.registerInputConsumer();