Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13b96a67 authored by Eugene Susla's avatar Eugene Susla
Browse files

Store user_set for notification listeners

Bug: 165951651
Test: atest android.app.cts.NotificationManagerTest#testGrantRevokeNotificationManagerApis_works
Change-Id: I69ec26d90b9e4c0e5836b19c695fa9ecb64d30d5
parent 7e56edb8
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -679,7 +679,7 @@ package android.app {
    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public java.util.List<android.content.ComponentName> getEnabledNotificationListeners();
    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public java.util.List<android.content.ComponentName> getEnabledNotificationListeners();
    method public boolean isNotificationAssistantAccessGranted(@NonNull android.content.ComponentName);
    method public boolean isNotificationAssistantAccessGranted(@NonNull android.content.ComponentName);
    method public void setNotificationAssistantAccessGranted(@Nullable android.content.ComponentName, boolean);
    method public void setNotificationAssistantAccessGranted(@Nullable android.content.ComponentName, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public void setNotificationListenerAccessGranted(@NonNull android.content.ComponentName, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public void setNotificationListenerAccessGranted(@NonNull android.content.ComponentName, boolean, boolean);
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_CLOSE_NOTIFICATION_HANDLER_PANEL = "android.app.action.CLOSE_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_CLOSE_NOTIFICATION_HANDLER_PANEL = "android.app.action.CLOSE_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_OPEN_NOTIFICATION_HANDLER_PANEL = "android.app.action.OPEN_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_OPEN_NOTIFICATION_HANDLER_PANEL = "android.app.action.OPEN_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_TOGGLE_NOTIFICATION_HANDLER_PANEL = "android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_TOGGLE_NOTIFICATION_HANDLER_PANEL = "android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL";
+1 −0
Original line number Original line Diff line number Diff line
@@ -268,6 +268,7 @@ package android.app {
    method public void disallowAssistantAdjustment(String);
    method public void disallowAssistantAdjustment(String);
    method public android.content.ComponentName getEffectsSuppressor();
    method public android.content.ComponentName getEffectsSuppressor();
    method public boolean matchesCallFilter(android.os.Bundle);
    method public boolean matchesCallFilter(android.os.Bundle);
    method @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public void setNotificationListenerAccessGranted(@NonNull android.content.ComponentName, boolean, boolean);
    method public void updateNotificationChannel(@NonNull String, int, @NonNull android.app.NotificationChannel);
    method public void updateNotificationChannel(@NonNull String, int, @NonNull android.app.NotificationChannel);
  }
  }


+2 −2
Original line number Original line Diff line number Diff line
@@ -177,9 +177,9 @@ interface INotificationManager
    boolean isNotificationListenerAccessGranted(in ComponentName listener);
    boolean isNotificationListenerAccessGranted(in ComponentName listener);
    boolean isNotificationListenerAccessGrantedForUser(in ComponentName listener, int userId);
    boolean isNotificationListenerAccessGrantedForUser(in ComponentName listener, int userId);
    boolean isNotificationAssistantAccessGranted(in ComponentName assistant);
    boolean isNotificationAssistantAccessGranted(in ComponentName assistant);
    void setNotificationListenerAccessGranted(in ComponentName listener, boolean enabled);
    void setNotificationListenerAccessGranted(in ComponentName listener, boolean enabled, boolean userSet);
    void setNotificationAssistantAccessGranted(in ComponentName assistant, boolean enabled);
    void setNotificationAssistantAccessGranted(in ComponentName assistant, boolean enabled);
    void setNotificationListenerAccessGrantedForUser(in ComponentName listener, int userId, boolean enabled);
    void setNotificationListenerAccessGrantedForUser(in ComponentName listener, int userId, boolean enabled, boolean userSet);
    void setNotificationAssistantAccessGrantedForUser(in ComponentName assistant, int userId, boolean enabled);
    void setNotificationAssistantAccessGrantedForUser(in ComponentName assistant, int userId, boolean enabled);
    List<String> getEnabledNotificationListenerPackages();
    List<String> getEnabledNotificationListenerPackages();
    List<ComponentName> getEnabledNotificationListeners(int userId);
    List<ComponentName> getEnabledNotificationListeners(int userId);
+11 −3
Original line number Original line Diff line number Diff line
@@ -1565,6 +1565,12 @@ public class NotificationManager {
        }
        }
    }
    }


    /** @hide */
    public void setNotificationListenerAccessGranted(
            @NonNull ComponentName listener, boolean granted) {
        setNotificationListenerAccessGranted(listener, granted, true);
    }

    /**
    /**
     * Grants/revokes Notification Listener access to the given component for current user.
     * Grants/revokes Notification Listener access to the given component for current user.
     * To grant access for a particular user, obtain this service by using the {@link Context}
     * To grant access for a particular user, obtain this service by using the {@link Context}
@@ -1572,15 +1578,17 @@ public class NotificationManager {
     *
     *
     * @param listener Name of component to grant/revoke access
     * @param listener Name of component to grant/revoke access
     * @param granted Grant/revoke access
     * @param granted Grant/revoke access
     * @param userSet Whether the action was triggered explicitly by user
     * @hide
     * @hide
     */
     */
    @SystemApi
    @SystemApi
    @TestApi
    @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS)
    @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS)
    public void setNotificationListenerAccessGranted(
    public void setNotificationListenerAccessGranted(
            @NonNull ComponentName listener, boolean granted) {
            @NonNull ComponentName listener, boolean granted, boolean userSet) {
        INotificationManager service = getService();
        INotificationManager service = getService();
        try {
        try {
            service.setNotificationListenerAccessGranted(listener, granted);
            service.setNotificationListenerAccessGranted(listener, granted, userSet);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
@@ -1591,7 +1599,7 @@ public class NotificationManager {
            boolean granted) {
            boolean granted) {
        INotificationManager service = getService();
        INotificationManager service = getService();
        try {
        try {
            service.setNotificationListenerAccessGrantedForUser(listener, userId, granted);
            service.setNotificationListenerAccessGrantedForUser(listener, userId, granted, true);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
+1 −1
Original line number Original line Diff line number Diff line
@@ -679,7 +679,7 @@ package android.app {
    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public java.util.List<android.content.ComponentName> getEnabledNotificationListeners();
    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public java.util.List<android.content.ComponentName> getEnabledNotificationListeners();
    method public boolean isNotificationAssistantAccessGranted(@NonNull android.content.ComponentName);
    method public boolean isNotificationAssistantAccessGranted(@NonNull android.content.ComponentName);
    method public void setNotificationAssistantAccessGranted(@Nullable android.content.ComponentName, boolean);
    method public void setNotificationAssistantAccessGranted(@Nullable android.content.ComponentName, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public void setNotificationListenerAccessGranted(@NonNull android.content.ComponentName, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_NOTIFICATION_LISTENERS) public void setNotificationListenerAccessGranted(@NonNull android.content.ComponentName, boolean, boolean);
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_CLOSE_NOTIFICATION_HANDLER_PANEL = "android.app.action.CLOSE_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_CLOSE_NOTIFICATION_HANDLER_PANEL = "android.app.action.CLOSE_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_OPEN_NOTIFICATION_HANDLER_PANEL = "android.app.action.OPEN_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_OPEN_NOTIFICATION_HANDLER_PANEL = "android.app.action.OPEN_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_TOGGLE_NOTIFICATION_HANDLER_PANEL = "android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL";
    field @RequiresPermission(android.Manifest.permission.STATUS_BAR_SERVICE) public static final String ACTION_TOGGLE_NOTIFICATION_HANDLER_PANEL = "android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL";
Loading