diff --git a/core/java/android/view/accessibility/AccessibilityWindowInfo.java b/core/java/android/view/accessibility/AccessibilityWindowInfo.java index d0d4507e7b621..52f35de7e1894 100644 --- a/core/java/android/view/accessibility/AccessibilityWindowInfo.java +++ b/core/java/android/view/accessibility/AccessibilityWindowInfo.java @@ -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; } diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java index 5bb89693e9f25..4f15ece8e04e0 100644 --- a/core/java/com/android/internal/policy/PhoneWindow.java +++ b/core/java/com/android/internal/policy/PhoneWindow.java @@ -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()); + } } } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 5fdb1e85b8e13..0cafb93a060b3 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -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( diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index 101f56f49241f..8be5dfb3c7fda 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -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;