Merge "Fix subsequent tabbing in recents from alt tab not working" into tm-qpr-dev am: 39d9eb819c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19938037 Change-Id: I0947061c88148842e2a508fea76d611a1bc84f3e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -193,7 +193,20 @@ public class OverviewCommandHelper {
|
||||
}
|
||||
}
|
||||
|
||||
if (activityInterface.switchToRecentsIfVisible(() -> scheduleNextTask(cmd))) {
|
||||
final Runnable completeCallback = () -> {
|
||||
if (cmd.type == TYPE_SHOW_NEXT_FOCUS) {
|
||||
RecentsView rv = activityInterface.getVisibleRecentsView();
|
||||
// When the overview is launched via alt tab (cmd type is TYPE_SHOW_NEXT_FOCUS),
|
||||
// the touch mode somehow is not change to false by the Android framework.
|
||||
// The subsequent tab to go through tasks in overview can only be dispatched to
|
||||
// focuses views, while focus can only be requested in
|
||||
// {@link View#requestFocusNoSearch(int, Rect)} when touch mode is false. To note,
|
||||
// here we launch overview from home.
|
||||
rv.getViewRootImpl().touchModeChanged(false);
|
||||
}
|
||||
scheduleNextTask(cmd);
|
||||
};
|
||||
if (activityInterface.switchToRecentsIfVisible(completeCallback)) {
|
||||
// If successfully switched, wait until animation finishes
|
||||
return false;
|
||||
}
|
||||
@@ -268,6 +281,13 @@ public class OverviewCommandHelper {
|
||||
RecentsView rv =
|
||||
mOverviewComponentObserver.getActivityInterface().getVisibleRecentsView();
|
||||
if (rv != null) {
|
||||
// When the overview is launched via alt tab (cmd type is TYPE_SHOW_NEXT_FOCUS),
|
||||
// the touch mode somehow is not change to false by the Android framework.
|
||||
// The subsequent tab to go through tasks in overview can only be dispatched to
|
||||
// focuses 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.
|
||||
rv.getViewRootImpl().touchModeChanged(false);
|
||||
// Ensure that recents view has focus so that it receives the followup key inputs
|
||||
TaskView taskView = rv.getNextTaskView();
|
||||
if (taskView == null) {
|
||||
|
||||
Reference in New Issue
Block a user