Loading packages/SettingsLib/src/com/android/settingslib/notification/EnableZenModeDialog.java +2 −11 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ public class EnableZenModeDialog { @VisibleForTesting protected void bind(final Condition condition, final View row, final int rowId) { if (condition == null) throw new IllegalArgumentException("condition must not be null"); final boolean enabled = condition.state == Condition.STATE_TRUE; final ConditionTag tag = row.getTag() != null ? (ConditionTag) row.getTag() : new ConditionTag(); Loading @@ -207,7 +208,6 @@ public class EnableZenModeDialog { MetricsLogger.action(mContext, MetricsProto.MetricsEvent.QS_DND_CONDITION_SELECT); updateAlarmWarningText(tag.condition); announceConditionSelection(tag); } } }); Loading Loading @@ -328,6 +328,7 @@ public class EnableZenModeDialog { boolean enabled, int rowId, Uri conditionId) { if (tag.lines == null) { tag.lines = row.findViewById(android.R.id.content); tag.lines.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_POLITE); } if (tag.line1 == null) { tag.line1 = (TextView) row.findViewById(android.R.id.text1); Loading Loading @@ -450,16 +451,6 @@ public class EnableZenModeDialog { bind(newCondition, row, rowId); updateAlarmWarningText(tag.condition); tag.rb.setChecked(true); announceConditionSelection(tag); } private void announceConditionSelection(ConditionTag tag) { // condition will always be priority-only String modeText = mContext.getString(R.string.zen_interruption_level_priority); if (tag.line1 != null) { mZenRadioGroupContent.announceForAccessibility(mContext.getString( R.string.zen_mode_and_condition, modeText, tag.line1.getText())); } } private void updateAlarmWarningText(Condition condition) { Loading packages/SettingsLib/src/com/android/settingslib/notification/ZenDurationDialog.java +8 −2 Original line number Diff line number Diff line Loading @@ -203,8 +203,14 @@ public class ZenDurationDialog { private void setupUi(ConditionTag tag, View row) { if (tag.lines == null) { tag.lines = row.findViewById(android.R.id.content); tag.lines.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_POLITE); } if (tag.line1 == null) { tag.line1 = (TextView) row.findViewById(android.R.id.text1); } // text2 is not used in zen duration dialog row.findViewById(android.R.id.text2).setVisibility(View.GONE); Loading packages/SystemUI/res/values/strings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -1363,6 +1363,13 @@ <string name="volume_stream_content_description_vibrate_a11y">%1$s. Tap to set to vibrate.</string> <string name="volume_stream_content_description_mute_a11y">%1$s. Tap to mute.</string> <!-- Hint for accessibility. For example: double tap to mute [CHAR_LIMIT=NONE] --> <string name="volume_ringer_hint_mute">mute</string> <!-- Hint for accessibility. For example: double tap to unmute [CHAR_LIMIT=NONE] --> <string name="volume_ringer_hint_unmute">unmute</string> <!-- Hint for accessibility. For example: double tap to vibrate [CHAR_LIMIT=NONE] --> <string name="volume_ringer_hint_vibrate">vibrate</string> <string name="volume_dialog_title">%s volume controls</string> <string name="volume_dialog_ringer_guidance_ring">Calls and notifications will ring (<xliff:g id="volume level" example="56">%1$s</xliff:g>)</string> Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +36 −13 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ import android.view.Window; import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import android.widget.ImageButton; Loading Loading @@ -627,35 +628,32 @@ public class VolumeDialogImpl implements VolumeDialog { switch (mState.ringerModeInternal) { case AudioManager.RINGER_MODE_VIBRATE: mRingerIcon.setImageResource(R.drawable.ic_volume_ringer_vibrate); addAccessibilityDescription(mRingerIcon, RINGER_MODE_VIBRATE, mContext.getString(R.string.volume_ringer_hint_mute)); mRingerIcon.setTag(Events.ICON_STATE_VIBRATE); break; case AudioManager.RINGER_MODE_SILENT: mRingerIcon.setImageResource(R.drawable.ic_volume_ringer_mute); mRingerIcon.setContentDescription(mContext.getString( R.string.volume_stream_content_description_unmute, getStreamLabelH(ss))); mRingerIcon.setTag(Events.ICON_STATE_MUTE); addAccessibilityDescription(mRingerIcon, RINGER_MODE_SILENT, mContext.getString(R.string.volume_ringer_hint_unmute)); break; case AudioManager.RINGER_MODE_NORMAL: default: boolean muted = (mAutomute && ss.level == 0) || ss.muted; if (!isZenMuted && muted) { mRingerIcon.setImageResource(R.drawable.ic_volume_ringer_mute); mRingerIcon.setContentDescription(mContext.getString( R.string.volume_stream_content_description_unmute, getStreamLabelH(ss))); addAccessibilityDescription(mRingerIcon, RINGER_MODE_NORMAL, mContext.getString(R.string.volume_ringer_hint_unmute)); mRingerIcon.setTag(Events.ICON_STATE_MUTE); } else { mRingerIcon.setImageResource(R.drawable.ic_volume_ringer); if (mController.hasVibrator()) { mRingerIcon.setContentDescription(mContext.getString( mShowA11yStream ? R.string.volume_stream_content_description_vibrate_a11y : R.string.volume_stream_content_description_vibrate, getStreamLabelH(ss))); addAccessibilityDescription(mRingerIcon, RINGER_MODE_NORMAL, mContext.getString(R.string.volume_ringer_hint_vibrate)); } else { mRingerIcon.setContentDescription(getStreamLabelH(ss)); addAccessibilityDescription(mRingerIcon, RINGER_MODE_NORMAL, mContext.getString(R.string.volume_ringer_hint_mute)); } mRingerIcon.setTag(Events.ICON_STATE_UNMUTE); } Loading @@ -664,6 +662,31 @@ public class VolumeDialogImpl implements VolumeDialog { } } private void addAccessibilityDescription(View view, int currState, String hintLabel) { int currStateResId; switch (currState) { case RINGER_MODE_SILENT: currStateResId = R.string.volume_ringer_status_silent; break; case RINGER_MODE_VIBRATE: currStateResId = R.string.volume_ringer_status_vibrate; break; case RINGER_MODE_NORMAL: default: currStateResId = R.string.volume_ringer_status_normal; } view.setContentDescription(mContext.getString(currStateResId)); view.setAccessibilityDelegate(new AccessibilityDelegate() { public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); info.addAction(new AccessibilityNodeInfo.AccessibilityAction( AccessibilityNodeInfo.ACTION_CLICK, hintLabel)); } }); } /** * Toggles enable state of views in a VolumeRow (not including seekbar or icon) * Hides/shows zen icon Loading Loading
packages/SettingsLib/src/com/android/settingslib/notification/EnableZenModeDialog.java +2 −11 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ public class EnableZenModeDialog { @VisibleForTesting protected void bind(final Condition condition, final View row, final int rowId) { if (condition == null) throw new IllegalArgumentException("condition must not be null"); final boolean enabled = condition.state == Condition.STATE_TRUE; final ConditionTag tag = row.getTag() != null ? (ConditionTag) row.getTag() : new ConditionTag(); Loading @@ -207,7 +208,6 @@ public class EnableZenModeDialog { MetricsLogger.action(mContext, MetricsProto.MetricsEvent.QS_DND_CONDITION_SELECT); updateAlarmWarningText(tag.condition); announceConditionSelection(tag); } } }); Loading Loading @@ -328,6 +328,7 @@ public class EnableZenModeDialog { boolean enabled, int rowId, Uri conditionId) { if (tag.lines == null) { tag.lines = row.findViewById(android.R.id.content); tag.lines.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_POLITE); } if (tag.line1 == null) { tag.line1 = (TextView) row.findViewById(android.R.id.text1); Loading Loading @@ -450,16 +451,6 @@ public class EnableZenModeDialog { bind(newCondition, row, rowId); updateAlarmWarningText(tag.condition); tag.rb.setChecked(true); announceConditionSelection(tag); } private void announceConditionSelection(ConditionTag tag) { // condition will always be priority-only String modeText = mContext.getString(R.string.zen_interruption_level_priority); if (tag.line1 != null) { mZenRadioGroupContent.announceForAccessibility(mContext.getString( R.string.zen_mode_and_condition, modeText, tag.line1.getText())); } } private void updateAlarmWarningText(Condition condition) { Loading
packages/SettingsLib/src/com/android/settingslib/notification/ZenDurationDialog.java +8 −2 Original line number Diff line number Diff line Loading @@ -203,8 +203,14 @@ public class ZenDurationDialog { private void setupUi(ConditionTag tag, View row) { if (tag.lines == null) { tag.lines = row.findViewById(android.R.id.content); tag.lines.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_POLITE); } if (tag.line1 == null) { tag.line1 = (TextView) row.findViewById(android.R.id.text1); } // text2 is not used in zen duration dialog row.findViewById(android.R.id.text2).setVisibility(View.GONE); Loading
packages/SystemUI/res/values/strings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -1363,6 +1363,13 @@ <string name="volume_stream_content_description_vibrate_a11y">%1$s. Tap to set to vibrate.</string> <string name="volume_stream_content_description_mute_a11y">%1$s. Tap to mute.</string> <!-- Hint for accessibility. For example: double tap to mute [CHAR_LIMIT=NONE] --> <string name="volume_ringer_hint_mute">mute</string> <!-- Hint for accessibility. For example: double tap to unmute [CHAR_LIMIT=NONE] --> <string name="volume_ringer_hint_unmute">unmute</string> <!-- Hint for accessibility. For example: double tap to vibrate [CHAR_LIMIT=NONE] --> <string name="volume_ringer_hint_vibrate">vibrate</string> <string name="volume_dialog_title">%s volume controls</string> <string name="volume_dialog_ringer_guidance_ring">Calls and notifications will ring (<xliff:g id="volume level" example="56">%1$s</xliff:g>)</string> Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +36 −13 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ import android.view.Window; import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import android.widget.ImageButton; Loading Loading @@ -627,35 +628,32 @@ public class VolumeDialogImpl implements VolumeDialog { switch (mState.ringerModeInternal) { case AudioManager.RINGER_MODE_VIBRATE: mRingerIcon.setImageResource(R.drawable.ic_volume_ringer_vibrate); addAccessibilityDescription(mRingerIcon, RINGER_MODE_VIBRATE, mContext.getString(R.string.volume_ringer_hint_mute)); mRingerIcon.setTag(Events.ICON_STATE_VIBRATE); break; case AudioManager.RINGER_MODE_SILENT: mRingerIcon.setImageResource(R.drawable.ic_volume_ringer_mute); mRingerIcon.setContentDescription(mContext.getString( R.string.volume_stream_content_description_unmute, getStreamLabelH(ss))); mRingerIcon.setTag(Events.ICON_STATE_MUTE); addAccessibilityDescription(mRingerIcon, RINGER_MODE_SILENT, mContext.getString(R.string.volume_ringer_hint_unmute)); break; case AudioManager.RINGER_MODE_NORMAL: default: boolean muted = (mAutomute && ss.level == 0) || ss.muted; if (!isZenMuted && muted) { mRingerIcon.setImageResource(R.drawable.ic_volume_ringer_mute); mRingerIcon.setContentDescription(mContext.getString( R.string.volume_stream_content_description_unmute, getStreamLabelH(ss))); addAccessibilityDescription(mRingerIcon, RINGER_MODE_NORMAL, mContext.getString(R.string.volume_ringer_hint_unmute)); mRingerIcon.setTag(Events.ICON_STATE_MUTE); } else { mRingerIcon.setImageResource(R.drawable.ic_volume_ringer); if (mController.hasVibrator()) { mRingerIcon.setContentDescription(mContext.getString( mShowA11yStream ? R.string.volume_stream_content_description_vibrate_a11y : R.string.volume_stream_content_description_vibrate, getStreamLabelH(ss))); addAccessibilityDescription(mRingerIcon, RINGER_MODE_NORMAL, mContext.getString(R.string.volume_ringer_hint_vibrate)); } else { mRingerIcon.setContentDescription(getStreamLabelH(ss)); addAccessibilityDescription(mRingerIcon, RINGER_MODE_NORMAL, mContext.getString(R.string.volume_ringer_hint_mute)); } mRingerIcon.setTag(Events.ICON_STATE_UNMUTE); } Loading @@ -664,6 +662,31 @@ public class VolumeDialogImpl implements VolumeDialog { } } private void addAccessibilityDescription(View view, int currState, String hintLabel) { int currStateResId; switch (currState) { case RINGER_MODE_SILENT: currStateResId = R.string.volume_ringer_status_silent; break; case RINGER_MODE_VIBRATE: currStateResId = R.string.volume_ringer_status_vibrate; break; case RINGER_MODE_NORMAL: default: currStateResId = R.string.volume_ringer_status_normal; } view.setContentDescription(mContext.getString(currStateResId)); view.setAccessibilityDelegate(new AccessibilityDelegate() { public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); info.addAction(new AccessibilityNodeInfo.AccessibilityAction( AccessibilityNodeInfo.ACTION_CLICK, hintLabel)); } }); } /** * Toggles enable state of views in a VolumeRow (not including seekbar or icon) * Hides/shows zen icon Loading