From 3d5551a18ed7783aababb5803ac744e0ff68f8e1 Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 29 Jan 2019 13:07:26 -0800 Subject: [PATCH] Split OverviewToAllApps for Go This CL swaps out the current OverviewToAllApps touch controller with the Go specific implementation. Moreover, since we only use this class in landscape, we rename it to LandscapeStatesTouchController to avoid confusion. Bug: 114136250 Test: Manual test NexusLauncher, Launcher3QuickstepGo, Go recents Change-Id: I6025cfe9f400705a4666fd92298a08a0c0ef7202 --- .../LandscapeStatesTouchController.java | 70 +++++++++++++++++++ .../uioverrides/RecentsUiFactory.java | 2 +- .../OverviewToAllAppsTouchController.java | 0 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 go/quickstep/src/com/android/launcher3/uioverrides/LandscapeStatesTouchController.java rename quickstep/{ => recents_ui_overrides}/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java (100%) diff --git a/go/quickstep/src/com/android/launcher3/uioverrides/LandscapeStatesTouchController.java b/go/quickstep/src/com/android/launcher3/uioverrides/LandscapeStatesTouchController.java new file mode 100644 index 0000000000..2c91bc31c5 --- /dev/null +++ b/go/quickstep/src/com/android/launcher3/uioverrides/LandscapeStatesTouchController.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.uioverrides; + +import static com.android.launcher3.LauncherState.ALL_APPS; +import static com.android.launcher3.LauncherState.NORMAL; + +import android.view.MotionEvent; + +import com.android.launcher3.AbstractFloatingView; +import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherState; +import com.android.launcher3.userevent.nano.LauncherLogProto; + +/** + * Touch controller for landscape mode. + */ +public final class LandscapeStatesTouchController extends PortraitStatesTouchController { + + public LandscapeStatesTouchController(Launcher l) { + super(l, true /* allowDragToOverview */); + } + + @Override + protected boolean canInterceptTouch(MotionEvent ev) { + if (mCurrentAnimation != null) { + // If we are already animating from a previous state, we can intercept. + return true; + } + if (AbstractFloatingView.getTopOpenView(mLauncher) != null) { + return false; + } + if (mLauncher.isInState(ALL_APPS)) { + // In all-apps only listen if the container cannot scroll itself + return mLauncher.getAppsView().shouldContainerScroll(ev); + } else if (mLauncher.isInState(NORMAL)) { + return true; + } else { + return false; + } + } + + @Override + protected LauncherState getTargetState(LauncherState fromState, boolean isDragTowardPositive) { + if (fromState == ALL_APPS && !isDragTowardPositive) { + return NORMAL; + } else if (isDragTowardPositive) { + return ALL_APPS; + } + return fromState; + } + + @Override + protected int getLogContainerTypeForNormalState() { + return LauncherLogProto.ContainerType.WORKSPACE; + } +} diff --git a/go/quickstep/src/com/android/launcher3/uioverrides/RecentsUiFactory.java b/go/quickstep/src/com/android/launcher3/uioverrides/RecentsUiFactory.java index 7381574513..12f5360c22 100644 --- a/go/quickstep/src/com/android/launcher3/uioverrides/RecentsUiFactory.java +++ b/go/quickstep/src/com/android/launcher3/uioverrides/RecentsUiFactory.java @@ -44,7 +44,7 @@ public abstract class RecentsUiFactory { list.add(launcher.getDragController()); if (launcher.getDeviceProfile().isVerticalBarLayout()) { - list.add(new OverviewToAllAppsTouchController(launcher)); + list.add(new LandscapeStatesTouchController(launcher)); list.add(new LandscapeEdgeSwipeController(launcher)); } else { boolean allowDragToOverview = OverviewInteractionState.INSTANCE.get(launcher) diff --git a/quickstep/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java similarity index 100% rename from quickstep/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java rename to quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java