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
This commit is contained in:
Svetoslav Ganov
2012-06-04 14:02:09 -07:00
parent 01827ce9f2
commit c682fc965d

View File

@@ -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);