Merge "Improve accessibility window title behavior" into nyc-dev
am: 7ab1a4d286
* commit '7ab1a4d286898acffd1f3b444f9efc9e1d2a104e':
Improve accessibility window title behavior
Change-Id: Iff0d61871f48a66510e1fab72adbfb062c01c203
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package android.view.accessibility;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
@@ -101,8 +102,9 @@ public final class AccessibilityWindowInfo implements Parcelable {
|
||||
/**
|
||||
* Gets the title of the window.
|
||||
*
|
||||
* @return The title.
|
||||
* @return The title of the window, or {@code null} if none is available.
|
||||
*/
|
||||
@Nullable
|
||||
public CharSequence getTitle() {
|
||||
return mTitle;
|
||||
}
|
||||
|
||||
@@ -521,16 +521,22 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
|
||||
@Override
|
||||
public void setTitle(CharSequence title) {
|
||||
setTitle(title, true);
|
||||
}
|
||||
|
||||
public void setTitle(CharSequence title, boolean updateAccessibilityTitle) {
|
||||
if (mTitleView != null) {
|
||||
mTitleView.setText(title);
|
||||
} else if (mDecorContentParent != null) {
|
||||
mDecorContentParent.setWindowTitle(title);
|
||||
}
|
||||
mTitle = title;
|
||||
WindowManager.LayoutParams params = getAttributes();
|
||||
if (!TextUtils.equals(title, params.accessibilityTitle)) {
|
||||
params.accessibilityTitle = TextUtils.stringOrSpannedString(title);
|
||||
dispatchWindowAttributesChanged(getAttributes());
|
||||
if (updateAccessibilityTitle) {
|
||||
WindowManager.LayoutParams params = getAttributes();
|
||||
if (!TextUtils.equals(title, params.accessibilityTitle)) {
|
||||
params.accessibilityTitle = TextUtils.stringOrSpannedString(title);
|
||||
dispatchWindowAttributesChanged(getAttributes());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2589,8 +2589,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
final PhoneWindow win = new PhoneWindow(context);
|
||||
win.setIsStartingWindow(true);
|
||||
|
||||
final WindowManager.LayoutParams params = win.getAttributes();
|
||||
final Resources r = context.getResources();
|
||||
win.setTitle(r.getText(labelRes, nonLocalizedLabel));
|
||||
CharSequence label = r.getText(labelRes);
|
||||
// Only change the accessibility title if the label is localized
|
||||
if (label != null) {
|
||||
win.setTitle(label, true);
|
||||
} else {
|
||||
win.setTitle(nonLocalizedLabel, false);
|
||||
}
|
||||
|
||||
win.setType(
|
||||
WindowManager.LayoutParams.TYPE_APPLICATION_STARTING);
|
||||
@@ -2624,7 +2631,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
win.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
|
||||
WindowManager.LayoutParams.MATCH_PARENT);
|
||||
|
||||
final WindowManager.LayoutParams params = win.getAttributes();
|
||||
params.token = appToken;
|
||||
params.packageName = packageName;
|
||||
params.windowAnimations = win.getWindowStyle().getResourceId(
|
||||
|
||||
@@ -1203,9 +1203,6 @@ final class AccessibilityController {
|
||||
window.layer = windowState.mLayer;
|
||||
window.token = windowState.mClient.asBinder();
|
||||
window.title = windowState.mAttrs.accessibilityTitle;
|
||||
if (window.title == null) {
|
||||
window.title = windowState.mAttrs.getTitle();
|
||||
}
|
||||
window.accessibilityIdOfAnchor = windowState.mAttrs.accessibilityIdOfAnchor;
|
||||
|
||||
WindowState attachedWindow = windowState.mAttachedWindow;
|
||||
|
||||
Reference in New Issue
Block a user