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

Commit 012e06bc authored by Yigit Boyar's avatar Yigit Boyar Committed by Android Git Automerger
Browse files

am 33d9dc46: Merge "Move all actionbar related methods to DecorToolbar" into lmp-mr1-dev

* commit '33d9dc46':
  Move all actionbar related methods to DecorToolbar
parents ce0bc264 33d9dc46
Loading
Loading
Loading
Loading
+23 −25
Original line number Original line Diff line number Diff line
@@ -40,7 +40,6 @@ import com.android.internal.widget.ToolbarWidgetWrapper;
import java.util.ArrayList;
import java.util.ArrayList;


public class ToolbarActionBar extends ActionBar {
public class ToolbarActionBar extends ActionBar {
    private Toolbar mToolbar;
    private DecorToolbar mDecorToolbar;
    private DecorToolbar mDecorToolbar;
    private boolean mToolbarMenuPrepared;
    private boolean mToolbarMenuPrepared;
    private Window.Callback mWindowCallback;
    private Window.Callback mWindowCallback;
@@ -66,7 +65,6 @@ public class ToolbarActionBar extends ActionBar {
    };
    };


    public ToolbarActionBar(Toolbar toolbar, CharSequence title, Window.Callback windowCallback) {
    public ToolbarActionBar(Toolbar toolbar, CharSequence title, Window.Callback windowCallback) {
        mToolbar = toolbar;
        mDecorToolbar = new ToolbarWidgetWrapper(toolbar, false);
        mDecorToolbar = new ToolbarWidgetWrapper(toolbar, false);
        mWindowCallback = new ToolbarCallbackWrapper(windowCallback);
        mWindowCallback = new ToolbarCallbackWrapper(windowCallback);
        mDecorToolbar.setWindowCallback(mWindowCallback);
        mDecorToolbar.setWindowCallback(mWindowCallback);
@@ -91,8 +89,8 @@ public class ToolbarActionBar extends ActionBar {


    @Override
    @Override
    public void setCustomView(int resId) {
    public void setCustomView(int resId) {
        final LayoutInflater inflater = LayoutInflater.from(mToolbar.getContext());
        final LayoutInflater inflater = LayoutInflater.from(mDecorToolbar.getContext());
        setCustomView(inflater.inflate(resId, mToolbar, false));
        setCustomView(inflater.inflate(resId, mDecorToolbar.getViewGroup(), false));
    }
    }


    @Override
    @Override
@@ -132,17 +130,17 @@ public class ToolbarActionBar extends ActionBar {


    @Override
    @Override
    public void setElevation(float elevation) {
    public void setElevation(float elevation) {
        mToolbar.setElevation(elevation);
        mDecorToolbar.getViewGroup().setElevation(elevation);
    }
    }


    @Override
    @Override
    public float getElevation() {
    public float getElevation() {
        return mToolbar.getElevation();
        return mDecorToolbar.getViewGroup().getElevation();
    }
    }


    @Override
    @Override
    public Context getThemedContext() {
    public Context getThemedContext() {
        return mToolbar.getContext();
        return mDecorToolbar.getContext();
    }
    }


    @Override
    @Override
@@ -152,12 +150,12 @@ public class ToolbarActionBar extends ActionBar {


    @Override
    @Override
    public void setHomeAsUpIndicator(Drawable indicator) {
    public void setHomeAsUpIndicator(Drawable indicator) {
        mToolbar.setNavigationIcon(indicator);
        mDecorToolbar.setNavigationIcon(indicator);
    }
    }


    @Override
    @Override
    public void setHomeAsUpIndicator(int resId) {
    public void setHomeAsUpIndicator(int resId) {
        mToolbar.setNavigationIcon(resId);
        mDecorToolbar.setNavigationIcon(resId);
    }
    }


    @Override
    @Override
@@ -280,7 +278,7 @@ public class ToolbarActionBar extends ActionBar {


    @Override
    @Override
    public void setBackgroundDrawable(@Nullable Drawable d) {
    public void setBackgroundDrawable(@Nullable Drawable d) {
        mToolbar.setBackground(d);
        mDecorToolbar.setBackgroundDrawable(d);
    }
    }


    @Override
    @Override
@@ -290,12 +288,12 @@ public class ToolbarActionBar extends ActionBar {


    @Override
    @Override
    public CharSequence getTitle() {
    public CharSequence getTitle() {
        return mToolbar.getTitle();
        return mDecorToolbar.getTitle();
    }
    }


    @Override
    @Override
    public CharSequence getSubtitle() {
    public CharSequence getSubtitle() {
        return mToolbar.getSubtitle();
        return mDecorToolbar.getSubtitle();
    }
    }


    @Override
    @Override
@@ -389,44 +387,44 @@ public class ToolbarActionBar extends ActionBar {


    @Override
    @Override
    public int getHeight() {
    public int getHeight() {
        return mToolbar.getHeight();
        return mDecorToolbar.getHeight();
    }
    }


    @Override
    @Override
    public void show() {
    public void show() {
        // TODO: Consider a better transition for this.
        // TODO: Consider a better transition for this.
        // Right now use no automatic transition so that the app can supply one if desired.
        // Right now use no automatic transition so that the app can supply one if desired.
        mToolbar.setVisibility(View.VISIBLE);
        mDecorToolbar.setVisibility(View.VISIBLE);
    }
    }


    @Override
    @Override
    public void hide() {
    public void hide() {
        // TODO: Consider a better transition for this.
        // TODO: Consider a better transition for this.
        // Right now use no automatic transition so that the app can supply one if desired.
        // Right now use no automatic transition so that the app can supply one if desired.
        mToolbar.setVisibility(View.GONE);
        mDecorToolbar.setVisibility(View.GONE);
    }
    }


    @Override
    @Override
    public boolean isShowing() {
    public boolean isShowing() {
        return mToolbar.getVisibility() == View.VISIBLE;
        return mDecorToolbar.getVisibility() == View.VISIBLE;
    }
    }


    @Override
    @Override
    public boolean openOptionsMenu() {
    public boolean openOptionsMenu() {
        return mToolbar.showOverflowMenu();
        return mDecorToolbar.showOverflowMenu();
    }
    }


    @Override
    @Override
    public boolean invalidateOptionsMenu() {
    public boolean invalidateOptionsMenu() {
        mToolbar.removeCallbacks(mMenuInvalidator);
        mDecorToolbar.getViewGroup().removeCallbacks(mMenuInvalidator);
        mToolbar.postOnAnimation(mMenuInvalidator);
        mDecorToolbar.getViewGroup().postOnAnimation(mMenuInvalidator);
        return true;
        return true;
    }
    }


    @Override
    @Override
    public boolean collapseActionView() {
    public boolean collapseActionView() {
        if (mToolbar.hasExpandedActionView()) {
        if (mDecorToolbar.hasExpandedActionView()) {
            mToolbar.collapseActionView();
            mDecorToolbar.collapseActionView();
            return true;
            return true;
        }
        }
        return false;
        return false;
@@ -434,10 +432,10 @@ public class ToolbarActionBar extends ActionBar {


    void populateOptionsMenu() {
    void populateOptionsMenu() {
        if (!mMenuCallbackSet) {
        if (!mMenuCallbackSet) {
            mToolbar.setMenuCallbacks(new ActionMenuPresenterCallback(), new MenuBuilderCallback());
            mDecorToolbar.setMenuCallbacks(new ActionMenuPresenterCallback(), new MenuBuilderCallback());
            mMenuCallbackSet = true;
            mMenuCallbackSet = true;
        }
        }
        final Menu menu = mToolbar.getMenu();
        final Menu menu = mDecorToolbar.getMenu();
        final MenuBuilder mb = menu instanceof MenuBuilder ? (MenuBuilder) menu : null;
        final MenuBuilder mb = menu instanceof MenuBuilder ? (MenuBuilder) menu : null;
        if (mb != null) {
        if (mb != null) {
            mb.stopDispatchingItemsChanged();
            mb.stopDispatchingItemsChanged();
@@ -518,7 +516,7 @@ public class ToolbarActionBar extends ActionBar {
            }
            }


            mClosingActionMenu = true;
            mClosingActionMenu = true;
            mToolbar.dismissPopupMenus();
            mDecorToolbar.dismissPopupMenus();
            if (mWindowCallback != null) {
            if (mWindowCallback != null) {
                mWindowCallback.onPanelClosed(Window.FEATURE_ACTION_BAR, menu);
                mWindowCallback.onPanelClosed(Window.FEATURE_ACTION_BAR, menu);
            }
            }
@@ -536,7 +534,7 @@ public class ToolbarActionBar extends ActionBar {
        @Override
        @Override
        public void onMenuModeChange(MenuBuilder menu) {
        public void onMenuModeChange(MenuBuilder menu) {
            if (mWindowCallback != null) {
            if (mWindowCallback != null) {
                if (mToolbar.isOverflowMenuShowing()) {
                if (mDecorToolbar.isOverflowMenuShowing()) {
                    mWindowCallback.onPanelClosed(Window.FEATURE_ACTION_BAR, menu);
                    mWindowCallback.onPanelClosed(Window.FEATURE_ACTION_BAR, menu);
                } else if (mWindowCallback.onPreparePanel(Window.FEATURE_OPTIONS_PANEL,
                } else if (mWindowCallback.onPreparePanel(Window.FEATURE_OPTIONS_PANEL,
                        null, menu)) {
                        null, menu)) {
+16 −0
Original line number Original line Diff line number Diff line
@@ -1341,6 +1341,22 @@ public class ActionBarView extends AbsActionBarView implements DecorToolbar {
        updateHomeAccessibility(mUpGoerFive.isEnabled());
        updateHomeAccessibility(mUpGoerFive.isEnabled());
    }
    }


    @Override
    public void setMenuCallbacks(MenuPresenter.Callback presenterCallback,
            MenuBuilder.Callback menuBuilderCallback) {
        if (mActionMenuPresenter != null) {
            mActionMenuPresenter.setCallback(presenterCallback);
        }
        if (mOptionsMenu != null) {
            mOptionsMenu.setCallback(menuBuilderCallback);
        }
    }

    @Override
    public Menu getMenu() {
        return mOptionsMenu;
    }

    static class SavedState extends BaseSavedState {
    static class SavedState extends BaseSavedState {
        int expandedMenuItemId;
        int expandedMenuItemId;
        boolean isOverflowOpen;
        boolean isOverflowOpen;
+9 −0
Original line number Original line Diff line number Diff line
@@ -27,6 +27,8 @@ import android.view.ViewGroup;
import android.view.Window;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView;
import android.widget.SpinnerAdapter;
import android.widget.SpinnerAdapter;

import com.android.internal.view.menu.MenuBuilder;
import com.android.internal.view.menu.MenuPresenter;
import com.android.internal.view.menu.MenuPresenter;


/**
/**
@@ -93,4 +95,11 @@ public interface DecorToolbar {
    void setDefaultNavigationIcon(Drawable icon);
    void setDefaultNavigationIcon(Drawable icon);
    void saveHierarchyState(SparseArray<Parcelable> toolbarStates);
    void saveHierarchyState(SparseArray<Parcelable> toolbarStates);
    void restoreHierarchyState(SparseArray<Parcelable> toolbarStates);
    void restoreHierarchyState(SparseArray<Parcelable> toolbarStates);
    void setBackgroundDrawable(Drawable d);
    int getHeight();
    void setVisibility(int visible);
    int getVisibility();
    void setMenuCallbacks(MenuPresenter.Callback presenterCallback,
            MenuBuilder.Callback menuBuilderCallback);
    Menu getMenu();
}
}
+32 −0
Original line number Original line Diff line number Diff line
@@ -657,4 +657,36 @@ public class ToolbarWidgetWrapper implements DecorToolbar {
        mToolbar.restoreHierarchyState(toolbarStates);
        mToolbar.restoreHierarchyState(toolbarStates);
    }
    }


    @Override
    public void setBackgroundDrawable(Drawable d) {
        //noinspection deprecation
        mToolbar.setBackgroundDrawable(d);
    }

    @Override
    public int getHeight() {
        return mToolbar.getHeight();
    }

    @Override
    public void setVisibility(int visible) {
        mToolbar.setVisibility(visible);
    }

    @Override
    public int getVisibility() {
        return mToolbar.getVisibility();
    }

    @Override
    public void setMenuCallbacks(MenuPresenter.Callback presenterCallback,
            MenuBuilder.Callback menuBuilderCallback) {
        mToolbar.setMenuCallbacks(presenterCallback, menuBuilderCallback);
    }

    @Override
    public Menu getMenu() {
        return mToolbar.getMenu();
    }

}
}