Merge "Fixed a few accessibility issues with notifications and groups" into nyc-dev

am: ddc6de1eda

* commit 'ddc6de1eda495790e6564438994df5d49ddf248f':
  Fixed a few accessibility issues with notifications and groups

Change-Id: Ieec9526a2c54edd2f0d3b34973cc61f610f452ae
This commit is contained in:
Selim Cinek
2016-05-31 19:36:21 +00:00
committed by android-build-merger
7 changed files with 54 additions and 4 deletions

View File

@@ -21,9 +21,9 @@ import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Outline;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ImageView;
import android.widget.RemoteViews;
@@ -230,6 +230,7 @@ public class NotificationHeaderView extends ViewGroup {
public void setOnClickListener(@Nullable OnClickListener l) {
mExpandClickListener = l;
setOnTouchListener(mExpandClickListener != null ? mTouchListener : null);
setFocusable(l != null);
updateTouchListener();
}
@@ -379,6 +380,19 @@ public class NotificationHeaderView extends ViewGroup {
return this;
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
if (mExpandClickListener != null) {
AccessibilityNodeInfo.AccessibilityAction expand
= new AccessibilityNodeInfo.AccessibilityAction(
AccessibilityNodeInfo.ACTION_CLICK,
getContext().getString(
com.android.internal.R.string.expand_action_accessibility));
info.addAction(expand);
}
}
public ImageView getExpandButton() {
return mExpandButton;
}

View File

@@ -4263,7 +4263,7 @@
<string name="expand_button_content_description">Expand button</string>
<!-- Accessibility action description on the expand button. -->
<string name="expand_action_accessibility">Click to expand</string>
<string name="expand_action_accessibility">toggle expansion</string>
<!-- User visible name for USB MIDI Peripheral port -->
<string name="usb_midi_peripheral_name">Android USB Peripheral Port</string>

View File

@@ -2569,6 +2569,7 @@
<!-- WallpaperManager config -->
<java-symbol type="string" name="config_wallpaperCropperPackage" />
<java-symbol type="string" name="expand_action_accessibility" />
<java-symbol type="id" name="textSpacerNoTitle" />
<java-symbol type="id" name="titleDividerNoCustom" />

View File

@@ -594,6 +594,12 @@
<!-- The overflow indicator shown when a group has more notification inside the group than the visible ones. An example is "+ 3" [CHAR LIMIT=5] -->
<string name="notification_group_overflow_indicator">+ <xliff:g id="number" example="3">%s</xliff:g></string>
<!-- Content description describing how many more notifications are in a group [CHAR LIMIT=NONE] -->
<plurals name="notification_group_overflow_description">
<item quantity="one"><xliff:g id="number" example="1">%s</xliff:g> more notification inside.</item>
<item quantity="other"><xliff:g id="number" example="3">%s</xliff:g> more notifications inside.</item>
</plurals>
<!-- Content description of button in notification inspector for system settings relating to
notifications from this application [CHAR LIMIT=NONE] -->
<string name="status_bar_notification_inspect_item_title">Notification settings</string>

View File

@@ -18,10 +18,9 @@ package com.android.systemui.statusbar;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.annotation.Nullable;
import android.content.Context;
import android.graphics.drawable.AnimatedVectorDrawable;
import android.graphics.drawable.AnimationDrawable;
@@ -181,6 +180,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
return object.getTranslation();
}
};
private OnClickListener mOnClickListener;
public boolean isGroupExpansionChanging() {
if (isChildInGroup()) {
@@ -382,6 +382,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
mNotificationParent = childInGroup ? parent : null;
mPrivateLayout.setIsChildInGroup(childInGroup);
updateBackgroundForGroupState();
updateClickAndFocus();
if (mNotificationParent != null) {
mNotificationParent.updateBackgroundForGroupState();
}
@@ -593,6 +594,24 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
mOnExpandClickListener = onExpandClickListener;
}
@Override
public void setOnClickListener(@Nullable OnClickListener l) {
super.setOnClickListener(l);
mOnClickListener = l;
updateClickAndFocus();
}
private void updateClickAndFocus() {
boolean normalChild = !isChildInGroup() || isGroupExpanded();
boolean clickable = mOnClickListener != null && normalChild;
if (isFocusable() != normalChild) {
setFocusable(normalChild);
}
if (isClickable() != clickable) {
setClickable(clickable);
}
}
public void setHeadsUpManager(HeadsUpManager headsUpManager) {
mHeadsUpManager = headsUpManager;
}
@@ -1315,6 +1334,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
if (mChildrenContainer != null) {
mChildrenContainer.setChildrenExpanded(expanded);
}
updateClickAndFocus();
}
public static void applyTint(View v, int color) {

View File

@@ -112,6 +112,10 @@ public class HybridGroupManager {
if (!text.equals(reusableView.getText())) {
reusableView.setText(text);
}
String contentDescription = String.format(mContext.getResources().getQuantityString(
R.plurals.notification_group_overflow_description, number), number);
reusableView.setContentDescription(contentDescription);
return reusableView;
}
}

View File

@@ -670,6 +670,11 @@ public class NotificationChildrenContainer extends ViewGroup {
if (mNotificationHeader != null) {
mNotificationHeader.setExpanded(childrenExpanded);
}
final int count = mChildren.size();
for (int childIdx = 0; childIdx < count; childIdx++) {
ExpandableNotificationRow child = mChildren.get(childIdx);
child.setChildrenExpanded(childrenExpanded, false);
}
}
public void setNotificationParent(ExpandableNotificationRow parent) {