Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a7e4442 authored by Phil Weaver's avatar Phil Weaver
Browse files

Improve accessibility window title behavior

Suppress the default, unlocalized strings from being read as title.

Bug: 28744278
Change-Id: Iea0f7d8fed3d6428ada725cf3ffa077ba974b74a
parent ef817a1d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
    }
+10 −4
Original line number Diff line number Diff line
@@ -521,18 +521,24 @@ 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;
        if (updateAccessibilityTitle) {
            WindowManager.LayoutParams params = getAttributes();
            if (!TextUtils.equals(title, params.accessibilityTitle)) {
                params.accessibilityTitle = TextUtils.stringOrSpannedString(title);
                dispatchWindowAttributesChanged(getAttributes());
            }
        }
    }

    @Override
    @Deprecated
+8 −2
Original line number Diff line number Diff line
@@ -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(
+0 −3
Original line number Diff line number Diff line
@@ -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;