diff --git a/api/current.txt b/api/current.txt index da1ebae78c8ac..8514584480646 100644 --- a/api/current.txt +++ b/api/current.txt @@ -27450,19 +27450,23 @@ package android.service.notification { method public final void cancelNotification(java.lang.String); method public final void cancelNotifications(java.lang.String[]); method public android.service.notification.StatusBarNotification[] getActiveNotifications(); - method public final int getCurrentListenerFlags(); + method public final int getCurrentListenerHints(); method public android.service.notification.NotificationListenerService.RankingMap getCurrentRanking(); method public android.os.IBinder onBind(android.content.Intent); method public void onListenerConnected(); - method public void onListenerFlagsChanged(int); + method public void onListenerHintsChanged(int); method public void onNotificationPosted(android.service.notification.StatusBarNotification); method public void onNotificationPosted(android.service.notification.StatusBarNotification, android.service.notification.NotificationListenerService.RankingMap); method public void onNotificationRankingUpdate(android.service.notification.NotificationListenerService.RankingMap); method public void onNotificationRemoved(android.service.notification.StatusBarNotification); method public void onNotificationRemoved(android.service.notification.StatusBarNotification, android.service.notification.NotificationListenerService.RankingMap); - method public final void requestListenerFlags(int); - field public static final int FLAG_DISABLE_HOST_ALERTS = 1; // 0x1 - field public static final int FLAG_NONE = 0; // 0x0 + method public final void requestListenerHints(int); + field public static final int HINTS_NONE = 0; // 0x0 + field public static final int HINT_HOST_DISABLE_EFFECTS = 4; // 0x4 + field public static final int HINT_HOST_INTERRUPTION_LEVEL_ALL = 1; // 0x1 + field public static final int HINT_HOST_INTERRUPTION_LEVEL_NONE = 3; // 0x3 + field public static final int HINT_HOST_INTERRUPTION_LEVEL_PRIORITY = 2; // 0x2 + field public static final int HOST_INTERRUPTION_LEVEL_MASK = 3; // 0x3 field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationListenerService"; } diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl index 113c5330bc5aa..4b659347e80ab 100644 --- a/core/java/android/app/INotificationManager.aidl +++ b/core/java/android/app/INotificationManager.aidl @@ -59,8 +59,8 @@ interface INotificationManager void cancelNotificationsFromListener(in INotificationListener token, in String[] keys); ParceledListSlice getActiveNotificationsFromListener(in INotificationListener token); - void requestFlagsFromListener(in INotificationListener token, int flags); - int getFlagsFromListener(in INotificationListener token); + void requestHintsFromListener(in INotificationListener token, int hints); + int getHintsFromListener(in INotificationListener token); ZenModeConfig getZenModeConfig(); boolean setZenModeConfig(in ZenModeConfig config); diff --git a/core/java/android/service/notification/INotificationListener.aidl b/core/java/android/service/notification/INotificationListener.aidl index 19a8ef594508d..93b2d3bfadf80 100644 --- a/core/java/android/service/notification/INotificationListener.aidl +++ b/core/java/android/service/notification/INotificationListener.aidl @@ -28,5 +28,5 @@ oneway interface INotificationListener void onNotificationRemoved(in StatusBarNotification notification, in NotificationRankingUpdate update); void onNotificationRankingUpdate(in NotificationRankingUpdate update); - void onListenerFlagsChanged(int flags); + void onListenerHintsChanged(int hints); } \ No newline at end of file diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java index f807ad655ca5c..119f7f6c973f2 100644 --- a/core/java/android/service/notification/NotificationListenerService.java +++ b/core/java/android/service/notification/NotificationListenerService.java @@ -58,11 +58,26 @@ public abstract class NotificationListenerService extends Service { private final String TAG = NotificationListenerService.class.getSimpleName() + "[" + getClass().getSimpleName() + "]"; - /** {@link #getCurrentListenerFlags() Listener flags} constant - default state. **/ - public static final int FLAG_NONE = 0; - /** {@link #getCurrentListenerFlags() Listener flags} constant - the primary device UI - * should disable notification sound, vibrating and other visual or aural effects. **/ - public static final int FLAG_DISABLE_HOST_ALERTS = 1; + /** {@link #getCurrentListenerHints() Listener hints} constant - default state. */ + public static final int HINTS_NONE = 0; + + /** Bitmask range for {@link #getCurrentListenerHints() Listener hints} host interruption level + * constants. */ + public static final int HOST_INTERRUPTION_LEVEL_MASK = 0x3; + + /** {@link #getCurrentListenerHints() Listener hints} constant - Normal interruption level. */ + public static final int HINT_HOST_INTERRUPTION_LEVEL_ALL = 1; + + /** {@link #getCurrentListenerHints() Listener hints} constant - Priority interruption level. */ + public static final int HINT_HOST_INTERRUPTION_LEVEL_PRIORITY = 2; + + /** {@link #getCurrentListenerHints() Listener hints} constant - No interruptions level. */ + public static final int HINT_HOST_INTERRUPTION_LEVEL_NONE = 3; + + /** {@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 level, only the effects. **/ + public static final int HINT_HOST_DISABLE_EFFECTS = 1 << 2; private INotificationListenerWrapper mWrapper = null; private RankingMap mRankingMap; @@ -174,11 +189,11 @@ public abstract class NotificationListenerService extends Service { /** * Implement this method to be notified when the - * {@link #getCurrentListenerFlags() listener flags} change. + * {@link #getCurrentListenerHints() Listener hints} change. * - * @param flags The current {@link #getCurrentListenerFlags() listener flags}. + * @param hints The current {@link #getCurrentListenerHints() listener hints}. */ - public void onListenerFlagsChanged(int flags) { + public void onListenerHintsChanged(int hints) { // optional } @@ -311,40 +326,40 @@ public abstract class NotificationListenerService extends Service { } /** - * Gets the set of flags representing current state. + * Gets the set of hints representing current state. * *
- * The current state may differ from the requested state if the flag represents state + * The current state may differ from the requested state if the hint represents state * shared across all listeners or a feature the notification host does not support or refuses * to grant. * - * @return One or more of the FLAG_ constants. + * @return One or more of the HINT_ constants. */ - public final int getCurrentListenerFlags() { - if (!isBound()) return FLAG_NONE; + public final int getCurrentListenerHints() { + if (!isBound()) return HINTS_NONE; try { - return getNotificationInterface().getFlagsFromListener(mWrapper); + return getNotificationInterface().getHintsFromListener(mWrapper); } catch (android.os.RemoteException ex) { Log.v(TAG, "Unable to contact notification manager", ex); - return FLAG_NONE; + return HINTS_NONE; } } /** - * Sets the desired {@link #getCurrentListenerFlags() listener flags}. + * Sets the desired {@link #getCurrentListenerHints() listener hints}. * *
* This is merely a request, the host may or not choose to take action depending * on other listener requests or other global state. *
- * Listen for updates using {@link #onListenerFlagsChanged(int)}.
+ * Listen for updates using {@link #onListenerHintsChanged(int)}.
*
- * @param flags One or more of the FLAG_ constants.
+ * @param hints One or more of the HINT_ constants.
*/
- public final void requestListenerFlags(int flags) {
+ public final void requestListenerHints(int hints) {
if (!isBound()) return;
try {
- getNotificationInterface().requestFlagsFromListener(mWrapper, flags);
+ getNotificationInterface().requestHintsFromListener(mWrapper, hints);
} catch (android.os.RemoteException ex) {
Log.v(TAG, "Unable to contact notification manager", ex);
}
@@ -480,11 +495,11 @@ public abstract class NotificationListenerService extends Service {
}
}
@Override
- public void onListenerFlagsChanged(int flags) throws RemoteException {
+ public void onListenerHintsChanged(int hints) throws RemoteException {
try {
- NotificationListenerService.this.onListenerFlagsChanged(flags);
+ NotificationListenerService.this.onListenerHintsChanged(hints);
} catch (Throwable t) {
- Log.w(TAG, "Error running onListenerFlagsChanged", t);
+ Log.w(TAG, "Error running onListenerHintsChanged", t);
}
}
}
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 743abc8fae679..3eb2b7e508a73 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -16,7 +16,7 @@
package com.android.server.notification;
-import static android.service.notification.NotificationListenerService.FLAG_DISABLE_HOST_ALERTS;
+import static android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_EFFECTS;
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
import static org.xmlpull.v1.XmlPullParser.END_TAG;
import static org.xmlpull.v1.XmlPullParser.START_TAG;
@@ -125,7 +125,7 @@ public class NotificationManagerService extends SystemService {
static final int MESSAGE_RECONSIDER_RANKING = 4;
static final int MESSAGE_RANKING_CONFIG_CHANGE = 5;
static final int MESSAGE_SEND_RANKING_UPDATE = 6;
- static final int MESSAGE_LISTENER_FLAGS_CHANGED = 7;
+ static final int MESSAGE_LISTENER_HINTS_CHANGED = 7;
static final int LONG_DELAY = 3500; // 3.5 seconds
static final int SHORT_DELAY = 2000; // 2 seconds
@@ -170,12 +170,12 @@ public class NotificationManagerService extends SystemService {
private boolean mUseAttentionLight;
boolean mSystemReady;
- private boolean mDisableNotificationAlerts;
+ private boolean mDisableNotificationEffects;
NotificationRecord mSoundNotification;
NotificationRecord mVibrateNotification;
- private final ArraySet