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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user