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

Commit e021e6ed authored by Adam Powell's avatar Adam Powell
Browse files

Toolbar factoring and ActionBar functionality integration

Toolbars now can act in the role of ActionBar with the exception of
navigation modes. Expandable action views are now supported as well as
populating menu items from a host window.

Change-Id: If477db9c7ad9f95723f28cf73cbf03a07ce9d6ad
parent 560ce61c
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -35852,10 +35852,14 @@ package android.widget {
  public class ActionMenuView extends android.widget.LinearLayout {
    ctor public ActionMenuView(android.content.Context);
    ctor public ActionMenuView(android.content.Context, android.util.AttributeSet);
    method public void dismissPopupMenus();
    method public android.view.Menu getMenu();
    method public boolean hideOverflowMenu();
    method public boolean isOverflowMenuShowing();
    method public void onConfigurationChanged(android.content.res.Configuration);
    method public void onDetachedFromWindow();
    method public void setOnMenuItemClickListener(android.widget.ActionMenuView.OnMenuItemClickListener);
    method public boolean showOverflowMenu();
  }
  public static class ActionMenuView.LayoutParams extends android.widget.LinearLayout.LayoutParams {
@@ -38033,6 +38037,8 @@ package android.widget {
    ctor public Toolbar(android.content.Context, android.util.AttributeSet);
    ctor public Toolbar(android.content.Context, android.util.AttributeSet, int);
    ctor public Toolbar(android.content.Context, android.util.AttributeSet, int, int);
    method public void collapseActionView();
    method public void dismissPopupMenus();
    method public int getContentInsetEnd();
    method public int getContentInsetLeft();
    method public int getContentInsetRight();
@@ -38043,7 +38049,10 @@ package android.widget {
    method public android.graphics.drawable.Drawable getNavigationIcon();
    method public java.lang.CharSequence getSubtitle();
    method public java.lang.CharSequence getTitle();
    method public boolean hasExpandedActionView();
    method public boolean hideOverflowMenu();
    method public void inflateMenu(int);
    method public boolean isOverflowMenuShowing();
    method protected void onLayout(boolean, int, int, int, int);
    method public void setContentInsetsAbsolute(int, int);
    method public void setContentInsetsRelative(int, int);
@@ -38051,6 +38060,8 @@ package android.widget {
    method public void setLogo(android.graphics.drawable.Drawable);
    method public void setLogoDescription(int);
    method public void setLogoDescription(java.lang.CharSequence);
    method public void setNavigationContentDescription(java.lang.CharSequence);
    method public void setNavigationContentDescription(int);
    method public void setNavigationDescription(int);
    method public void setNavigationDescription(java.lang.CharSequence);
    method public void setNavigationIcon(int);
@@ -38061,17 +38072,18 @@ package android.widget {
    method public void setSubtitle(java.lang.CharSequence);
    method public void setTitle(int);
    method public void setTitle(java.lang.CharSequence);
    method public boolean showOverflowMenu();
  }
  public static class Toolbar.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
  public static class Toolbar.LayoutParams extends android.app.ActionBar.LayoutParams {
    ctor public Toolbar.LayoutParams(android.content.Context, android.util.AttributeSet);
    ctor public Toolbar.LayoutParams(int, int);
    ctor public Toolbar.LayoutParams(int, int, int);
    ctor public Toolbar.LayoutParams(int);
    ctor public Toolbar.LayoutParams(android.widget.Toolbar.LayoutParams);
    ctor public Toolbar.LayoutParams(android.app.ActionBar.LayoutParams);
    ctor public Toolbar.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
    ctor public Toolbar.LayoutParams(android.view.ViewGroup.LayoutParams);
    field public int gravity;
  }
  public static abstract interface Toolbar.OnMenuItemClickListener {
+2 −0
Original line number Diff line number Diff line
@@ -1291,6 +1291,7 @@ public abstract class ActionBar {

        public LayoutParams(int width, int height) {
            super(width, height);
            this.gravity = Gravity.CENTER_VERTICAL | Gravity.START;
        }

        public LayoutParams(int width, int height, int gravity) {
@@ -1305,6 +1306,7 @@ public abstract class ActionBar {

        public LayoutParams(LayoutParams source) {
            super(source);
            this.gravity = source.gravity;
        }

        public LayoutParams(ViewGroup.LayoutParams source) {
+1 −0
Original line number Diff line number Diff line
@@ -544,6 +544,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter

    public void setMenuView(ActionMenuView menuView) {
        mMenuView = menuView;
        menuView.initialize(mMenu);
    }

    private static class SavedState implements Parcelable {
+52 −1
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
    /** @hide */
    public void setPresenter(ActionMenuPresenter presenter) {
        mPresenter = presenter;
        mPresenter.setMenuView(this);
    }

    @Override
@@ -488,7 +489,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
    @Override
    public void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        mPresenter.dismissPopupMenus();
        dismissPopupMenus();
    }

    /** @hide */
@@ -577,6 +578,56 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
        return mMenu;
    }

    /**
     * Returns the current menu or null if one has not yet been configured.
     * @hide Internal use only for action bar integration
     */
    public MenuBuilder peekMenu() {
        return mMenu;
    }

    /**
     * Show the overflow items from the associated menu.
     *
     * @return true if the menu was able to be shown, false otherwise
     */
    public boolean showOverflowMenu() {
        return mPresenter != null && mPresenter.showOverflowMenu();
    }

    /**
     * Hide the overflow items from the associated menu.
     *
     * @return true if the menu was able to be hidden, false otherwise
     */
    public boolean hideOverflowMenu() {
        return mPresenter != null && mPresenter.hideOverflowMenu();
    }

    /**
     * Check whether the overflow menu is currently showing. This may not reflect
     * a pending show operation in progress.
     *
     * @return true if the overflow menu is currently showing
     */
    public boolean isOverflowMenuShowing() {
        return mPresenter != null && mPresenter.isOverflowMenuShowing();
    }

    /** @hide */
    public boolean isOverflowMenuShowPending() {
        return mPresenter != null && mPresenter.isOverflowMenuShowPending();
    }

    /**
     * Dismiss any popups associated with this menu view.
     */
    public void dismissPopupMenus() {
        if (mPresenter != null) {
            mPresenter.dismissPopupMenus();
        }
    }

    /**
     * @hide Private LinearLayout (superclass) API. Un-hide if LinearLayout API is made public.
     */
+468 −64

File changed.

Preview size limit exceeded, changes collapsed.

Loading