summaryrefslogtreecommitdiffstats
path: root/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides
diff options
context:
space:
mode:
authorKevin <kevhan@google.com>2019-01-17 18:04:10 -0800
committerKevin <kevhan@google.com>2019-01-23 17:12:44 -0800
commit792fcc3aec4e085fc864541fb0396ef09bd23342 (patch)
treebd4e8e87abc008d8e1fac484fd83d27f8b76abca /quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides
parent38e87e8010f769a80e41d83847a500b066e28628 (diff)
downloadandroid_packages_apps_Trebuchet-792fcc3aec4e085fc864541fb0396ef09bd23342.tar.gz
android_packages_apps_Trebuchet-792fcc3aec4e085fc864541fb0396ef09bd23342.tar.bz2
android_packages_apps_Trebuchet-792fcc3aec4e085fc864541fb0396ef09bd23342.zip
Remove OverviewToAllAppsController for Go
Go's recents does not support an overview to all apps transition (as there will be no hotseat and swiping will be used to navigate the view itself). As a result, we never need the controller, so we don't take in the class as a source and do not add it as a touch controller. Bug: 114136250 Test: Manual test Launcher3QuickstepGo, NexusLauncher, Launcher3IconRecentsGo Change-Id: I7fff9d1e8727bd978e84462436e37219c57f7af6
Diffstat (limited to 'quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides')
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java80
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java22
2 files changed, 101 insertions, 1 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java
new file mode 100644
index 000000000..0f9b57f03
--- /dev/null
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewToAllAppsTouchController.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2017 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 static com.android.launcher3.LauncherState.OVERVIEW;
+
+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;
+import com.android.quickstep.TouchInteractionService;
+import com.android.quickstep.views.RecentsView;
+
+/**
+ * Touch controller from going from OVERVIEW to ALL_APPS.
+ *
+ * This is used in landscape mode. It is also used in portrait mode for the fallback recents.
+ */
+public class OverviewToAllAppsTouchController extends PortraitStatesTouchController {
+
+ public OverviewToAllAppsTouchController(Launcher l) {
+ super(l);
+ }
+
+ @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 if (mLauncher.isInState(OVERVIEW)) {
+ RecentsView rv = mLauncher.getOverviewPanel();
+ return ev.getY() > (rv.getBottom() - rv.getPaddingBottom());
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ protected LauncherState getTargetState(LauncherState fromState, boolean isDragTowardPositive) {
+ if (fromState == ALL_APPS && !isDragTowardPositive) {
+ // Should swipe down go to OVERVIEW instead?
+ return TouchInteractionService.isConnected() ?
+ mLauncher.getStateManager().getLastState() : NORMAL;
+ } else if (isDragTowardPositive) {
+ return ALL_APPS;
+ }
+ return fromState;
+ }
+
+ @Override
+ protected int getLogContainerTypeForNormalState() {
+ return LauncherLogProto.ContainerType.WORKSPACE;
+ }
+}
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java
index f18f43c4c..0b62beed1 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java
@@ -22,11 +22,14 @@ import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.OVERVIEW;
+import androidx.annotation.Nullable;
+
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.launcher3.LauncherStateManager.StateHandler;
import com.android.launcher3.anim.AnimatorPlaybackController;
import com.android.launcher3.util.TouchController;
+import com.android.quickstep.OverviewInteractionState;
import com.android.quickstep.views.RecentsView;
/**
@@ -45,11 +48,28 @@ public final class RecentsUiFactory {
* @param launcher the launcher activity
* @return the touch controller for recents tasks
*/
- public static TouchController createTaskSwipeController(Launcher launcher) {
+ public static @Nullable TouchController createTaskSwipeController(Launcher launcher) {
return new LauncherTaskViewController(launcher);
}
/**
+ * Creates and returns a touch controller for swiping from overview state to the all apps state
+ * if such an action is supported.
+ *
+ * @param launcher the launcher activity
+ * @return the touch controller for swiping from overview to all apps
+ */
+ public static @Nullable TouchController createOverviewToAllAppsTouchController(
+ Launcher launcher) {
+ boolean swipeUpEnabled = OverviewInteractionState.INSTANCE.get(launcher)
+ .isSwipeUpGestureEnabled();
+ if (!swipeUpEnabled || launcher.getDeviceProfile().isVerticalBarLayout()) {
+ return new OverviewToAllAppsTouchController(launcher);
+ }
+ return null;
+ }
+
+ /**
* Creates and returns the controller responsible for recents view state transitions.
*
* @param launcher the launcher activity