Skip to content

Commit 1a4c433

Browse files
adampAndroid (Google) Code Review
authored andcommitted
Merge "Fix bug 5396097 - menu theme consistency" into ics-mr0
2 parents 58bf986 + 538e565 commit 1a4c433

File tree

6 files changed

+22
-20
lines changed

6 files changed

+22
-20
lines changed

core/java/com/android/internal/view/menu/ActionMenuPresenter.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@
3131
import android.view.View.MeasureSpec;
3232
import android.view.ViewConfiguration;
3333
import android.view.ViewGroup;
34-
import android.view.ViewParent;
35-
import android.view.accessibility.AccessibilityEvent;
36-
import android.view.accessibility.AccessibilityNodeInfo;
3734
import android.widget.ImageButton;
3835

3936
import java.util.ArrayList;
@@ -71,8 +68,8 @@ public class ActionMenuPresenter extends BaseMenuPresenter
7168
final PopupPresenterCallback mPopupPresenterCallback = new PopupPresenterCallback();
7269
int mOpenSubMenuId;
7370

74-
public ActionMenuPresenter() {
75-
super(com.android.internal.R.layout.action_menu_layout,
71+
public ActionMenuPresenter(Context context) {
72+
super(context, com.android.internal.R.layout.action_menu_layout,
7673
com.android.internal.R.layout.action_menu_item_layout);
7774
}
7875

@@ -98,7 +95,7 @@ public void initForMenu(Context context, MenuBuilder menu) {
9895
int width = mWidthLimit;
9996
if (mReserveOverflow) {
10097
if (mOverflowButton == null) {
101-
mOverflowButton = new OverflowMenuButton(mContext);
98+
mOverflowButton = new OverflowMenuButton(mSystemContext);
10299
final int spec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
103100
mOverflowButton.measure(spec, spec);
104101
}
@@ -215,7 +212,7 @@ public void updateMenuView(boolean cleared) {
215212

216213
if (hasOverflow) {
217214
if (mOverflowButton == null) {
218-
mOverflowButton = new OverflowMenuButton(mContext);
215+
mOverflowButton = new OverflowMenuButton(mSystemContext);
219216
}
220217
ViewGroup parent = (ViewGroup) mOverflowButton.getParent();
221218
if (parent != mMenuView) {

core/java/com/android/internal/view/menu/BaseMenuPresenter.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@
2929
* be reused if possible when items change.
3030
*/
3131
public abstract class BaseMenuPresenter implements MenuPresenter {
32+
protected Context mSystemContext;
3233
protected Context mContext;
3334
protected MenuBuilder mMenu;
35+
protected LayoutInflater mSystemInflater;
3436
protected LayoutInflater mInflater;
3537
private Callback mCallback;
3638

@@ -44,10 +46,13 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
4446
/**
4547
* Construct a new BaseMenuPresenter.
4648
*
49+
* @param context Context for generating system-supplied views
4750
* @param menuLayoutRes Layout resource ID for the menu container view
4851
* @param itemLayoutRes Layout resource ID for a single item view
4952
*/
50-
public BaseMenuPresenter(int menuLayoutRes, int itemLayoutRes) {
53+
public BaseMenuPresenter(Context context, int menuLayoutRes, int itemLayoutRes) {
54+
mSystemContext = context;
55+
mSystemInflater = LayoutInflater.from(context);
5156
mMenuLayoutRes = menuLayoutRes;
5257
mItemLayoutRes = itemLayoutRes;
5358
}
@@ -62,7 +67,7 @@ public void initForMenu(Context context, MenuBuilder menu) {
6267
@Override
6368
public MenuView getMenuView(ViewGroup root) {
6469
if (mMenuView == null) {
65-
mMenuView = (MenuView) mInflater.inflate(mMenuLayoutRes, root, false);
70+
mMenuView = (MenuView) mSystemInflater.inflate(mMenuLayoutRes, root, false);
6671
mMenuView.initialize(mMenu);
6772
updateMenuView(true);
6873
}
@@ -138,7 +143,7 @@ public void setCallback(Callback cb) {
138143
* @return The new item view
139144
*/
140145
public MenuView.ItemView createItemView(ViewGroup parent) {
141-
return (MenuView.ItemView) mInflater.inflate(mItemLayoutRes, parent, false);
146+
return (MenuView.ItemView) mSystemInflater.inflate(mItemLayoutRes, parent, false);
142147
}
143148

144149
/**

core/java/com/android/internal/view/menu/IconMenuPresenter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ public class IconMenuPresenter extends BaseMenuPresenter {
4343
private static final String VIEWS_TAG = "android:menu:icon";
4444
private static final String OPEN_SUBMENU_KEY = "android:menu:icon:submenu";
4545

46-
public IconMenuPresenter() {
47-
super(com.android.internal.R.layout.icon_menu_layout,
46+
public IconMenuPresenter(Context context) {
47+
super(context, com.android.internal.R.layout.icon_menu_layout,
4848
com.android.internal.R.layout.icon_menu_item_layout);
4949
}
5050

core/java/com/android/internal/widget/ActionBarContextView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ public void onClick(View v) {
207207
});
208208

209209
final MenuBuilder menu = (MenuBuilder) mode.getMenu();
210-
mActionMenuPresenter = new ActionMenuPresenter();
210+
mActionMenuPresenter = new ActionMenuPresenter(mContext);
211211
mActionMenuPresenter.setReserveOverflow(true);
212212

213213
final LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT,

core/java/com/android/internal/widget/ActionBarView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ public void setMenu(Menu menu, MenuPresenter.Callback cb) {
373373
}
374374
}
375375
if (mActionMenuPresenter == null) {
376-
mActionMenuPresenter = new ActionMenuPresenter();
376+
mActionMenuPresenter = new ActionMenuPresenter(mContext);
377377
mActionMenuPresenter.setCallback(cb);
378378
mActionMenuPresenter.setId(com.android.internal.R.id.action_menu_presenter);
379379
mExpandedMenuPresenter = new ExpandedActionViewMenuPresenter();

policy/src/com/android/internal/policy/impl/PhoneWindow.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,8 +1084,8 @@ protected boolean initializePanelContent(PanelFeatureState st) {
10841084
}
10851085

10861086
MenuView menuView = st.isInListMode()
1087-
? st.getListMenuView(mPanelMenuPresenterCallback)
1088-
: st.getIconMenuView(mPanelMenuPresenterCallback);
1087+
? st.getListMenuView(getContext(), mPanelMenuPresenterCallback)
1088+
: st.getIconMenuView(getContext(), mPanelMenuPresenterCallback);
10891089

10901090
st.shownPanelView = (View) menuView;
10911091

@@ -3251,11 +3251,11 @@ void setMenu(MenuBuilder menu) {
32513251
}
32523252
}
32533253

3254-
MenuView getListMenuView(MenuPresenter.Callback cb) {
3254+
MenuView getListMenuView(Context context, MenuPresenter.Callback cb) {
32553255
if (menu == null) return null;
32563256

32573257
if (!isCompact) {
3258-
getIconMenuView(cb); // Need this initialized to know where our offset goes
3258+
getIconMenuView(context, cb); // Need this initialized to know where our offset goes
32593259
}
32603260

32613261
if (listMenuPresenter == null) {
@@ -3275,11 +3275,11 @@ MenuView getListMenuView(MenuPresenter.Callback cb) {
32753275
return result;
32763276
}
32773277

3278-
MenuView getIconMenuView(MenuPresenter.Callback cb) {
3278+
MenuView getIconMenuView(Context context, MenuPresenter.Callback cb) {
32793279
if (menu == null) return null;
32803280

32813281
if (iconMenuPresenter == null) {
3282-
iconMenuPresenter = new IconMenuPresenter();
3282+
iconMenuPresenter = new IconMenuPresenter(context);
32833283
iconMenuPresenter.setCallback(cb);
32843284
iconMenuPresenter.setId(com.android.internal.R.id.icon_menu_presenter);
32853285
menu.addMenuPresenter(iconMenuPresenter);

0 commit comments

Comments
 (0)