OSDN Git Service

Add Long Press to Launch All Apps View
authorSid Soundararajan <ssoundar@google.com>
Wed, 15 Mar 2017 23:24:24 +0000 (16:24 -0700)
committerSid Soundararajan <ssoundar@google.com>
Mon, 20 Mar 2017 17:45:25 +0000 (10:45 -0700)
Test: On TV long-press HOME will bring a panel on the right
(left on RTL), showing a grid of apps.

BUG: 35806605
Change-Id: Ia2aec6b17e9522b9e6f1450f9d58f6a095d3ccf7

core/res/res/values/config.xml
services/core/java/com/android/server/policy/PhoneWindowManager.java

index 6e0d9dc..d9e8a4c 100644 (file)
 
     <!-- Control the behavior when the user long presses the home button.
             0 - Nothing
-            1 - Recent apps view in SystemUI
+            1 - Launch all apps intent
             2 - Launch assist intent
          This needs to match the constants in
          policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 548fa1e..7eb4df8 100644 (file)
@@ -297,7 +297,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
     // These need to match the documentation/constant in
     // core/res/res/values/config.xml
     static final int LONG_PRESS_HOME_NOTHING = 0;
-    static final int LONG_PRESS_HOME_RECENT_SYSTEM_UI = 1;
+    static final int LONG_PRESS_HOME_ALL_APPS = 1;
     static final int LONG_PRESS_HOME_ASSIST = 2;
     static final int LAST_LONG_PRESS_HOME_BEHAVIOR = LONG_PRESS_HOME_ASSIST;
 
@@ -1700,10 +1700,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
         }
         mHomeConsumed = true;
         performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
-
         switch (mLongPressOnHomeBehavior) {
-            case LONG_PRESS_HOME_RECENT_SYSTEM_UI:
-                toggleRecentApps();
+            case LONG_PRESS_HOME_ALL_APPS:
+                launchAllAppsAction();
                 break;
             case LONG_PRESS_HOME_ASSIST:
                 launchAssistAction(null, deviceId);
@@ -1714,6 +1713,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
         }
     }
 
+    private void launchAllAppsAction() {
+        Intent intent = new Intent(Intent.ACTION_ALL_APPS);
+        startActivityAsUser(intent, UserHandle.CURRENT);
+    }
+
     private void handleDoubleTapOnHome() {
         if (mDoubleTapOnHomeBehavior == DOUBLE_TAP_HOME_RECENT_SYSTEM_UI) {
             mHomeConsumed = true;
@@ -3332,8 +3336,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                     mHomeDoubleTapPending = false;
                     mHandler.removeCallbacks(mHomeDoubleTapTimeoutRunnable);
                     handleDoubleTapOnHome();
-                } else if (mLongPressOnHomeBehavior == LONG_PRESS_HOME_RECENT_SYSTEM_UI
-                        || mDoubleTapOnHomeBehavior == DOUBLE_TAP_HOME_RECENT_SYSTEM_UI) {
+                } else if (mDoubleTapOnHomeBehavior == DOUBLE_TAP_HOME_RECENT_SYSTEM_UI) {
                     preloadRecentApps();
                 }
             } else if ((event.getFlags() & KeyEvent.FLAG_LONG_PRESS) != 0) {