From c682fc965df2518a95d23e39ec51d788100d20ec Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Mon, 4 Jun 2012 14:02:09 -0700 Subject: [PATCH] Global accessibility action to open recent apps shows the old dialog style. 1. The global action to open recent apps shows the old dialog style rent apps panel. Apparently the key code to open recent apps is not opening the new UI so the AccessibilityManagerService is calling directly the method on the IStatusBarSerivce to do so. bug:6607664 Change-Id: I94c1963b07947776bf1c2448903b26f3603f9a59 --- .../AccessibilityManagerService.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java index 3e8f512794305..41f4e008bd57a 100644 --- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -73,6 +73,7 @@ import android.view.accessibility.IAccessibilityManagerClient; import com.android.internal.R; import com.android.internal.content.PackageMonitor; +import com.android.internal.statusbar.IStatusBarService; import com.android.server.wm.WindowManagerService; import org.xmlpull.v1.XmlPullParserException; @@ -1535,7 +1536,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { sendDownAndUpKeyEvents(KeyEvent.KEYCODE_HOME); } return true; case AccessibilityService.GLOBAL_ACTION_RECENTS: { - sendDownAndUpKeyEvents(KeyEvent.KEYCODE_APP_SWITCH); + openRecents(); } return true; case AccessibilityService.GLOBAL_ACTION_NOTIFICATIONS: { expandStatusBar(); @@ -1728,6 +1729,20 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { Binder.restoreCallingIdentity(token); } + private void openRecents() { + final long token = Binder.clearCallingIdentity(); + + IStatusBarService statusBarService = IStatusBarService.Stub.asInterface( + ServiceManager.getService("statusbar")); + try { + statusBarService.toggleRecentApps(); + } catch (RemoteException e) { + Slog.e(LOG_TAG, "Error toggling recent apps."); + } + + Binder.restoreCallingIdentity(token); + } + private IAccessibilityInteractionConnection getConnectionLocked(int windowId) { if (DEBUG) { Slog.i(LOG_TAG, "Trying to get interaction connection to windowId: " + windowId);