Fix an action bar accessibility regression

A previous fix introduced a problem with building content descriptions
for accessibility of the home/up button in one code path while setting
display options flags. Correct the issue and also refresh content
descriptions immediately when setting related attributes one at a
time.

Bug 11542264

Change-Id: I40d07036d1026e8e40c77c47ac377c82edd827b4
This commit is contained in:
Adam Powell
2013-11-12 16:20:46 -08:00
parent 6cd206b2aa
commit 2229ca031a

View File

@@ -526,7 +526,7 @@ public class ActionBarView extends AbsActionBarView {
if (mLogoNavItem != null) { if (mLogoNavItem != null) {
mLogoNavItem.setTitle(title); mLogoNavItem.setTitle(title);
} }
mUpGoerFive.setContentDescription(buildHomeContentDescription()); updateHomeAccessibility(mUpGoerFive.isEnabled());
} }
public CharSequence getSubtitle() { public CharSequence getSubtitle() {
@@ -544,7 +544,7 @@ public class ActionBarView extends AbsActionBarView {
(!TextUtils.isEmpty(mTitle) || !TextUtils.isEmpty(mSubtitle)); (!TextUtils.isEmpty(mTitle) || !TextUtils.isEmpty(mSubtitle));
mTitleLayout.setVisibility(visible ? VISIBLE : GONE); mTitleLayout.setVisibility(visible ? VISIBLE : GONE);
} }
mUpGoerFive.setContentDescription(buildHomeContentDescription()); updateHomeAccessibility(mUpGoerFive.isEnabled());
} }
public void setHomeButtonEnabled(boolean enable) { public void setHomeButtonEnabled(boolean enable) {
@@ -681,7 +681,7 @@ public class ActionBarView extends AbsActionBarView {
} }
// Make sure the home button has an accurate content description for accessibility. // Make sure the home button has an accurate content description for accessibility.
updateHomeAccessibility(!mUpGoerFive.isEnabled()); updateHomeAccessibility(mUpGoerFive.isEnabled());
} }
public void setIcon(Drawable icon) { public void setIcon(Drawable icon) {
@@ -1332,11 +1332,13 @@ public class ActionBarView extends AbsActionBarView {
public void setHomeActionContentDescription(CharSequence description) { public void setHomeActionContentDescription(CharSequence description) {
mHomeDescription = description; mHomeDescription = description;
updateHomeAccessibility(mUpGoerFive.isEnabled());
} }
public void setHomeActionContentDescription(int resId) { public void setHomeActionContentDescription(int resId) {
mHomeDescriptionRes = resId; mHomeDescriptionRes = resId;
mHomeDescription = resId != 0 ? getResources().getText(resId) : null; mHomeDescription = resId != 0 ? getResources().getText(resId) : null;
updateHomeAccessibility(mUpGoerFive.isEnabled());
} }
static class SavedState extends BaseSavedState { static class SavedState extends BaseSavedState {