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

Commit cf63ff15 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Snoozing API changes

- No one can snooze for an undetermined amount of time
- Only the assistant can unsnooze
- Listeners can retrieve a list of snoozed notifications

Test: runtest systemui-notification, cts verifier
Change-Id: Idfaee6d8bc15a5d41630f86f7e852468b07dc7d0
parent 52faea7a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -35814,6 +35814,7 @@ package android.service.notification {
    method public final android.os.IBinder onBind(android.content.Intent);
    method public abstract android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification, int, boolean);
    method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, java.lang.String);
    method public final void unsnoozeNotification(java.lang.String);
    method public void updateNotificationChannel(java.lang.String, android.app.NotificationChannel);
    field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
  }
@@ -35829,6 +35830,7 @@ package android.service.notification {
    method public final int getCurrentInterruptionFilter();
    method public final int getCurrentListenerHints();
    method public android.service.notification.NotificationListenerService.RankingMap getCurrentRanking();
    method public final android.service.notification.StatusBarNotification[] getSnoozedNotifications();
    method public android.os.IBinder onBind(android.content.Intent);
    method public void onInterruptionFilterChanged(int);
    method public void onListenerConnected();
@@ -35847,8 +35849,6 @@ package android.service.notification {
    method public final void setNotificationsShown(java.lang.String[]);
    method public final void snoozeNotification(java.lang.String, java.lang.String);
    method public final void snoozeNotification(java.lang.String, long);
    method public final void snoozeNotification(java.lang.String);
    method public final void unsnoozeNotification(java.lang.String);
    field public static final int HINT_HOST_DISABLE_CALL_EFFECTS = 4; // 0x4
    field public static final int HINT_HOST_DISABLE_EFFECTS = 1; // 0x1
    field public static final int HINT_HOST_DISABLE_NOTIFICATION_EFFECTS = 2; // 0x2
+2 −2
Original line number Diff line number Diff line
@@ -38797,6 +38797,7 @@ package android.service.notification {
    method public final android.os.IBinder onBind(android.content.Intent);
    method public abstract android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification, int, boolean);
    method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, java.lang.String);
    method public final void unsnoozeNotification(java.lang.String);
    method public void updateNotificationChannel(java.lang.String, android.app.NotificationChannel);
    field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
  }
@@ -38814,6 +38815,7 @@ package android.service.notification {
    method public final int getCurrentInterruptionFilter();
    method public final int getCurrentListenerHints();
    method public android.service.notification.NotificationListenerService.RankingMap getCurrentRanking();
    method public final android.service.notification.StatusBarNotification[] getSnoozedNotifications();
    method public android.os.IBinder onBind(android.content.Intent);
    method public void onInterruptionFilterChanged(int);
    method public void onListenerConnected();
@@ -38834,9 +38836,7 @@ package android.service.notification {
    method public final void setOnNotificationPostedTrim(int);
    method public final void snoozeNotification(java.lang.String, java.lang.String);
    method public final void snoozeNotification(java.lang.String, long);
    method public final void snoozeNotification(java.lang.String);
    method public void unregisterAsSystemService() throws android.os.RemoteException;
    method public final void unsnoozeNotification(java.lang.String);
    field public static final int HINT_HOST_DISABLE_CALL_EFFECTS = 4; // 0x4
    field public static final int HINT_HOST_DISABLE_EFFECTS = 1; // 0x1
    field public static final int HINT_HOST_DISABLE_NOTIFICATION_EFFECTS = 2; // 0x2
+2 −2
Original line number Diff line number Diff line
@@ -35935,6 +35935,7 @@ package android.service.notification {
    method public final android.os.IBinder onBind(android.content.Intent);
    method public abstract android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification, int, boolean);
    method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, java.lang.String);
    method public final void unsnoozeNotification(java.lang.String);
    method public void updateNotificationChannel(java.lang.String, android.app.NotificationChannel);
    field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
  }
@@ -35950,6 +35951,7 @@ package android.service.notification {
    method public final int getCurrentInterruptionFilter();
    method public final int getCurrentListenerHints();
    method public android.service.notification.NotificationListenerService.RankingMap getCurrentRanking();
    method public final android.service.notification.StatusBarNotification[] getSnoozedNotifications();
    method public android.os.IBinder onBind(android.content.Intent);
    method public void onInterruptionFilterChanged(int);
    method public void onListenerConnected();
@@ -35968,8 +35970,6 @@ package android.service.notification {
    method public final void setNotificationsShown(java.lang.String[]);
    method public final void snoozeNotification(java.lang.String, java.lang.String);
    method public final void snoozeNotification(java.lang.String, long);
    method public final void snoozeNotification(java.lang.String);
    method public final void unsnoozeNotification(java.lang.String);
    field public static final int HINT_HOST_DISABLE_CALL_EFFECTS = 4; // 0x4
    field public static final int HINT_HOST_DISABLE_EFFECTS = 1; // 0x1
    field public static final int HINT_HOST_DISABLE_NOTIFICATION_EFFECTS = 2; // 0x2
+2 −2
Original line number Diff line number Diff line
@@ -75,8 +75,6 @@ interface INotificationManager

    void snoozeNotificationUntilContextFromListener(in INotificationListener token, String key, String snoozeCriterionId);
    void snoozeNotificationUntilFromListener(in INotificationListener token, String key, long until);
    void snoozeNotificationFromListener(in INotificationListener token, String key);
    void unsnoozeNotificationFromListener(in INotificationListener token, String key);

    void requestBindListener(in ComponentName component);
    void requestUnbindListener(in INotificationListener token);
@@ -86,6 +84,7 @@ interface INotificationManager
    void setNotificationsShownFromListener(in INotificationListener token, in String[] keys);

    ParceledListSlice getActiveNotificationsFromListener(in INotificationListener token, in String[] keys, int trim);
    ParceledListSlice getSnoozedNotificationsFromListener(in INotificationListener token, int trim);
    void requestHintsFromListener(in INotificationListener token, int hints);
    int getHintsFromListener(in INotificationListener token);
    void requestInterruptionFilterFromListener(in INotificationListener token, int interruptionFilter);
@@ -100,6 +99,7 @@ interface INotificationManager
    void updateNotificationChannelFromAssistant(in INotificationListener token, String pkg, in NotificationChannel channel);
    void deleteNotificationChannelFromAssistant(in INotificationListener token, String pkg, String channelId);
    ParceledListSlice getNotificationChannelsFromAssistant(in INotificationListener token, String pkg);
    void unsnoozeNotificationFromAssistant(in INotificationListener token, String key);

    ComponentName getEffectsSuppressor();
    boolean matchesCallFilter(in Bundle extras);
+18 −0
Original line number Diff line number Diff line
@@ -118,6 +118,24 @@ public abstract class NotificationAssistantService extends NotificationListenerS
        }
    }

    /**
     * Inform the notification manager about un-snoozing a specific notification.
     * <p>
     * This should only be used for notifications snoozed by this listener using
     * {@link #snoozeNotification(String, String)}. Once un-snoozed, you will get a
     * {@link #onNotificationPosted(StatusBarNotification, RankingMap)} callback for the
     * notification.
     * @param key The key of the notification to snooze
     */
    public final void unsnoozeNotification(String key) {
        if (!isBound()) return;
        try {
            getNotificationInterface().unsnoozeNotificationFromAssistant(mWrapper, key);
        } catch (android.os.RemoteException ex) {
            Log.v(TAG, "Unable to contact notification manager", ex);
        }
    }

    /**
     * Creates a notification channel that notifications can be posted to for a given package.
     *
Loading