diff --git a/packages/SystemUI/res/anim/ic_dnd_disable_alpha_animation.xml b/packages/SystemUI/res/anim/ic_dnd_disable_alpha_animation.xml
new file mode 100644
index 0000000000000..21caab4fae18a
--- /dev/null
+++ b/packages/SystemUI/res/anim/ic_dnd_disable_alpha_animation.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/packages/SystemUI/res/anim/ic_dnd_disable_bar01_0_animation.xml b/packages/SystemUI/res/anim/ic_dnd_disable_bar01_0_animation.xml
new file mode 100644
index 0000000000000..a914687c8166a
--- /dev/null
+++ b/packages/SystemUI/res/anim/ic_dnd_disable_bar01_0_animation.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/packages/SystemUI/res/anim/ic_dnd_disable_mask_1_animation.xml b/packages/SystemUI/res/anim/ic_dnd_disable_mask_1_animation.xml
new file mode 100644
index 0000000000000..3c60c013ed126
--- /dev/null
+++ b/packages/SystemUI/res/anim/ic_dnd_disable_mask_1_animation.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_alpha_animation.xml b/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_alpha_animation.xml
new file mode 100644
index 0000000000000..21caab4fae18a
--- /dev/null
+++ b/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_alpha_animation.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_mask_1_animation.xml b/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_mask_1_animation.xml
new file mode 100644
index 0000000000000..8d3296efaf64b
--- /dev/null
+++ b/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_mask_1_animation.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_outer_ring_merged_animation.xml b/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_outer_ring_merged_animation.xml
new file mode 100644
index 0000000000000..262649953a1a5
--- /dev/null
+++ b/packages/SystemUI/res/anim/ic_dnd_total_silence_disable_outer_ring_merged_animation.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/packages/SystemUI/res/drawable/ic_dnd_disable.xml b/packages/SystemUI/res/drawable/ic_dnd_disable.xml
new file mode 100644
index 0000000000000..ba4692a14cd75
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_dnd_disable.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/drawable/ic_dnd_disable_animation.xml b/packages/SystemUI/res/drawable/ic_dnd_disable_animation.xml
new file mode 100644
index 0000000000000..13ed767d0ca0c
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_dnd_disable_animation.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/drawable/ic_dnd_total_silence_disable.xml b/packages/SystemUI/res/drawable/ic_dnd_total_silence_disable.xml
new file mode 100644
index 0000000000000..1a332557ebe91
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_dnd_total_silence_disable.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/drawable/ic_dnd_total_silence_disable_animation.xml b/packages/SystemUI/res/drawable/ic_dnd_total_silence_disable_animation.xml
new file mode 100644
index 0000000000000..c0b2d69e2524c
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_dnd_total_silence_disable_animation.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
index f4d6f04ca38b6..f97f519cafc22 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
@@ -38,6 +38,7 @@ import com.android.systemui.volume.ZenModePanel;
/** Quick settings tile: Do not disturb **/
public class DndTile extends QSTile {
+
private static final Intent ZEN_SETTINGS =
new Intent(Settings.ACTION_ZEN_MODE_SETTINGS);
@@ -47,6 +48,14 @@ public class DndTile extends QSTile {
private static final String ACTION_SET_VISIBLE = "com.android.systemui.dndtile.SET_VISIBLE";
private static final String EXTRA_VISIBLE = "visible";
+ private static final QSTile.Icon TOTAL_SILENCE =
+ ResourceIcon.get(R.drawable.ic_qs_dnd_on_total_silence);
+
+ private final AnimationIcon mDisable =
+ new AnimationIcon(R.drawable.ic_dnd_disable_animation);
+ private final AnimationIcon mDisableTotalSilence =
+ new AnimationIcon(R.drawable.ic_dnd_total_silence_disable_animation);
+
private final ZenModeController mController;
private final DndDetailAdapter mDetailAdapter;
@@ -89,6 +98,8 @@ public class DndTile extends QSTile {
@Override
public void handleClick() {
+ mDisable.setAllowAnimation(true);
+ mDisableTotalSilence.setAllowAnimation(true);
MetricsLogger.action(mContext, getMetricsCategory(), !mState.value);
if (mState.value) {
mController.setZen(Global.ZEN_MODE_OFF, null, TAG);
@@ -114,7 +125,7 @@ public class DndTile extends QSTile {
R.string.accessibility_quick_settings_dnd_priority_on);
break;
case Global.ZEN_MODE_NO_INTERRUPTIONS:
- state.icon = ResourceIcon.get(R.drawable.ic_qs_dnd_on_total_silence);
+ state.icon = TOTAL_SILENCE;
state.label = mContext.getString(R.string.quick_settings_dnd_none_label);
state.contentDescription = mContext.getString(
R.string.accessibility_quick_settings_dnd_none_on);
@@ -126,7 +137,7 @@ public class DndTile extends QSTile {
R.string.accessibility_quick_settings_dnd_alarms_on);
break;
default:
- state.icon = ResourceIcon.get(R.drawable.ic_qs_dnd_off);
+ state.icon = TOTAL_SILENCE.equals(state.icon) ? mDisableTotalSilence : mDisable;
state.label = mContext.getString(R.string.quick_settings_dnd_label);
state.contentDescription = mContext.getString(
R.string.accessibility_quick_settings_dnd_off);