diff options
| author | 2016-11-03 15:28:03 -0700 | |
|---|---|---|
| committer | 2016-11-04 21:12:25 +0000 | |
| commit | 2585033100755e8ce6cd43db15a7cfd67e7264a3 (patch) | |
| tree | 4c0481cd7033a42c70433a24571167d6fccd052a | |
| parent | eed332badaf9e3314d32aca8cf9087bcdd168e74 (diff) | |
Add check for null manger for a11y recents action
Bug: 31986988
Test: Ran A11y cts
Change-Id: Ia6a1e1b921d8b0008edbcf1f1a8d1d3d0eb969c6
(cherry picked from commit 3cdd6c7654ff688b2dbd638e388bc56db7a020e2)
| -rw-r--r-- | core/java/android/accessibilityservice/AccessibilityService.java | 3 | ||||
| -rw-r--r-- | services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java | 23 |
2 files changed, 16 insertions, 10 deletions
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java index 163e7d2661b9..b311c218de30 100644 --- a/core/java/android/accessibilityservice/AccessibilityService.java +++ b/core/java/android/accessibilityservice/AccessibilityService.java @@ -334,7 +334,8 @@ public abstract class AccessibilityService extends Service { public static final int GLOBAL_ACTION_HOME = 2; /** - * Action to toggle showing the overview of recent apps + * Action to toggle showing the overview of recent apps. Will fail on platforms that don't + * show recent apps. */ public static final int GLOBAL_ACTION_RECENTS = 3; diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index e00178f8ea41..58bb5f379312 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -2891,8 +2891,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { sendDownAndUpKeyEvents(KeyEvent.KEYCODE_HOME); } return true; case AccessibilityService.GLOBAL_ACTION_RECENTS: { - openRecents(); - } return true; + return openRecents(); + } case AccessibilityService.GLOBAL_ACTION_NOTIFICATIONS: { expandNotifications(); } return true; @@ -3385,14 +3385,19 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { Binder.restoreCallingIdentity(token); } - private void openRecents() { + private boolean openRecents() { final long token = Binder.clearCallingIdentity(); - - StatusBarManagerInternal statusBarService = LocalServices.getService( - StatusBarManagerInternal.class); - statusBarService.toggleRecentApps(); - - Binder.restoreCallingIdentity(token); + try { + StatusBarManagerInternal statusBarService = LocalServices.getService( + StatusBarManagerInternal.class); + if (statusBarService == null) { + return false; + } + statusBarService.toggleRecentApps(); + } finally { + Binder.restoreCallingIdentity(token); + } + return true; } private void showGlobalActions() { |