diff --git a/packages/SystemUI/res/anim/notification_dnd_off.xml b/packages/SystemUI/res/anim/notification_dnd_off.xml
new file mode 100644
index 0000000000000..4e88855f25890
--- /dev/null
+++ b/packages/SystemUI/res/anim/notification_dnd_off.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/anim/notification_dnd_on.xml b/packages/SystemUI/res/anim/notification_dnd_on.xml
new file mode 100644
index 0000000000000..309943b9e9730
--- /dev/null
+++ b/packages/SystemUI/res/anim/notification_dnd_on.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_avail.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_avail.png
new file mode 100644
index 0000000000000..9123fef48c968
Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_avail.png differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_avail_open.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_avail_open.png
new file mode 100644
index 0000000000000..8e56f2a924078
Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_avail_open.png differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_dnd.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_dnd.png
new file mode 100644
index 0000000000000..80cf99c68660a
Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_dnd.png differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_none.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_none.png
new file mode 100644
index 0000000000000..e0d018bda2c7c
Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_none.png differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_none_open.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_none_open.png
new file mode 100644
index 0000000000000..5db8c9cf3d842
Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_noti_none_open.png differ
diff --git a/packages/SystemUI/res/layout-xlarge/status_bar.xml b/packages/SystemUI/res/layout-xlarge/status_bar.xml
index ed52ad5a19876..cf96e3799c411 100644
--- a/packages/SystemUI/res/layout-xlarge/status_bar.xml
+++ b/packages/SystemUI/res/layout-xlarge/status_bar.xml
@@ -28,19 +28,21 @@
>
@@ -91,14 +93,6 @@
android:background="@drawable/ic_sysbar_icon_bg"
android:visibility="invisible"
/>
-
0) {
+ resId = panel ? R.drawable.ic_sysbar_noti_avail_open : R.drawable.ic_sysbar_noti_avail;
+ } else {
+ resId = panel ? R.drawable.ic_sysbar_noti_none_open : R.drawable.ic_sysbar_noti_none;
+ }
+ mNotificationTrigger.setImageResource(resId);
+ }
public void setBatteryMeter(int level, boolean plugged) {
if (DEBUG) Slog.d(TAG, "battery=" + level + (plugged ? " - plugged" : " - unplugged"));
@@ -598,21 +615,34 @@ public class TabletStatusBarService extends StatusBarService {
// system process is dead if we're here.
}
animateCollapse();
+ refreshNotificationTrigger();
}
void onClickDoNotDisturb() {
mNotificationsOn = !mNotificationsOn;
+ setViewVisibility(mIconLayout,
+ mNotificationsOn ? View.VISIBLE : View.INVISIBLE,
+ mNotificationsOn ? R.anim.notification_dnd_off : R.anim.notification_dnd_on);
animateCollapse();
+ refreshNotificationTrigger();
}
public void onClickNotificationTrigger() {
if (DEBUG) Slog.d(TAG, "clicked notification icons");
if ((mDisabled & StatusBarManager.DISABLE_EXPAND) == 0) {
- int msg = (mNotificationPanel.getVisibility() == View.GONE)
- ? MSG_OPEN_NOTIFICATION_PANEL
- : MSG_CLOSE_NOTIFICATION_PANEL;
- mHandler.removeMessages(msg);
- mHandler.sendEmptyMessage(msg);
+ if (!mNotificationsOn) {
+ mNotificationsOn = true;
+ setViewVisibility(mIconLayout,
+ View.VISIBLE,
+ R.anim.notification_dnd_off);
+ refreshNotificationTrigger();
+ } else {
+ int msg = (mNotificationPanel.getVisibility() == View.GONE)
+ ? MSG_OPEN_NOTIFICATION_PANEL
+ : MSG_CLOSE_NOTIFICATION_PANEL;
+ mHandler.removeMessages(msg);
+ mHandler.sendEmptyMessage(msg);
+ }
}
}
@@ -757,6 +787,8 @@ public class TabletStatusBarService extends StatusBarService {
for (int i=0; i