am 5ba742a3: Merge "Fix leak for MenuInflater + setSupportActionBar" into lmp-mr1-ub-dev
* commit '5ba742a37d06a0961f20e41c18cc6f8f4d5fd514':
Fix leak for MenuInflater + setSupportActionBar
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java
index 562086e..1c5f98e 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java
@@ -42,7 +42,7 @@
final AppCompatCallback mAppCompatCallback;
ActionBar mActionBar;
- private MenuInflater mMenuInflater;
+ MenuInflater mMenuInflater;
// true if this activity has an action bar.
boolean mHasActionBar;
@@ -92,14 +92,13 @@
return mActionBar;
}
- final void setSupportActionBar(ActionBar actionBar) {
- mActionBar = actionBar;
- }
-
@Override
public MenuInflater getMenuInflater() {
+ // Make sure that action views can get an appropriate theme.
if (mMenuInflater == null) {
- mMenuInflater = new SupportMenuInflater(getActionBarThemedContext());
+ initWindowDecorActionBar();
+ mMenuInflater = new SupportMenuInflater(
+ mActionBar != null ? mActionBar.getThemedContext() : mContext);
}
return mMenuInflater;
}
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV7.java b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV7.java
index 41ec1bb..ebb00cc 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV7.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV7.java
@@ -197,10 +197,12 @@
"by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set " +
"windowActionBar to false in your theme to use a Toolbar instead.");
}
+ // Clear out the MenuInflater to make sure that it is valid for the new Action Bar
+ mMenuInflater = null;
ToolbarActionBar tbab = new ToolbarActionBar(toolbar, ((Activity) mContext).getTitle(),
mAppCompatWindowCallback);
- setSupportActionBar(tbab);
+ mActionBar = tbab;
mWindow.setCallback(tbab.getWrappedWindowCallback());
tbab.invalidateOptionsMenu();
}