diff options
| author | 2016-11-11 23:17:41 +0000 | |
|---|---|---|
| committer | 2016-11-11 23:17:41 +0000 | |
| commit | 0cd036da23bb18c3e77fede64afa7b16d13f429c (patch) | |
| tree | 10fb4dd10b2a20e37ca78166fe3361392ee17517 | |
| parent | 00ab52e3a200bdd99bbb79cdec57ff8604e22b8b (diff) | |
| parent | 2585033100755e8ce6cd43db15a7cfd67e7264a3 (diff) | |
Add check for null manger for a11y recents action
am: 2585033100
Change-Id: I9b5977ad876048e5c527ff1f8ef6b989283a0e73
| -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() { |