diff --git a/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java b/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java index 81461bd95cce3..f4328089bf0fc 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java +++ b/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java @@ -57,7 +57,7 @@ public class SegmentedButtons extends LinearLayout { return mSelectedValue; } - public void setSelectedValue(Object value) { + public void setSelectedValue(Object value, boolean fromClick) { if (Objects.equals(value, mSelectedValue)) return; mSelectedValue = value; for (int i = 0; i < getChildCount(); i++) { @@ -67,7 +67,7 @@ public class SegmentedButtons extends LinearLayout { c.setSelected(selected); c.setTypeface(selected ? MEDIUM : REGULAR); } - fireOnSelected(); + fireOnSelected(fromClick); } public void addButton(int labelResId, int contentDescriptionResId, Object value) { @@ -100,9 +100,9 @@ public class SegmentedButtons extends LinearLayout { } } - private void fireOnSelected() { + private void fireOnSelected(boolean fromClick) { if (mCallback != null) { - mCallback.onSelected(mSelectedValue); + mCallback.onSelected(mSelectedValue, fromClick); } } @@ -115,11 +115,11 @@ public class SegmentedButtons extends LinearLayout { private final View.OnClickListener mClick = new View.OnClickListener() { @Override public void onClick(View v) { - setSelectedValue(v.getTag()); + setSelectedValue(v.getTag(), true /* fromClick */); } }; public interface Callback extends Interaction.Callback { - void onSelected(Object value); + void onSelected(Object value, boolean fromClick); } } diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java index 8035cd3a2d5e1..3c9a7fc7cb6c5 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java +++ b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java @@ -391,7 +391,7 @@ public class ZenModePanel extends LinearLayout { setExpanded(isShown()); mSessionZen = zen; } - mZenButtons.setSelectedValue(zen); + mZenButtons.setSelectedValue(zen, false /* fromClick */); updateWidgets(); handleUpdateConditions(); if (mExpanded) { @@ -968,10 +968,12 @@ public class ZenModePanel extends LinearLayout { private final SegmentedButtons.Callback mZenButtonsCallback = new SegmentedButtons.Callback() { @Override - public void onSelected(final Object value) { + public void onSelected(final Object value, boolean fromClick) { if (value != null && mZenButtons.isShown() && isAttachedToWindow()) { final int zen = (Integer) value; - MetricsLogger.action(mContext, MetricsLogger.QS_DND_ZEN_SELECT, zen); + if (fromClick) { + MetricsLogger.action(mContext, MetricsLogger.QS_DND_ZEN_SELECT, zen); + } if (DEBUG) Log.d(mTag, "mZenButtonsCallback selected=" + zen); final Uri realConditionId = getRealConditionId(mSessionExitCondition); AsyncTask.execute(new Runnable() {