Loading core/java/com/android/internal/app/ToolbarActionBar.java +2 −24 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ 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; Loading @@ -33,7 +32,6 @@ 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.view.menu.MenuPresenter; import com.android.internal.widget.DecorToolbar; Loading @@ -48,8 +46,6 @@ public class ToolbarActionBar extends ActionBar { private Window.Callback mWindowCallback; private boolean mMenuCallbackSet; private CharSequence mHomeDescription; private boolean mLastMenuVisibility; private ArrayList<OnMenuVisibilityListener> mMenuVisibilityListeners = new ArrayList<OnMenuVisibilityListener>(); Loading @@ -76,8 +72,6 @@ public class ToolbarActionBar extends ActionBar { mDecorToolbar.setWindowCallback(mWindowCallback); toolbar.setOnMenuItemClickListener(mMenuClicker); mDecorToolbar.setWindowTitle(title); mHomeDescription = mToolbar.getNavigationContentDescription(); updateNavDescription(); } public Window.Callback getWrappedWindowCallback() { Loading Loading @@ -168,8 +162,7 @@ public class ToolbarActionBar extends ActionBar { @Override public void setHomeActionContentDescription(CharSequence description) { mToolbar.setNavigationContentDescription(description); mHomeDescription = description; mDecorToolbar.setNavigationContentDescription(description); } @Override Loading @@ -179,8 +172,7 @@ public class ToolbarActionBar extends ActionBar { @Override public void setHomeActionContentDescription(int resId) { mToolbar.setNavigationContentDescription(resId); mHomeDescription = mToolbar.getNavigationContentDescription(); mDecorToolbar.setNavigationContentDescription(resId); } @Override Loading Loading @@ -258,21 +250,7 @@ public class ToolbarActionBar extends ActionBar { @Override public void setDisplayOptions(@DisplayOptions int options, @DisplayOptions int 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 Loading core/java/com/android/internal/widget/ActionBarView.java +12 −2 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { private ExpandedActionViewMenuPresenter mExpandedMenuPresenter; View mExpandedActionView; private int mDefaultUpDescription = R.string.action_bar_up_description; Window.Callback mWindowCallback; Loading Loading @@ -187,7 +188,7 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { mExpandedHomeLayout.setShowUp(true); mExpandedHomeLayout.setOnClickListener(mExpandedActionViewUpListener); mExpandedHomeLayout.setContentDescription(getResources().getText( R.string.action_bar_up_description)); mDefaultUpDescription)); // This needs to highlight/be focusable on its own. // TODO: Clean up the handoff between expanded/normal. Loading Loading @@ -579,7 +580,7 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { homeDesc = mHomeDescription; } else { if ((mDisplayOptions & ActionBar.DISPLAY_HOME_AS_UP) != 0) { homeDesc = mContext.getResources().getText(R.string.action_bar_up_description); homeDesc = mContext.getResources().getText(mDefaultUpDescription); } else { homeDesc = mContext.getResources().getText(R.string.action_bar_home_description); } Loading Loading @@ -1330,6 +1331,15 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { updateHomeAccessibility(mUpGoerFive.isEnabled()); } @Override public void setDefaultNavigationContentDescription(int defaultNavigationContentDescription) { if (mDefaultUpDescription == defaultNavigationContentDescription) { return; } mDefaultUpDescription = defaultNavigationContentDescription; updateHomeAccessibility(mUpGoerFive.isEnabled()); } static class SavedState extends BaseSavedState { int expandedMenuItemId; boolean isOverflowOpen; Loading core/java/com/android/internal/widget/DecorToolbar.java +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ public interface DecorToolbar { void setNavigationIcon(int resId); void setNavigationContentDescription(CharSequence description); void setNavigationContentDescription(int resId); void setDefaultNavigationContentDescription(int defaultNavigationContentDescription); void saveHierarchyState(SparseArray<Parcelable> toolbarStates); void restoreHierarchyState(SparseArray<Parcelable> toolbarStates); } core/java/com/android/internal/widget/ToolbarWidgetWrapper.java +34 −6 Original line number Diff line number Diff line Loading @@ -76,14 +76,21 @@ public class ToolbarWidgetWrapper implements DecorToolbar { private boolean mTitleSet; private CharSequence mTitle; private CharSequence mSubtitle; private CharSequence mHomeDescription; private Window.Callback mWindowCallback; private boolean mMenuPrepared; private ActionMenuPresenter mActionMenuPresenter; private int mNavigationMode = ActionBar.NAVIGATION_MODE_STANDARD; private int mDefaultNavigationContentDescription = 0; public ToolbarWidgetWrapper(Toolbar toolbar, boolean style) { this(toolbar, style, R.string.action_bar_up_description); } public ToolbarWidgetWrapper(Toolbar toolbar, boolean style, int defaultNavigationContentDescription) { mToolbar = toolbar; mTitle = toolbar.getTitle(); Loading Loading @@ -166,10 +173,8 @@ public class ToolbarWidgetWrapper implements DecorToolbar { mDisplayOpts = detectDisplayOptions(); } if (TextUtils.isEmpty(mToolbar.getNavigationContentDescription())) { mToolbar.setNavigationContentDescription( getContext().getResources().getText(R.string.action_bar_up_description)); } setDefaultNavigationContentDescription(defaultNavigationContentDescription); mHomeDescription = mToolbar.getNavigationContentDescription(); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { final ActionMenuItem mNavItem = new ActionMenuItem(mToolbar.getContext(), Loading @@ -183,6 +188,17 @@ public class ToolbarWidgetWrapper implements DecorToolbar { }); } @Override public void setDefaultNavigationContentDescription(int defaultNavigationContentDescription) { if (defaultNavigationContentDescription == mDefaultNavigationContentDescription) { return; } mDefaultNavigationContentDescription = defaultNavigationContentDescription; if (TextUtils.isEmpty(mToolbar.getNavigationContentDescription())) { setNavigationContentDescription(mDefaultNavigationContentDescription); } } private int detectDisplayOptions() { int opts = ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_USE_LOGO; Loading Loading @@ -395,6 +411,7 @@ public class ToolbarWidgetWrapper implements DecorToolbar { if ((changed & ActionBar.DISPLAY_HOME_AS_UP) != 0) { if ((newOpts & ActionBar.DISPLAY_HOME_AS_UP) != 0) { mToolbar.setNavigationIcon(mNavIcon); updateHomeAccessibility(); } else { mToolbar.setNavigationIcon(null); } Loading Loading @@ -602,12 +619,23 @@ public class ToolbarWidgetWrapper implements DecorToolbar { @Override public void setNavigationContentDescription(CharSequence description) { mToolbar.setNavigationContentDescription(description); mHomeDescription = description; updateHomeAccessibility(); } @Override public void setNavigationContentDescription(int resId) { mToolbar.setNavigationContentDescription(resId); setNavigationContentDescription(resId == 0 ? null : getContext().getString(resId)); } private void updateHomeAccessibility() { if ((mDisplayOpts & ActionBar.DISPLAY_HOME_AS_UP) != 0) { if (TextUtils.isEmpty(mHomeDescription)) { mToolbar.setNavigationContentDescription(mDefaultNavigationContentDescription); } else { mToolbar.setNavigationContentDescription(mHomeDescription); } } } @Override Loading Loading
core/java/com/android/internal/app/ToolbarActionBar.java +2 −24 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ 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; Loading @@ -33,7 +32,6 @@ 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.view.menu.MenuPresenter; import com.android.internal.widget.DecorToolbar; Loading @@ -48,8 +46,6 @@ public class ToolbarActionBar extends ActionBar { private Window.Callback mWindowCallback; private boolean mMenuCallbackSet; private CharSequence mHomeDescription; private boolean mLastMenuVisibility; private ArrayList<OnMenuVisibilityListener> mMenuVisibilityListeners = new ArrayList<OnMenuVisibilityListener>(); Loading @@ -76,8 +72,6 @@ public class ToolbarActionBar extends ActionBar { mDecorToolbar.setWindowCallback(mWindowCallback); toolbar.setOnMenuItemClickListener(mMenuClicker); mDecorToolbar.setWindowTitle(title); mHomeDescription = mToolbar.getNavigationContentDescription(); updateNavDescription(); } public Window.Callback getWrappedWindowCallback() { Loading Loading @@ -168,8 +162,7 @@ public class ToolbarActionBar extends ActionBar { @Override public void setHomeActionContentDescription(CharSequence description) { mToolbar.setNavigationContentDescription(description); mHomeDescription = description; mDecorToolbar.setNavigationContentDescription(description); } @Override Loading @@ -179,8 +172,7 @@ public class ToolbarActionBar extends ActionBar { @Override public void setHomeActionContentDescription(int resId) { mToolbar.setNavigationContentDescription(resId); mHomeDescription = mToolbar.getNavigationContentDescription(); mDecorToolbar.setNavigationContentDescription(resId); } @Override Loading Loading @@ -258,21 +250,7 @@ public class ToolbarActionBar extends ActionBar { @Override public void setDisplayOptions(@DisplayOptions int options, @DisplayOptions int 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 Loading
core/java/com/android/internal/widget/ActionBarView.java +12 −2 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { private ExpandedActionViewMenuPresenter mExpandedMenuPresenter; View mExpandedActionView; private int mDefaultUpDescription = R.string.action_bar_up_description; Window.Callback mWindowCallback; Loading Loading @@ -187,7 +188,7 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { mExpandedHomeLayout.setShowUp(true); mExpandedHomeLayout.setOnClickListener(mExpandedActionViewUpListener); mExpandedHomeLayout.setContentDescription(getResources().getText( R.string.action_bar_up_description)); mDefaultUpDescription)); // This needs to highlight/be focusable on its own. // TODO: Clean up the handoff between expanded/normal. Loading Loading @@ -579,7 +580,7 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { homeDesc = mHomeDescription; } else { if ((mDisplayOptions & ActionBar.DISPLAY_HOME_AS_UP) != 0) { homeDesc = mContext.getResources().getText(R.string.action_bar_up_description); homeDesc = mContext.getResources().getText(mDefaultUpDescription); } else { homeDesc = mContext.getResources().getText(R.string.action_bar_home_description); } Loading Loading @@ -1330,6 +1331,15 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar { updateHomeAccessibility(mUpGoerFive.isEnabled()); } @Override public void setDefaultNavigationContentDescription(int defaultNavigationContentDescription) { if (mDefaultUpDescription == defaultNavigationContentDescription) { return; } mDefaultUpDescription = defaultNavigationContentDescription; updateHomeAccessibility(mUpGoerFive.isEnabled()); } static class SavedState extends BaseSavedState { int expandedMenuItemId; boolean isOverflowOpen; Loading
core/java/com/android/internal/widget/DecorToolbar.java +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ public interface DecorToolbar { void setNavigationIcon(int resId); void setNavigationContentDescription(CharSequence description); void setNavigationContentDescription(int resId); void setDefaultNavigationContentDescription(int defaultNavigationContentDescription); void saveHierarchyState(SparseArray<Parcelable> toolbarStates); void restoreHierarchyState(SparseArray<Parcelable> toolbarStates); }
core/java/com/android/internal/widget/ToolbarWidgetWrapper.java +34 −6 Original line number Diff line number Diff line Loading @@ -76,14 +76,21 @@ public class ToolbarWidgetWrapper implements DecorToolbar { private boolean mTitleSet; private CharSequence mTitle; private CharSequence mSubtitle; private CharSequence mHomeDescription; private Window.Callback mWindowCallback; private boolean mMenuPrepared; private ActionMenuPresenter mActionMenuPresenter; private int mNavigationMode = ActionBar.NAVIGATION_MODE_STANDARD; private int mDefaultNavigationContentDescription = 0; public ToolbarWidgetWrapper(Toolbar toolbar, boolean style) { this(toolbar, style, R.string.action_bar_up_description); } public ToolbarWidgetWrapper(Toolbar toolbar, boolean style, int defaultNavigationContentDescription) { mToolbar = toolbar; mTitle = toolbar.getTitle(); Loading Loading @@ -166,10 +173,8 @@ public class ToolbarWidgetWrapper implements DecorToolbar { mDisplayOpts = detectDisplayOptions(); } if (TextUtils.isEmpty(mToolbar.getNavigationContentDescription())) { mToolbar.setNavigationContentDescription( getContext().getResources().getText(R.string.action_bar_up_description)); } setDefaultNavigationContentDescription(defaultNavigationContentDescription); mHomeDescription = mToolbar.getNavigationContentDescription(); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { final ActionMenuItem mNavItem = new ActionMenuItem(mToolbar.getContext(), Loading @@ -183,6 +188,17 @@ public class ToolbarWidgetWrapper implements DecorToolbar { }); } @Override public void setDefaultNavigationContentDescription(int defaultNavigationContentDescription) { if (defaultNavigationContentDescription == mDefaultNavigationContentDescription) { return; } mDefaultNavigationContentDescription = defaultNavigationContentDescription; if (TextUtils.isEmpty(mToolbar.getNavigationContentDescription())) { setNavigationContentDescription(mDefaultNavigationContentDescription); } } private int detectDisplayOptions() { int opts = ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_USE_LOGO; Loading Loading @@ -395,6 +411,7 @@ public class ToolbarWidgetWrapper implements DecorToolbar { if ((changed & ActionBar.DISPLAY_HOME_AS_UP) != 0) { if ((newOpts & ActionBar.DISPLAY_HOME_AS_UP) != 0) { mToolbar.setNavigationIcon(mNavIcon); updateHomeAccessibility(); } else { mToolbar.setNavigationIcon(null); } Loading Loading @@ -602,12 +619,23 @@ public class ToolbarWidgetWrapper implements DecorToolbar { @Override public void setNavigationContentDescription(CharSequence description) { mToolbar.setNavigationContentDescription(description); mHomeDescription = description; updateHomeAccessibility(); } @Override public void setNavigationContentDescription(int resId) { mToolbar.setNavigationContentDescription(resId); setNavigationContentDescription(resId == 0 ? null : getContext().getString(resId)); } private void updateHomeAccessibility() { if ((mDisplayOpts & ActionBar.DISPLAY_HOME_AS_UP) != 0) { if (TextUtils.isEmpty(mHomeDescription)) { mToolbar.setNavigationContentDescription(mDefaultNavigationContentDescription); } else { mToolbar.setNavigationContentDescription(mHomeDescription); } } } @Override Loading