NLS: Add a public signal value for an undefined filter value.

We have three possible defined values for getInterruptionFilter().
i.e. All/Priority/None.

However, this value is only returned to listeners once connected,
otherwise we return 0, an undefined value.

This change gives a name to this undefined value to make it clear
that callers should not infer any meaning from it.

INTERRUPTION_FILTER_UNKNOWN = 0;

Bug: 19288429
Change-Id: I8ae94d1723289ca5714800906f9bf4e7e8111813
This commit is contained in:
John Spurlock
2015-02-12 23:25:12 -05:00
parent ad680d46be
commit 8310410365
4 changed files with 15 additions and 4 deletions

View File

@@ -27533,6 +27533,7 @@ package android.service.notification {
field public static final int INTERRUPTION_FILTER_ALL = 1; // 0x1
field public static final int INTERRUPTION_FILTER_NONE = 3; // 0x3
field public static final int INTERRUPTION_FILTER_PRIORITY = 2; // 0x2
field public static final int INTERRUPTION_FILTER_UNKNOWN = 0; // 0x0
field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationListenerService";
}

View File

@@ -29168,6 +29168,7 @@ package android.service.notification {
field public static final int INTERRUPTION_FILTER_ALL = 1; // 0x1
field public static final int INTERRUPTION_FILTER_NONE = 3; // 0x3
field public static final int INTERRUPTION_FILTER_PRIORITY = 2; // 0x2
field public static final int INTERRUPTION_FILTER_UNKNOWN = 0; // 0x0
field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationListenerService";
field public static final int TRIM_FULL = 0; // 0x0
field public static final int TRIM_LIGHT = 1; // 0x1

View File

@@ -77,6 +77,14 @@ public abstract class NotificationListenerService extends Service {
*/
public static final int INTERRUPTION_FILTER_NONE = 3;
/** {@link #getCurrentInterruptionFilter() Interruption filter} constant - returned when
* the value is unavailable for any reason. For example, before the notification listener
* is connected.
*
* {@see #onListenerConnected()}
*/
public static final int INTERRUPTION_FILTER_UNKNOWN = 0;
/** {@link #getCurrentListenerHints() Listener hints} constant - the primary device UI
* should disable notification sound, vibrating and other visual or aural effects.
* This does not change the interruption filter, only the effects. **/
@@ -473,15 +481,16 @@ public abstract class NotificationListenerService extends Service {
* <p>
* Listen for updates using {@link #onInterruptionFilterChanged(int)}.
*
* @return One of the INTERRUPTION_FILTER_ constants, or 0 on errors.
* @return One of the INTERRUPTION_FILTER_ constants, or INTERRUPTION_FILTER_UNKNOWN when
* unavailable.
*/
public final int getCurrentInterruptionFilter() {
if (!isBound()) return 0;
if (!isBound()) return INTERRUPTION_FILTER_UNKNOWN;
try {
return getNotificationInterface().getInterruptionFilterFromListener(mWrapper);
} catch (android.os.RemoteException ex) {
Log.v(TAG, "Unable to contact notification manager", ex);
return 0;
return INTERRUPTION_FILTER_UNKNOWN;
}
}

View File

@@ -207,7 +207,7 @@ public class NotificationManagerService extends SystemService {
private final ArraySet<ManagedServiceInfo> mListenersDisablingEffects = new ArraySet<>();
private ComponentName mEffectsSuppressor;
private int mListenerHints; // right now, all hints are global
private int mInterruptionFilter; // current ZEN mode as communicated to listeners
private int mInterruptionFilter = NotificationListenerService.INTERRUPTION_FILTER_UNKNOWN;
// for enabling and disabling notification pulse behavior
private boolean mScreenOn = true;