summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ActionBar.java13
-rw-r--r--core/java/android/app/Activity.java14
2 files changed, 25 insertions, 2 deletions
diff --git a/core/java/android/app/ActionBar.java b/core/java/android/app/ActionBar.java
index a217867..7acaec8 100644
--- a/core/java/android/app/ActionBar.java
+++ b/core/java/android/app/ActionBar.java
@@ -627,7 +627,18 @@ public abstract class ActionBar {
*
* @param enabled true to enable the home button, false to disable the home button.
*/
- public abstract void setHomeButtonEnabled(boolean enabled);
+ public void setHomeButtonEnabled(boolean enabled) { }
+
+ /**
+ * Returns a {@link Context} with an appropriate theme for creating views that
+ * will appear in the action bar. If you are inflating or instantiating custom views
+ * that will appear in an action bar, you should use the Context returned by this method.
+ * (This includes adapters used for list navigation mode.)
+ * This will ensure that views contrast properly against the action bar.
+ *
+ * @return A themed Context for creating views
+ */
+ public Context getThemedContext() { return null; }
/**
* Listener interface for ActionBar navigation events.
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 8d03ac7..c6c4025 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -32,6 +32,7 @@ import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
+import android.content.res.Resources.Theme;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -54,6 +55,7 @@ import android.util.AttributeSet;
import android.util.EventLog;
import android.util.Log;
import android.util.SparseArray;
+import android.util.TypedValue;
import android.view.ActionMode;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
@@ -672,6 +674,7 @@ public class Activity extends ContextThemeWrapper
/*package*/ int mConfigChangeFlags;
/*package*/ Configuration mCurrentConfig;
private SearchManager mSearchManager;
+ private MenuInflater mMenuInflater;
static final class NonConfigurationInstances {
Object activity;
@@ -3083,7 +3086,16 @@ public class Activity extends ContextThemeWrapper
* Returns a {@link MenuInflater} with this context.
*/
public MenuInflater getMenuInflater() {
- return new MenuInflater(this);
+ // Make sure that action views can get an appropriate theme.
+ if (mMenuInflater == null) {
+ initActionBar();
+ if (mActionBar != null) {
+ mMenuInflater = new MenuInflater(mActionBar.getThemedContext());
+ } else {
+ mMenuInflater = new MenuInflater(this);
+ }
+ }
+ return mMenuInflater;
}
@Override