From 8899f3a387d8d1b8f0d576cbdcdc67eeec8728e2 Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Wed, 26 Apr 2023 13:56:26 -0700 Subject: [PATCH] Fix touch focus not updated correctly after launching overview with live tile. Similar to ag/19938037 Fixes: 277625965 Test: Meta+Tab to launch overview from app, or swipe from app, then use DPAD_LEFT and DPAD_RIGHT to go through overview. Make sure the selected task is highlighted Change-Id: Id0138878d32e4d37f30cef51ddb9ddb9df85fd65 --- .../quickstep/inputconsumers/OverviewInputConsumer.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java index 64165b66e4..cd98e7abdc 100644 --- a/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java +++ b/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java @@ -61,6 +61,14 @@ public class OverviewInputConsumer, T extends StatefulAct mTarget = activity.getDragLayer(); mTarget.getLocationOnScreen(mLocationOnScreen); + + // When Overview is launched via meta+tab or swipe up from an app, + // the touch mode somehow is not changed to false by the Android framework. + // The subsequent key events (e.g. DPAD_LEFT, DPAD_RIGHT) can only be dispatched to + // focused views, while focus can only be requested in + // {@link View#requestFocusNoSearch(int, Rect)} when touch mode is false. To note, + // here we launch overview with live tile. + mActivity.getRootView().getViewRootImpl().touchModeChanged(false); } @Override