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

Commit 81afbcdb authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Allow apps to know what users think of their notifications.

- App wide blocking
- Topic importance

Change-Id: I9026e5c26c5dbcab1c86c385beede891f961933f
parent b1a235f9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -5225,6 +5225,7 @@ package android.app {
  public class NotificationManager {
    method public android.app.AutomaticZenRule addAutomaticZenRule(android.app.AutomaticZenRule);
    method public boolean areNotificationsEnabled();
    method public void cancel(int);
    method public void cancel(java.lang.String, int);
    method public void cancelAll();
@@ -5232,6 +5233,7 @@ package android.app {
    method public android.app.AutomaticZenRule getAutomaticZenRule(java.lang.String);
    method public java.util.List<android.app.AutomaticZenRule> getAutomaticZenRules();
    method public final int getCurrentInterruptionFilter();
    method public int getImportance(java.lang.String);
    method public android.app.NotificationManager.Policy getNotificationPolicy();
    method public boolean isNotificationPolicyAccessGranted();
    method public void notify(int, android.app.Notification);
+2 −0
Original line number Diff line number Diff line
@@ -5357,6 +5357,7 @@ package android.app {
  public class NotificationManager {
    method public android.app.AutomaticZenRule addAutomaticZenRule(android.app.AutomaticZenRule);
    method public boolean areNotificationsEnabled();
    method public void cancel(int);
    method public void cancel(java.lang.String, int);
    method public void cancelAll();
@@ -5364,6 +5365,7 @@ package android.app {
    method public android.app.AutomaticZenRule getAutomaticZenRule(java.lang.String);
    method public java.util.List<android.app.AutomaticZenRule> getAutomaticZenRules();
    method public final int getCurrentInterruptionFilter();
    method public int getImportance(java.lang.String);
    method public android.app.NotificationManager.Policy getNotificationPolicy();
    method public boolean isNotificationPolicyAccessGranted();
    method public void notify(int, android.app.Notification);
+2 −0
Original line number Diff line number Diff line
@@ -5225,6 +5225,7 @@ package android.app {
  public class NotificationManager {
    method public android.app.AutomaticZenRule addAutomaticZenRule(android.app.AutomaticZenRule);
    method public boolean areNotificationsEnabled();
    method public void cancel(int);
    method public void cancel(java.lang.String, int);
    method public void cancelAll();
@@ -5232,6 +5233,7 @@ package android.app {
    method public android.app.AutomaticZenRule getAutomaticZenRule(java.lang.String);
    method public java.util.List<android.app.AutomaticZenRule> getAutomaticZenRules();
    method public final int getCurrentInterruptionFilter();
    method public int getImportance(java.lang.String);
    method public android.app.NotificationManager.Policy getNotificationPolicy();
    method public boolean isNotificationPolicyAccessGranted();
    method public void notify(int, android.app.Notification);
+2 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ interface INotificationManager

    void setNotificationsEnabledForPackage(String pkg, int uid, boolean enabled);
    boolean areNotificationsEnabledForPackage(String pkg, int uid);
    boolean areNotificationsEnabled(String pkg);

    ParceledListSlice getTopics(String pkg, int uid);
    void setVisibilityOverride(String pkg, int uid, in Notification.Topic topic, int visibility);
@@ -54,6 +55,7 @@ interface INotificationManager
    int getPriority(String pkg, int uid, in Notification.Topic topic);
    void setImportance(String pkg, int uid, in Notification.Topic topic, int importance);
    int getImportance(String pkg, int uid, in Notification.Topic topic);
    int getTopicImportance(String pkg, String topicId);
    boolean doesAppUseTopics(String pkg, int uid);
    boolean hasBannedTopics(String pkg, int uid);

+22 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.app;

import com.android.internal.util.Preconditions;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SdkConstant;
@@ -37,6 +39,7 @@ import android.os.StrictMode;
import android.os.UserHandle;
import android.provider.Settings.Global;
import android.service.notification.IConditionListener;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.service.notification.ZenModeConfig;
import android.util.ArraySet;
@@ -503,6 +506,25 @@ public class NotificationManager
        return false;
    }

    public int getImportance(String topicId) {
        Preconditions.checkNotNull(topicId);
        INotificationManager service = getService();
        try {
            return service.getTopicImportance(mContext.getPackageName(), topicId);
        } catch (RemoteException e) {
        }
        return NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED;
    }

    public boolean areNotificationsEnabled() {
        INotificationManager service = getService();
        try {
            return service.areNotificationsEnabled(mContext.getPackageName());
        } catch (RemoteException e) {
        }
        return false;
    }

    /**
     * Checks the ability to read/modify notification policy for the calling package.
     *
Loading