summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui
diff options
context:
space:
mode:
authorChung-yih Wang <cywang@google.com>2011-10-04 11:20:04 +0800
committerChung-yih Wang <cywang@google.com>2011-10-11 10:39:58 +0800
commit26d88fce15a24362644123af5f0cce79ea572e7b (patch)
tree31589b7a98dcf1b38b4e0d17fe6bc4a24ac632b8 /src/com/android/camera/ui
parent5e99c7f1f5c07d9b728c301a5746cb15b65124fb (diff)
downloadLegacyCamera-26d88fce15a24362644123af5f0cce79ea572e7b.zip
LegacyCamera-26d88fce15a24362644123af5f0cce79ea572e7b.tar.gz
LegacyCamera-26d88fce15a24362644123af5f0cce79ea572e7b.tar.bz2
Add content descirptions for accessibility.
bug:5230109 Change-Id: I055fccea0d30c54dc8520bf1d0424b963d2ba8a5
Diffstat (limited to 'src/com/android/camera/ui')
-rw-r--r--src/com/android/camera/ui/AbstractIndicatorButton.java2
-rw-r--r--src/com/android/camera/ui/CameraPicker.java2
-rw-r--r--src/com/android/camera/ui/InLineSettingItem.java2
-rw-r--r--src/com/android/camera/ui/InLineSettingKnob.java23
-rw-r--r--src/com/android/camera/ui/InLineSettingSwitch.java22
-rw-r--r--src/com/android/camera/ui/IndicatorControl.java3
-rw-r--r--src/com/android/camera/ui/SecondLevelIndicatorControlBar.java11
-rw-r--r--src/com/android/camera/ui/ZoomControl.java7
8 files changed, 65 insertions, 7 deletions
diff --git a/src/com/android/camera/ui/AbstractIndicatorButton.java b/src/com/android/camera/ui/AbstractIndicatorButton.java
index 037a273..a661586 100644
--- a/src/com/android/camera/ui/AbstractIndicatorButton.java
+++ b/src/com/android/camera/ui/AbstractIndicatorButton.java
@@ -50,6 +50,8 @@ public abstract class AbstractIndicatorButton extends RotateImageView implements
HIGHLIGHT_COLOR = context.getResources().getColor(R.color.review_control_pressed_color);
setScaleType(ImageView.ScaleType.CENTER);
PopupManager.getInstance(context).setOnOtherPopupShowedListener(this);
+ // Set the click listener to help the comprehension of the accessibility.
+ setClickable(true);
}
@Override
diff --git a/src/com/android/camera/ui/CameraPicker.java b/src/com/android/camera/ui/CameraPicker.java
index 78e2b27..ac8b8a8 100644
--- a/src/com/android/camera/ui/CameraPicker.java
+++ b/src/com/android/camera/ui/CameraPicker.java
@@ -38,6 +38,8 @@ public class CameraPicker extends RotateImageView implements View.OnClickListene
public CameraPicker(Context context) {
super(context);
setImageResource(mImageResource);
+ setContentDescription(getResources().getString(
+ R.string.accessibility_camera_picker));
}
public static void setImageResourceId(int imageResource) {
diff --git a/src/com/android/camera/ui/InLineSettingItem.java b/src/com/android/camera/ui/InLineSettingItem.java
index 6f84e6f..bf6bdb2 100644
--- a/src/com/android/camera/ui/InLineSettingItem.java
+++ b/src/com/android/camera/ui/InLineSettingItem.java
@@ -21,6 +21,7 @@ import com.android.camera.R;
import android.content.Context;
import android.util.AttributeSet;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -70,6 +71,7 @@ public abstract class InLineSettingItem extends LinearLayout {
mListener.onSettingChanged();
}
updateView();
+ sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
return true;
}
diff --git a/src/com/android/camera/ui/InLineSettingKnob.java b/src/com/android/camera/ui/InLineSettingKnob.java
index 9bb771c..99a3b66 100644
--- a/src/com/android/camera/ui/InLineSettingKnob.java
+++ b/src/com/android/camera/ui/InLineSettingKnob.java
@@ -16,6 +16,7 @@
package com.android.camera.ui;
+import com.android.camera.ListPreference;
import com.android.camera.R;
import android.content.Context;
@@ -25,6 +26,7 @@ import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.Button;
import android.widget.TextView;
@@ -100,6 +102,16 @@ public class InLineSettingKnob extends InLineSettingItem {
mEntry = (TextView) findViewById(R.id.current_setting);
}
+ @Override
+ public void initialize(ListPreference preference) {
+ super.initialize(preference);
+ // Add content descriptions for the increment and decrement buttons.
+ mNextButton.setContentDescription(getResources().getString(
+ R.string.accessibility_increment, mPreference.getTitle()));
+ mPrevButton.setContentDescription(getResources().getString(
+ R.string.accessibility_decrement, mPreference.getTitle()));
+ }
+
protected void updateView() {
if (mOverrideValue == null) {
mEntry.setText(mPreference.getEntry());
@@ -120,4 +132,15 @@ public class InLineSettingKnob extends InLineSettingItem {
}
}
+ @Override
+ public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+ onPopulateAccessibilityEvent(event);
+ return true;
+ }
+
+ @Override
+ public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
+ super.onPopulateAccessibilityEvent(event);
+ event.getText().add(mPreference.getTitle() + mPreference.getEntry());
+ }
}
diff --git a/src/com/android/camera/ui/InLineSettingSwitch.java b/src/com/android/camera/ui/InLineSettingSwitch.java
index 8663a05..8fc37da 100644
--- a/src/com/android/camera/ui/InLineSettingSwitch.java
+++ b/src/com/android/camera/ui/InLineSettingSwitch.java
@@ -16,11 +16,13 @@
package com.android.camera.ui;
+import com.android.camera.ListPreference;
import com.android.camera.R;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@@ -47,6 +49,14 @@ public class InLineSettingSwitch extends InLineSettingItem {
mSwitch.setOnCheckedChangeListener(mCheckedChangeListener);
}
+ @Override
+ public void initialize(ListPreference preference) {
+ super.initialize(preference);
+ // Add content descriptions for the increment and decrement buttons.
+ mSwitch.setContentDescription(getContext().getResources().getString(
+ R.string.accessibility_switch, mPreference.getTitle()));
+ }
+
protected void updateView() {
if (mOverrideValue == null) {
mSwitch.setChecked(mIndex == 1);
@@ -55,4 +65,16 @@ public class InLineSettingSwitch extends InLineSettingItem {
mSwitch.setChecked(index == 1);
}
}
+
+ @Override
+ public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+ onPopulateAccessibilityEvent(event);
+ return true;
+ }
+
+ @Override
+ public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
+ super.onPopulateAccessibilityEvent(event);
+ event.getText().add(mPreference.getTitle());
+ }
}
diff --git a/src/com/android/camera/ui/IndicatorControl.java b/src/com/android/camera/ui/IndicatorControl.java
index 03003d8..86b0cc9 100644
--- a/src/com/android/camera/ui/IndicatorControl.java
+++ b/src/com/android/camera/ui/IndicatorControl.java
@@ -125,6 +125,7 @@ public abstract class IndicatorControl extends RelativeLayout implements
public IndicatorButton addIndicator(Context context, IconListPreference pref) {
IndicatorButton b = new IndicatorButton(context, pref);
b.setSettingChangedListener(this);
+ b.setContentDescription(pref.getTitle());
addView(b);
mIndicators.add(b);
return b;
@@ -135,6 +136,8 @@ public abstract class IndicatorControl extends RelativeLayout implements
OtherSettingIndicatorButton b = new OtherSettingIndicatorButton(
context, resId, mPreferenceGroup, keys);
b.setSettingChangedListener(this);
+ b.setContentDescription(getResources().getString(
+ R.string.pref_camera_settings_category));
addView(b);
mIndicators.add(b);
return b;
diff --git a/src/com/android/camera/ui/SecondLevelIndicatorControlBar.java b/src/com/android/camera/ui/SecondLevelIndicatorControlBar.java
index 8fce8a7..c9037d9 100644
--- a/src/com/android/camera/ui/SecondLevelIndicatorControlBar.java
+++ b/src/com/android/camera/ui/SecondLevelIndicatorControlBar.java
@@ -35,7 +35,7 @@ public class SecondLevelIndicatorControlBar extends IndicatorControl implements
View.OnClickListener, AbstractIndicatorButton.IndicatorChangeListener {
private static final String TAG = "SecondLevelIndicatorControlBar";
private static int ICON_SPACING = Util.dpToPixel(16);
- private ImageView mCloseIcon;
+ private View mCloseIcon;
private View mDivider; // the divider line
private View mIndicatorHighlight; // the side highlight bar
private View mPopupedIndicator;
@@ -54,16 +54,13 @@ public class SecondLevelIndicatorControlBar extends IndicatorControl implements
protected void onFinishInflate() {
mDivider = findViewById(R.id.divider);
mIndicatorHighlight = findViewById(R.id.indicator_highlight);
+ mCloseIcon = findViewById(R.id.back_to_first_level);
+ mCloseIcon.setOnClickListener(this);
}
public void initialize(Context context, PreferenceGroup group,
String[] keys, String[] otherSettingKeys) {
- if (mCloseIcon == null) {
- mCloseIcon = new ColorFilterImageView(context);
- mCloseIcon.setImageResource(R.drawable.btn_close_settings);
- mCloseIcon.setOnClickListener(this);
- addView(mCloseIcon);
- }
+
setPreferenceGroup(group);
mNonIndicatorButtonCount = getChildCount();
addControls(keys, otherSettingKeys);
diff --git a/src/com/android/camera/ui/ZoomControl.java b/src/com/android/camera/ui/ZoomControl.java
index 60964a4..1809d18 100644
--- a/src/com/android/camera/ui/ZoomControl.java
+++ b/src/com/android/camera/ui/ZoomControl.java
@@ -88,6 +88,13 @@ public abstract class ZoomControl extends RelativeLayout {
protected ImageView addImageView(Context context, int iconResourceId) {
ImageView image = new RotateImageView(context);
image.setImageResource(iconResourceId);
+ if (iconResourceId == R.drawable.ic_zoom_slider) {
+ image.setContentDescription(getResources().getString(
+ R.string.accessibility_zoom_control));
+ } else {
+ image.setContentDescription(getResources().getString(
+ R.string.empty));
+ }
addView(image);
return image;
}