Fixed accessibility issues with quick settings
The dual mode tiles now have better accessibility descriptions, where the label is now seperate from the clickable button. Also fixed an anouncment problem with the battery indicators. Finally fixed an issue where GPRS null was anounced when no signal was available. Bug: 15682124 Bug: 15696954 Change-Id: Ica2b70173e64d51747b100d0b686875fc8076e6f
This commit is contained in:
@@ -60,7 +60,8 @@
|
||||
android:paddingEnd="@dimen/battery_level_padding_end"
|
||||
android:textColor="#ffffff"
|
||||
android:visibility="gone"
|
||||
android:textSize="@dimen/battery_level_text_size"/>
|
||||
android:textSize="@dimen/battery_level_text_size"
|
||||
android:importantForAccessibility="noHideDescendants"/>
|
||||
</LinearLayout>
|
||||
|
||||
<com.android.keyguard.CarrierText
|
||||
|
||||
@@ -72,7 +72,8 @@
|
||||
android:layout_marginStart="@dimen/header_battery_margin_expanded"
|
||||
android:paddingEnd="@dimen/battery_level_padding_end"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="@dimen/battery_level_text_size"/>
|
||||
android:textSize="@dimen/battery_level_text_size"
|
||||
android:importantForAccessibility="noHideDescendants"/>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -273,6 +273,13 @@
|
||||
<!-- Content description of the WIFI signal when it is full for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
|
||||
<string name="accessibility_wifi_signal_full">Wifi signal full.</string>
|
||||
|
||||
<!-- Content description of the wifi label showing what we are connected to. [CHAR LIMIT=NONE] -->
|
||||
<string name="accessibility_wifi_name">Connected to <xliff:g id="wifi" example="Home Network">%s</xliff:g>.</string>
|
||||
|
||||
<!-- Content description of the bluetooth label showing what we are connected to. [CHAR LIMIT=NONE] -->
|
||||
<string name="accessibility_bluetooth_name">Connected to <xliff:g id="bluetooth" example="Car Audio">%s</xliff:g>.</string>
|
||||
|
||||
|
||||
<!-- Content description of the WiMAX signal when no signal for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
|
||||
<string name="accessibility_no_wimax">No WiMAX.</string>
|
||||
<!-- Content description of the WiMAX signal when it is one bar for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
|
||||
@@ -398,7 +405,7 @@
|
||||
<!-- Content description of the user tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
|
||||
<string name="accessibility_quick_settings_user">User <xliff:g id="user" example="John Doe">%s</xliff:g>.</string>
|
||||
<!-- Content description of the wifi tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
|
||||
<string name="accessibility_quick_settings_wifi"><xliff:g id="signal" example="Three bars">%1$s</xliff:g>. <xliff:g id="network" example="MyWifiNetwork">%2$s</xliff:g></string>
|
||||
<string name="accessibility_quick_settings_wifi"><xliff:g id="signal" example="Three bars">%1$s</xliff:g>.</string>
|
||||
<!-- Content description of the mobile data tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
|
||||
<string name="accessibility_quick_settings_mobile">Mobile <xliff:g id="signal" example="Three bars">%1$s</xliff:g>. <xliff:g id="type" example="4G">%2$s</xliff:g>. <xliff:g id="network" example="T-Mobile">%3$s</xliff:g>.</string>
|
||||
<!-- Content description of the battery tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
|
||||
|
||||
@@ -345,8 +345,8 @@ public class QSPanel extends ViewGroup {
|
||||
}
|
||||
|
||||
for (TileRecord record : mRecords) {
|
||||
if (record.tileView.getVisibility() == GONE) continue;
|
||||
record.tileView.setDual(record.tile.supportsDualTargets());
|
||||
if (record.tileView.getVisibility() == GONE) continue;
|
||||
final int cw = record.row == 0 ? mLargeCellWidth : mCellWidth;
|
||||
final int ch = record.row == 0 ? mLargeCellHeight : mCellHeight;
|
||||
record.tileView.measure(exactly(cw), exactly(ch));
|
||||
|
||||
@@ -286,6 +286,7 @@ public abstract class QSTile<TState extends State> implements Listenable {
|
||||
public Drawable icon;
|
||||
public String label;
|
||||
public String contentDescription;
|
||||
public String dualLabelContentDescription;
|
||||
|
||||
public boolean copyTo(State other) {
|
||||
if (other == null) throw new IllegalArgumentException();
|
||||
@@ -294,12 +295,15 @@ public abstract class QSTile<TState extends State> implements Listenable {
|
||||
|| other.iconId != iconId
|
||||
|| !Objects.equals(other.icon, icon)
|
||||
|| !Objects.equals(other.label, label)
|
||||
|| !Objects.equals(other.contentDescription, contentDescription);
|
||||
|| !Objects.equals(other.contentDescription, contentDescription)
|
||||
|| !Objects.equals(other.dualLabelContentDescription,
|
||||
dualLabelContentDescription);
|
||||
other.visible = visible;
|
||||
other.iconId = iconId;
|
||||
other.icon = icon;
|
||||
other.label = label;
|
||||
other.contentDescription = contentDescription;
|
||||
other.dualLabelContentDescription = dualLabelContentDescription;
|
||||
return changed;
|
||||
}
|
||||
|
||||
@@ -315,6 +319,7 @@ public abstract class QSTile<TState extends State> implements Listenable {
|
||||
sb.append(",icon=").append(icon);
|
||||
sb.append(",label=").append(label);
|
||||
sb.append(",contentDescription=").append(contentDescription);
|
||||
sb.append(",dualLabelContentDescription=").append(dualLabelContentDescription);
|
||||
return sb.append(']');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,6 +87,7 @@ public class QSTileView extends ViewGroup {
|
||||
|
||||
private void recreateLabel() {
|
||||
CharSequence labelText = null;
|
||||
CharSequence labelDescription = null;
|
||||
if (mLabel != null) {
|
||||
labelText = mLabel.getText();
|
||||
removeView(mLabel);
|
||||
@@ -94,6 +95,7 @@ public class QSTileView extends ViewGroup {
|
||||
}
|
||||
if (mDualLabel != null) {
|
||||
labelText = mDualLabel.getText();
|
||||
labelDescription = mLabel.getContentDescription();
|
||||
removeView(mDualLabel);
|
||||
mDualLabel = null;
|
||||
}
|
||||
@@ -113,6 +115,9 @@ public class QSTileView extends ViewGroup {
|
||||
if (labelText != null) {
|
||||
mDualLabel.setText(labelText);
|
||||
}
|
||||
if (labelDescription != null) {
|
||||
mDualLabel.setContentDescription(labelDescription);
|
||||
}
|
||||
addView(mDualLabel);
|
||||
} else {
|
||||
mLabel = new TextView(mContext);
|
||||
@@ -228,6 +233,7 @@ public class QSTileView extends ViewGroup {
|
||||
}
|
||||
if (mDual) {
|
||||
mDualLabel.setText(state.label);
|
||||
mDualLabel.setContentDescription(state.dualLabelContentDescription);
|
||||
} else {
|
||||
mLabel.setText(state.label);
|
||||
}
|
||||
|
||||
@@ -114,6 +114,12 @@ public class BluetoothTile extends QSTile<QSTile.BooleanState> {
|
||||
}
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_bluetooth, stateContentDescription);
|
||||
String bluetoothName = state.label;
|
||||
if (connected) {
|
||||
bluetoothName = state.dualLabelContentDescription = mContext.getString(
|
||||
R.string.accessibility_bluetooth_name, state.label);
|
||||
}
|
||||
state.dualLabelContentDescription = bluetoothName;
|
||||
}
|
||||
|
||||
private final BluetoothController.Callback mCallback = new BluetoothController.Callback() {
|
||||
|
||||
@@ -132,8 +132,12 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
|
||||
}
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_wifi,
|
||||
signalContentDescription,
|
||||
state.connected ? state.label : "");
|
||||
signalContentDescription);
|
||||
String wifiName = state.label;
|
||||
if (state.connected) {
|
||||
wifiName = r.getString(R.string.accessibility_wifi_name, state.label);
|
||||
}
|
||||
state.dualLabelContentDescription = wifiName;
|
||||
}
|
||||
|
||||
private static String removeDoubleQuotes(String string) {
|
||||
|
||||
@@ -602,6 +602,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
mPhoneSignalIconId = R.drawable.stat_sys_signal_null;
|
||||
mQSPhoneSignalIconId = R.drawable.ic_qs_signal_no_signal;
|
||||
mDataSignalIconId = R.drawable.stat_sys_signal_null;
|
||||
mContentDescriptionPhoneSignal = mContext.getString(
|
||||
AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0]);
|
||||
} else {
|
||||
if (mSignalStrength == null) {
|
||||
if (CHATTY) Log.d(TAG, "updateTelephonySignalStrength: mSignalStrength == null");
|
||||
@@ -665,8 +667,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
|
||||
mDataTypeIconId = 0;
|
||||
mQSDataTypeIconId = 0;
|
||||
mContentDescriptionDataType = mContext.getString(
|
||||
R.string.accessibility_data_connection_gprs);
|
||||
mContentDescriptionDataType = "";
|
||||
break;
|
||||
} else {
|
||||
// fall through
|
||||
|
||||
Reference in New Issue
Block a user