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

Commit d400ca2f authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Automatically supply a content description for ToolbarActionBar nav" into lmp-dev

parents 36bdc9fe 12b0321c
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -248,12 +248,13 @@ public class Toolbar extends ViewGroup {
        final Drawable navIcon = a.getDrawable(R.styleable.Toolbar_navigationIcon);
        if (navIcon != null) {
            setNavigationIcon(navIcon);
        }

        final CharSequence navDesc = a.getText(
                R.styleable.Toolbar_navigationContentDescription);
        if (!TextUtils.isEmpty(navDesc)) {
            setNavigationContentDescription(navDesc);
        }
        }
        a.recycle();
    }

+24 −2
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.app.ActionBar;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.ActionMode;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -32,6 +33,7 @@ import android.view.Window;
import android.view.WindowCallbackWrapper;
import android.widget.SpinnerAdapter;
import android.widget.Toolbar;
import com.android.internal.R;
import com.android.internal.view.menu.MenuBuilder;
import com.android.internal.widget.DecorToolbar;
import com.android.internal.widget.ToolbarWidgetWrapper;
@@ -44,6 +46,8 @@ public class ToolbarActionBar extends ActionBar {
    private boolean mToolbarMenuPrepared;
    private Window.Callback mWindowCallback;

    private CharSequence mHomeDescription;

    private boolean mLastMenuVisibility;
    private ArrayList<OnMenuVisibilityListener> mMenuVisibilityListeners =
            new ArrayList<OnMenuVisibilityListener>();
@@ -70,6 +74,8 @@ public class ToolbarActionBar extends ActionBar {
        mDecorToolbar.setWindowCallback(mWindowCallback);
        toolbar.setOnMenuItemClickListener(mMenuClicker);
        mDecorToolbar.setWindowTitle(title);
        mHomeDescription = mToolbar.getNavigationContentDescription();
        updateNavDescription();
    }

    public Window.Callback getWrappedWindowCallback() {
@@ -161,6 +167,7 @@ public class ToolbarActionBar extends ActionBar {
    @Override
    public void setHomeActionContentDescription(CharSequence description) {
        mToolbar.setNavigationContentDescription(description);
        mHomeDescription = description;
    }

    @Override
@@ -171,6 +178,7 @@ public class ToolbarActionBar extends ActionBar {
    @Override
    public void setHomeActionContentDescription(int resId) {
        mToolbar.setNavigationContentDescription(resId);
        mHomeDescription = mToolbar.getNavigationContentDescription();
    }

    @Override
@@ -247,8 +255,22 @@ public class ToolbarActionBar extends ActionBar {

    @Override
    public void setDisplayOptions(@DisplayOptions int options, @DisplayOptions int mask) {
        mDecorToolbar.setDisplayOptions((options & mask) |
                mDecorToolbar.getDisplayOptions() & ~mask);
        final int currentOptions = mDecorToolbar.getDisplayOptions();
        final int changed = (options ^ currentOptions) & mask;
        mDecorToolbar.setDisplayOptions(options & mask | currentOptions & ~mask);
        if ((changed & ActionBar.DISPLAY_HOME_AS_UP) != 0) {
            updateNavDescription();
        }
    }

    private void updateNavDescription() {
        if ((mDecorToolbar.getDisplayOptions() & ActionBar.DISPLAY_HOME_AS_UP) != 0) {
            if (TextUtils.isEmpty(mHomeDescription)) {
                mToolbar.setNavigationContentDescription(R.string.action_bar_up_description);
            } else {
                mToolbar.setNavigationContentDescription(mHomeDescription);
            }
        }
    }

    @Override
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ This is an optimized layout for a screen with a toolbar enabled.
            android:id="@+id/action_bar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:navigationContentDescription="@string/action_bar_up_description"
            style="?attr/toolbarStyle" />
        <com.android.internal.widget.ActionBarContextView
            android:id="@+id/action_context_bar"