Merge "a11y edits to dnd dialog and volume ring toggle" into pi-dev
am: 478e0805a0
Change-Id: Iad1b606e04a9a27093eebfbce7eca8db1df87d4f
This commit is contained in:
committed by
android-build-merger
commit
92be8661c3
@@ -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();
|
||||
@@ -207,7 +208,6 @@ public class EnableZenModeDialog {
|
||||
MetricsLogger.action(mContext,
|
||||
MetricsProto.MetricsEvent.QS_DND_CONDITION_SELECT);
|
||||
updateAlarmWarningText(tag.condition);
|
||||
announceConditionSelection(tag);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -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);
|
||||
@@ -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) {
|
||||
|
||||
@@ -203,8 +203,14 @@ public class ZenDurationDialog {
|
||||
|
||||
|
||||
private void setupUi(ConditionTag tag, View row) {
|
||||
tag.lines = row.findViewById(android.R.id.content);
|
||||
tag.line1 = (TextView) row.findViewById(android.R.id.text1);
|
||||
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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user