diff options
3 files changed, 24 insertions, 42 deletions
diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java index a4cea3364998..6ed04018571c 100644 --- a/core/java/android/view/accessibility/AccessibilityManager.java +++ b/core/java/android/view/accessibility/AccessibilityManager.java @@ -2049,9 +2049,7 @@ public final class AccessibilityManager { * {@link android.view.Display#DEFAULT_DISPLAY}, is or lower than * {@link android.view.Display#INVALID_DISPLAY}, or is already being proxy-ed. * - * @throws SecurityException if the app does not hold the - * {@link Manifest.permission#MANAGE_ACCESSIBILITY} permission or the - * {@link Manifest.permission#CREATE_VIRTUAL_DEVICE} permission. + * @throws SecurityException if the app does not hold the required permissions. * * @hide */ @@ -2079,9 +2077,7 @@ public final class AccessibilityManager { * * @return {@code true} if the proxy is successfully unregistered. * - * @throws SecurityException if the app does not hold the - * {@link Manifest.permission#MANAGE_ACCESSIBILITY} permission or the - * {@link Manifest.permission#CREATE_VIRTUAL_DEVICE} permission. + * @throws SecurityException if the app does not hold the required permissions. * * @hide */ @@ -2134,8 +2130,8 @@ public final class AccessibilityManager { try { return service.startFlashNotificationSequence(context.getOpPackageName(), reason, mBinder); - } catch (RemoteException re) { - Log.e(LOG_TAG, "Error while start flash notification sequence", re); + } catch (RemoteException | SecurityException e) { + Log.e(LOG_TAG, "Error while start flash notification sequence", e); return false; } } @@ -2164,8 +2160,8 @@ public final class AccessibilityManager { try { return service.stopFlashNotificationSequence(context.getOpPackageName()); - } catch (RemoteException re) { - Log.e(LOG_TAG, "Error while stop flash notification sequence", re); + } catch (RemoteException | SecurityException e) { + Log.e(LOG_TAG, "Error while stop flash notification sequence", e); return false; } } @@ -2192,8 +2188,8 @@ public final class AccessibilityManager { try { return service.startFlashNotificationEvent(context.getOpPackageName(), reason, reasonPkg); - } catch (RemoteException re) { - Log.e(LOG_TAG, "Error while start flash notification event", re); + } catch (RemoteException | SecurityException e) { + Log.e(LOG_TAG, "Error while start flash notification event", e); return false; } } diff --git a/core/java/android/view/accessibility/IAccessibilityManager.aidl b/core/java/android/view/accessibility/IAccessibilityManager.aidl index 72a1fe424906..394485bd20c3 100644 --- a/core/java/android/view/accessibility/IAccessibilityManager.aidl +++ b/core/java/android/view/accessibility/IAccessibilityManager.aidl @@ -156,13 +156,13 @@ interface IAccessibilityManager { @EnforcePermission("INJECT_EVENTS") void injectInputEventToInputFilter(in InputEvent event); - @RequiresNoPermission + @EnforcePermission("MANAGE_ACCESSIBILITY") boolean startFlashNotificationSequence(String opPkg, int reason, IBinder token); - @RequiresNoPermission + @EnforcePermission("MANAGE_ACCESSIBILITY") boolean stopFlashNotificationSequence(String opPkg); - @RequiresNoPermission + @EnforcePermission("MANAGE_ACCESSIBILITY") boolean startFlashNotificationEvent(String opPkg, int reason, String reasonPkg); @RequiresNoPermission diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 7cbb97e56b01..5931cdf03f11 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -4886,40 +4886,26 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } @Override - @RequiresNoPermission - public boolean startFlashNotificationSequence(String opPkg, - @FlashNotificationReason int reason, IBinder token) { - final long identity = Binder.clearCallingIdentity(); - try { - return mFlashNotificationsController.startFlashNotificationSequence(opPkg, - reason, token); - } finally { - Binder.restoreCallingIdentity(identity); - } + @EnforcePermission(MANAGE_ACCESSIBILITY) + public boolean startFlashNotificationSequence(String opPkg, @FlashNotificationReason int reason, + IBinder token) { + startFlashNotificationSequence_enforcePermission(); + return mFlashNotificationsController.startFlashNotificationSequence(opPkg, reason, token); } @Override - @RequiresNoPermission + @EnforcePermission(MANAGE_ACCESSIBILITY) public boolean stopFlashNotificationSequence(String opPkg) { - final long identity = Binder.clearCallingIdentity(); - try { - return mFlashNotificationsController.stopFlashNotificationSequence(opPkg); - } finally { - Binder.restoreCallingIdentity(identity); - } + stopFlashNotificationSequence_enforcePermission(); + return mFlashNotificationsController.stopFlashNotificationSequence(opPkg); } @Override - @RequiresNoPermission - public boolean startFlashNotificationEvent(String opPkg, - @FlashNotificationReason int reason, String reasonPkg) { - final long identity = Binder.clearCallingIdentity(); - try { - return mFlashNotificationsController.startFlashNotificationEvent(opPkg, - reason, reasonPkg); - } finally { - Binder.restoreCallingIdentity(identity); - } + @EnforcePermission(MANAGE_ACCESSIBILITY) + public boolean startFlashNotificationEvent(String opPkg, @FlashNotificationReason int reason, + String reasonPkg) { + startFlashNotificationEvent_enforcePermission(); + return mFlashNotificationsController.startFlashNotificationEvent(opPkg, reason, reasonPkg); } @Override |