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:
Phil Weaver
2016-05-26 00:19:19 +00:00
committed by android-build-merger
4 changed files with 21 additions and 10 deletions

View File

@@ -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;
}

View File

@@ -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());
}
}
}

View File

@@ -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(

View File

@@ -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;