am 012e06bc: am 33d9dc46: Merge "Move all actionbar related methods to DecorToolbar" into lmp-mr1-dev
* commit '012e06bcb965c76e696ebc2e09e5eaaf97129d91': Move all actionbar related methods to DecorToolbar
This commit is contained in:
@@ -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)) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user