diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java index dd75925293c6e..df4243a4826f3 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java +++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java @@ -19,6 +19,7 @@ package com.android.internal.view.menu; import com.android.internal.view.menu.ActionMenuView.ActionMenuChildView; import android.content.Context; +import android.content.res.Configuration; import android.content.res.Resources; import android.os.Parcel; import android.os.Parcelable; @@ -109,6 +110,16 @@ public class ActionMenuPresenter extends BaseMenuPresenter { mScrapActionButtonView = null; } + public void onConfigurationChanged(Configuration newConfig) { + if (!mMaxItemsSet) { + mMaxItems = mContext.getResources().getInteger( + com.android.internal.R.integer.max_action_buttons); + if (mMenu != null) { + mMenu.onItemsChanged(true); + } + } + } + public void setWidthLimit(int width, boolean strict) { mWidthLimit = width; mStrictWidthLimit = strict; diff --git a/core/java/com/android/internal/widget/ActionBarContextView.java b/core/java/com/android/internal/widget/ActionBarContextView.java index 5645a6f5fbf89..45d38ae7333ee 100644 --- a/core/java/com/android/internal/widget/ActionBarContextView.java +++ b/core/java/com/android/internal/widget/ActionBarContextView.java @@ -25,6 +25,7 @@ import android.animation.Animator.AnimatorListener; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Context; +import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.text.TextUtils; @@ -92,6 +93,14 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi a.recycle(); } + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + if (mActionMenuPresenter != null) { + mActionMenuPresenter.onConfigurationChanged(newConfig); + } + } + public void setHeight(int height) { mContentHeight = height; } diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java index 078e08ab4b870..28181ba02823c 100644 --- a/core/java/com/android/internal/widget/ActionBarView.java +++ b/core/java/com/android/internal/widget/ActionBarView.java @@ -259,6 +259,9 @@ public class ActionBarView extends AbsActionBarView { com.android.internal.R.attr.actionBarStyle, 0); setContentHeight(a.getLayoutDimension(R.styleable.ActionBar_height, 0)); a.recycle(); + if (mActionMenuPresenter != null) { + mActionMenuPresenter.onConfigurationChanged(newConfig); + } } @Override diff --git a/core/res/res/values-port/dimens.xml b/core/res/res/values-w360dp/dimens.xml similarity index 94% rename from core/res/res/values-port/dimens.xml rename to core/res/res/values-w360dp/dimens.xml index bf0a3426aff76..0f5d656848e35 100644 --- a/core/res/res/values-port/dimens.xml +++ b/core/res/res/values-w360dp/dimens.xml @@ -20,5 +20,5 @@ - 2 + 3 diff --git a/core/res/res/values-w500dp/dimens.xml b/core/res/res/values-w500dp/dimens.xml new file mode 100644 index 0000000000000..68841ca6e0a36 --- /dev/null +++ b/core/res/res/values-w500dp/dimens.xml @@ -0,0 +1,24 @@ + + + + + 4 + diff --git a/core/res/res/values-w600dp/dimens.xml b/core/res/res/values-w600dp/dimens.xml new file mode 100644 index 0000000000000..83c45b51db8c1 --- /dev/null +++ b/core/res/res/values-w600dp/dimens.xml @@ -0,0 +1,24 @@ + + + + + 5 + diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index 83e869395358b..c522c1e900277 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -28,7 +28,7 @@ - 3 + 2 64dip 25dip