Disable the two-swipe when quickstep is disabled.

Change-Id: I5eee57def216406fd8f7766ba4b87cd5de98f0a4
diff --git a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
index 13f9601..447c56e 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
@@ -16,7 +16,11 @@
 
 package com.android.launcher3.uioverrides;
 
+import static com.android.launcher3.Utilities.getPrefs;
+import static com.android.quickstep.OverviewInteractionState.KEY_SWIPE_UP_ENABLED;
+
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.view.View;
 import android.view.View.AccessibilityDelegate;
 
@@ -33,6 +37,14 @@
 public class UiFactory {
 
     public static TouchController[] createTouchControllers(Launcher launcher) {
+        SharedPreferences prefs = getPrefs(launcher);
+        boolean swipeUpEnabled = prefs.getBoolean(KEY_SWIPE_UP_ENABLED, true);
+        if (!swipeUpEnabled) {
+            return new TouchController[] {
+                    launcher.getDragController(),
+                    new LandscapeStatesTouchController(launcher),
+                    new TaskViewTouchController(launcher)};
+        }
         if (launcher.getDeviceProfile().isVerticalBarLayout()) {
             return new TouchController[] {
                     launcher.getDragController(),
diff --git a/quickstep/src/com/android/quickstep/OverviewInteractionState.java b/quickstep/src/com/android/quickstep/OverviewInteractionState.java
index 522a883..22b1757 100644
--- a/quickstep/src/com/android/quickstep/OverviewInteractionState.java
+++ b/quickstep/src/com/android/quickstep/OverviewInteractionState.java
@@ -70,7 +70,7 @@
         return INSTANCE;
     }
 
-    private static final String KEY_SWIPE_UP_ENABLED = "pref_enable_quickstep";
+    public static final String KEY_SWIPE_UP_ENABLED = "pref_enable_quickstep";
 
     private static final int MSG_SET_PROXY = 200;
     private static final int MSG_SET_BACK_BUTTON_VISIBLE = 201;
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index e779b5e..ed94aa43 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -242,6 +242,12 @@
 
     private RotationHelper mRotationHelper;
 
+    // Used to keep track of the swipe up state
+    private SharedPreferences.OnSharedPreferenceChangeListener mSharedPrefsListener =
+            (sharedPreferences, s) -> {
+                mDragLayer.setup(mDragController);
+            };
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         if (DEBUG_STRICT_MODE) {
@@ -273,6 +279,7 @@
         initDeviceProfile(app.getInvariantDeviceProfile());
 
         mSharedPrefs = Utilities.getPrefs(this);
+        mSharedPrefs.registerOnSharedPreferenceChangeListener(mSharedPrefsListener);
         mIconCache = app.getIconCache();
         mAccessibilityDelegate = new LauncherAccessibilityDelegate(this);
 
@@ -758,6 +765,7 @@
         }
         NotificationListener.removeNotificationsChangedListener();
         getStateManager().moveToRestState();
+
     }
 
     @Override
@@ -1340,6 +1348,7 @@
             LauncherAppState.getInstance(this).setLauncher(null);
         }
         mRotationHelper.destroy();
+        mSharedPrefs.unregisterOnSharedPreferenceChangeListener(mSharedPrefsListener);
 
         try {
             mAppWidgetHost.stopListening();