Add accessibility titles to PopupWindow

Adding a default title and a hidden API to customize
the title.

Bug: 30177642
Test: With TalkBack running, navigate to Settings->
Network & Internet. Select the more options button and
double-tap to select it. It now announces "Popup Window".

Change-Id: I38591a25be0fe1d5bf57c9edee29f09c92e258ea
This commit is contained in:
Phil Weaver
2017-06-07 18:27:18 -07:00
parent ecad1822d6
commit 5476da968f
3 changed files with 33 additions and 0 deletions

View File

@@ -208,6 +208,9 @@ public class PopupWindow {
private int mGravity = Gravity.NO_GRAVITY;
// Title provided to accessibility services
private CharSequence mAccessibilityTitle;
private static final int[] ABOVE_ANCHOR_STATE_SET = new int[] {
com.android.internal.R.attr.state_above_anchor
};
@@ -1131,6 +1134,31 @@ public class PopupWindow {
return mIsShowing;
}
/**
* Set the title for this window to be reported to accessibility services. If no title is set,
* a generic default will be reported.
*
* @param accessibilityTitle The new title, or {@code null} to specify that the default should
* be used.
* @hide
*/
public void setAccessibilityTitle(@Nullable CharSequence accessibilityTitle) {
mAccessibilityTitle = accessibilityTitle;
}
/**
* Get the title for this window to be reported to accessibility services.
*
* @return The current title.
* @hide
*/
public @NonNull CharSequence getAccessibilityTitle() {
if (mAccessibilityTitle == null) {
mAccessibilityTitle = mContext.getString(R.string.popup_window_default_title);
}
return mAccessibilityTitle;
}
/** @hide */
protected final void setShowing(boolean isShowing) {
mIsShowing = isShowing;
@@ -1496,6 +1524,7 @@ public class PopupWindow {
// Used for debugging.
p.setTitle("PopupWindow:" + Integer.toHexString(hashCode()));
p.accessibilityTitle = getAccessibilityTitle();
return p;
}

View File

@@ -4706,4 +4706,7 @@
<string name="mmcc_imsi_unknown_in_hlr">SIM not provisioned</string>
<string name="mmcc_illegal_ms">SIM not allowed</string>
<string name="mmcc_illegal_me">Phone not allowed</string>
<!-- Popup window default title to be read by a screen reader-->
<string name="popup_window_default_title">Popup Window</string>
</resources>

View File

@@ -3047,4 +3047,5 @@
<java-symbol type="array" name="config_batteryPackageTypeSystem" />
<java-symbol type="array" name="config_batteryPackageTypeService" />
<java-symbol type="string" name="popup_window_default_title" />
</resources>