From b4782526f5600d9759baac64b23e0c0cd05e2050 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Fri, 22 Aug 2014 14:54:46 -0400 Subject: [PATCH] Display notification effects suppressor in the volume panel. Bug:16958514 Change-Id: I0eac173875e8af62e3c6b39001722c3fda4517de --- core/java/android/app/INotificationManager.aidl | 2 + core/java/android/app/NotificationManager.java | 24 +++++++++ packages/SystemUI/res/drawable/ic_ringer_mute.xml | 24 +++++++++ packages/SystemUI/res/layout/volume_panel_item.xml | 30 +++++++++--- packages/SystemUI/res/values/styles.xml | 5 ++ .../statusbar/policy/ZenModeController.java | 3 ++ .../statusbar/policy/ZenModeControllerImpl.java | 16 ++++++ .../com/android/systemui/volume/VolumePanel.java | 57 +++++++++++++++++++++- .../notification/NotificationManagerService.java | 20 ++++++++ 9 files changed, 173 insertions(+), 8 deletions(-) create mode 100644 packages/SystemUI/res/drawable/ic_ringer_mute.xml diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl index e8f681872450..2b97c6bdebf4 100644 --- a/core/java/android/app/INotificationManager.aidl +++ b/core/java/android/app/INotificationManager.aidl @@ -62,6 +62,8 @@ interface INotificationManager void requestHintsFromListener(in INotificationListener token, int hints); int getHintsFromListener(in INotificationListener token); + ComponentName getEffectsSuppressor(); + ZenModeConfig getZenModeConfig(); boolean setZenModeConfig(in ZenModeConfig config); oneway void notifyConditions(String pkg, in IConditionProvider provider, in Condition[] conditions); diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java index bd9363d27164..fc047de340d0 100644 --- a/core/java/android/app/NotificationManager.java +++ b/core/java/android/app/NotificationManager.java @@ -16,7 +16,9 @@ package android.app; +import android.annotation.SdkConstant; import android.app.Notification.Builder; +import android.content.ComponentName; import android.content.Context; import android.os.Handler; import android.os.IBinder; @@ -72,6 +74,16 @@ public class NotificationManager private static String TAG = "NotificationManager"; private static boolean localLOGV = false; + /** + * Intent that is broadcast when the state of {@link #getEffectsSuppressor()} changes. + * This broadcast is only sent to registered receivers. + * + * @hide + */ + @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION) + public static final String ACTION_EFFECTS_SUPPRESSOR_CHANGED + = "android.os.action.ACTION_EFFECTS_SUPPRESSOR_CHANGED"; + private static INotificationManager sService; /** @hide */ @@ -227,5 +239,17 @@ public class NotificationManager } } + /** + * @hide + */ + public ComponentName getEffectsSuppressor() { + INotificationManager service = getService(); + try { + return service.getEffectsSuppressor(); + } catch (RemoteException e) { + return null; + } + } + private Context mContext; } diff --git a/packages/SystemUI/res/drawable/ic_ringer_mute.xml b/packages/SystemUI/res/drawable/ic_ringer_mute.xml new file mode 100644 index 000000000000..dee601897736 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_ringer_mute.xml @@ -0,0 +1,24 @@ + + + + diff --git a/packages/SystemUI/res/layout/volume_panel_item.xml b/packages/SystemUI/res/layout/volume_panel_item.xml index 18b496c13399..85e3fb3c7a9c 100644 --- a/packages/SystemUI/res/layout/volume_panel_item.xml +++ b/packages/SystemUI/res/layout/volume_panel_item.xml @@ -29,14 +29,30 @@ android:background="@drawable/btn_borderless_rect" android:contentDescription="@null" /> - + android:layout_weight="1" > + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 48a031afa69a..8c1ac9fec189 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -141,6 +141,11 @@ @color/system_accent_color + +