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