am ee04e472
: Merge "Add content descriptions to power control widget." into jb-mr1-dev
* commit 'ee04e47216ca947dfc781d1b4116f252dd2aa5a4': Add content descriptions to power control widget.
This commit is contained in:
@@ -3339,6 +3339,34 @@
|
||||
<string name="gadget_title">Power control</string>
|
||||
<string name="gadget_toggle_wifi">Updating Wi-Fi setting</string>
|
||||
<string name="gadget_toggle_bluetooth">Updating Bluetooth setting</string>
|
||||
<!-- Template for gadget toggle button description. Populated examples are "Wi-Fi off" or "Wi-Fi turning on". -->
|
||||
<string name="gadget_state_template"><xliff:g name="feature" example="Wi-Fi">%1$s</xliff:g> <xliff:g name="state" example="off">%2$s</xliff:g></string>
|
||||
<!-- Gadget value used to describe on state. -->
|
||||
<string name="gadget_state_on">on</string>
|
||||
<!-- Gadget value used to describe off state. -->
|
||||
<string name="gadget_state_off">off</string>
|
||||
<!-- Gadget value used to describe turning on state. -->
|
||||
<string name="gadget_state_turning_on">turning on</string>
|
||||
<!-- Gadget value used to describe turning off state. -->
|
||||
<string name="gadget_state_turning_off">turning off</string>
|
||||
<!-- Spoken description for the Wi-Fi power control gadget. -->
|
||||
<string name="gadget_wifi">Wi-Fi</string>
|
||||
<!-- Spoken description for the Bluetooth power control gadget. -->
|
||||
<string name="gadget_bluetooth">Bluetooth</string>
|
||||
<!-- Spoken description for the GPS power control gadget. -->
|
||||
<string name="gadget_gps">GPS</string>
|
||||
<!-- Spoken description for the data synchronization gadget. -->
|
||||
<string name="gadget_sync">Sync</string>
|
||||
<!-- Template for brightness gadget toggle button description. -->
|
||||
<string name="gadget_brightness_template">Brightness <xliff:g name="state" example="half">%1$s</xliff:g></string>
|
||||
<!-- Brightness gadget value used to describe automatic brightness state. -->
|
||||
<string name="gadget_brightness_state_auto">auto</string>
|
||||
<!-- Brightness gadget value used to describe maximum brightness state. -->
|
||||
<string name="gadget_brightness_state_full">full</string>
|
||||
<!-- Brightness gadget value used to describe half brightness state. -->
|
||||
<string name="gadget_brightness_state_half">half</string>
|
||||
<!-- Brightness gadget value used to describe minimum brightness state. -->
|
||||
<string name="gadget_brightness_state_off">off</string>
|
||||
|
||||
<!-- Title of preference to enter the VPN settings activity -->
|
||||
<string name="vpn_settings_title">VPN</string>
|
||||
|
@@ -160,6 +160,11 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the ID of the clickable container for the setting.
|
||||
*/
|
||||
public abstract int getContainerId();
|
||||
|
||||
/**
|
||||
* Return the ID of the main large image button for the setting.
|
||||
*/
|
||||
@@ -170,6 +175,11 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
*/
|
||||
public abstract int getIndicatorId();
|
||||
|
||||
/**
|
||||
* Returns the resource ID of the setting's content description.
|
||||
*/
|
||||
public abstract int getButtonDescription();
|
||||
|
||||
/**
|
||||
* Returns the resource ID of the image to show as a function of
|
||||
* the on-vs-off state.
|
||||
@@ -186,16 +196,21 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
* turning off, turning on) of the setting.
|
||||
*/
|
||||
public final void setImageViewResources(Context context, RemoteViews views) {
|
||||
int containerId = getContainerId();
|
||||
int buttonId = getButtonId();
|
||||
int indicatorId = getIndicatorId();
|
||||
int pos = getPosition();
|
||||
switch (getTriState(context)) {
|
||||
case STATE_DISABLED:
|
||||
views.setContentDescription(containerId,
|
||||
getContentDescription(context, R.string.gadget_state_off));
|
||||
views.setImageViewResource(buttonId, getButtonImageId(false));
|
||||
views.setImageViewResource(
|
||||
indicatorId, IND_DRAWABLE_OFF[pos]);
|
||||
break;
|
||||
case STATE_ENABLED:
|
||||
views.setContentDescription(containerId,
|
||||
getContentDescription(context, R.string.gadget_state_on));
|
||||
views.setImageViewResource(buttonId, getButtonImageId(true));
|
||||
views.setImageViewResource(
|
||||
indicatorId, IND_DRAWABLE_ON[pos]);
|
||||
@@ -207,10 +222,14 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
// user's intent. This is much easier to see in
|
||||
// sunlight.
|
||||
if (isTurningOn()) {
|
||||
views.setContentDescription(containerId,
|
||||
getContentDescription(context, R.string.gadget_state_turning_on));
|
||||
views.setImageViewResource(buttonId, getButtonImageId(true));
|
||||
views.setImageViewResource(
|
||||
indicatorId, IND_DRAWABLE_MID[pos]);
|
||||
} else {
|
||||
views.setContentDescription(containerId,
|
||||
getContentDescription(context, R.string.gadget_state_turning_off));
|
||||
views.setImageViewResource(buttonId, getButtonImageId(false));
|
||||
views.setImageViewResource(
|
||||
indicatorId, IND_DRAWABLE_OFF[pos]);
|
||||
@@ -219,6 +238,16 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the gadget state template populated with the gadget
|
||||
* description and state.
|
||||
*/
|
||||
private final String getContentDescription(Context context, int stateResId) {
|
||||
final String gadget = context.getString(getButtonDescription());
|
||||
final String state = context.getString(stateResId);
|
||||
return context.getString(R.string.gadget_state_template, gadget, state);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update internal state from a broadcast state change.
|
||||
*/
|
||||
@@ -322,8 +351,10 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
* Subclass of StateTracker to get/set Wifi state.
|
||||
*/
|
||||
private static final class WifiStateTracker extends StateTracker {
|
||||
public int getContainerId() { return R.id.btn_wifi; }
|
||||
public int getButtonId() { return R.id.img_wifi; }
|
||||
public int getIndicatorId() { return R.id.ind_wifi; }
|
||||
public int getButtonDescription() { return R.string.gadget_wifi; }
|
||||
public int getButtonImageId(boolean on) {
|
||||
return on ? R.drawable.ic_appwidget_settings_wifi_on_holo
|
||||
: R.drawable.ic_appwidget_settings_wifi_off_holo;
|
||||
@@ -405,8 +436,10 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
* Subclass of StateTracker to get/set Bluetooth state.
|
||||
*/
|
||||
private static final class BluetoothStateTracker extends StateTracker {
|
||||
public int getContainerId() { return R.id.btn_bluetooth; }
|
||||
public int getButtonId() { return R.id.img_bluetooth; }
|
||||
public int getIndicatorId() { return R.id.ind_bluetooth; }
|
||||
public int getButtonDescription() { return R.string.gadget_bluetooth; }
|
||||
public int getButtonImageId(boolean on) {
|
||||
return on ? R.drawable.ic_appwidget_settings_bluetooth_on_holo
|
||||
: R.drawable.ic_appwidget_settings_bluetooth_off_holo;
|
||||
@@ -476,8 +509,10 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
* Subclass of StateTracker for GPS state.
|
||||
*/
|
||||
private static final class GpsStateTracker extends StateTracker {
|
||||
public int getContainerId() { return R.id.btn_gps; }
|
||||
public int getButtonId() { return R.id.img_gps; }
|
||||
public int getIndicatorId() { return R.id.ind_gps; }
|
||||
public int getButtonDescription() { return R.string.gadget_gps; }
|
||||
public int getButtonImageId(boolean on) {
|
||||
return on ? R.drawable.ic_appwidget_settings_gps_on_holo
|
||||
: R.drawable.ic_appwidget_settings_gps_off_holo;
|
||||
@@ -526,8 +561,10 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
* Subclass of StateTracker for sync state.
|
||||
*/
|
||||
private static final class SyncStateTracker extends StateTracker {
|
||||
public int getContainerId() { return R.id.btn_sync; }
|
||||
public int getButtonId() { return R.id.img_sync; }
|
||||
public int getIndicatorId() { return R.id.ind_sync; }
|
||||
public int getButtonDescription() { return R.string.gadget_sync; }
|
||||
public int getButtonImageId(boolean on) {
|
||||
return on ? R.drawable.ic_appwidget_settings_sync_on_holo
|
||||
: R.drawable.ic_appwidget_settings_sync_off_holo;
|
||||
@@ -673,6 +710,9 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
sSyncState.setImageViewResources(context, views);
|
||||
|
||||
if (getBrightnessMode(context)) {
|
||||
views.setContentDescription(R.id.btn_brightness,
|
||||
context.getString(R.string.gadget_brightness_template,
|
||||
context.getString(R.string.gadget_brightness_state_auto)));
|
||||
views.setImageViewResource(R.id.img_brightness,
|
||||
R.drawable.ic_appwidget_settings_brightness_auto_holo);
|
||||
views.setImageViewResource(R.id.ind_brightness,
|
||||
@@ -686,12 +726,21 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
||||
final int half = (int)(pm.getMaximumScreenBrightnessSetting()
|
||||
* HALF_BRIGHTNESS_THRESHOLD);
|
||||
if (brightness > full) {
|
||||
views.setContentDescription(R.id.btn_brightness,
|
||||
context.getString(R.string.gadget_brightness_template,
|
||||
context.getString(R.string.gadget_brightness_state_full)));
|
||||
views.setImageViewResource(R.id.img_brightness,
|
||||
R.drawable.ic_appwidget_settings_brightness_full_holo);
|
||||
} else if (brightness > half) {
|
||||
views.setContentDescription(R.id.btn_brightness,
|
||||
context.getString(R.string.gadget_brightness_template,
|
||||
context.getString(R.string.gadget_brightness_state_half)));
|
||||
views.setImageViewResource(R.id.img_brightness,
|
||||
R.drawable.ic_appwidget_settings_brightness_half_holo);
|
||||
} else {
|
||||
views.setContentDescription(R.id.btn_brightness,
|
||||
context.getString(R.string.gadget_brightness_template,
|
||||
context.getString(R.string.gadget_brightness_state_off)));
|
||||
views.setImageViewResource(R.id.img_brightness,
|
||||
R.drawable.ic_appwidget_settings_brightness_off_holo);
|
||||
}
|
||||
|
Reference in New Issue
Block a user