From 9cc36ca1b520c06f882e84b909f3a2b75d303a06 Mon Sep 17 00:00:00 2001 From: Chris Banes Date: Mon, 23 Feb 2015 12:30:13 +0000 Subject: MenuItem, navigation and overflow icon tinting - iconTint and iconTintMode attrs for MenuItem, with associated setters. - navigationTint and navigationTintMode attrs for Toolbar with associated setters. - overlflowTint and overflowTintMode attrs for Toolbar with associated setters. BUG: 18126050 BUG: 19148351 BUG: 19305408 Change-Id: Ibd1fae7cdbc7a7c42809e52541fae5d8beb18e92 --- core/java/android/view/MenuInflater.java | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'core/java/android/view/MenuInflater.java') diff --git a/core/java/android/view/MenuInflater.java b/core/java/android/view/MenuInflater.java index 3492aa0..b49a59e 100644 --- a/core/java/android/view/MenuInflater.java +++ b/core/java/android/view/MenuInflater.java @@ -25,8 +25,11 @@ import android.annotation.MenuRes; import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; +import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; +import android.graphics.PorterDuff; +import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.Log; import android.util.Xml; @@ -334,6 +337,11 @@ public class MenuInflater { private ActionProvider itemActionProvider; + private ColorStateList itemIconTintList; + private boolean itemIconTintListSet; + private PorterDuff.Mode itemIconTintMode; + private boolean itemIconTintModeSet; + private static final int defaultGroupId = NO_ID; private static final int defaultItemId = NO_ID; private static final int defaultItemCategory = 0; @@ -424,6 +432,23 @@ public class MenuInflater { itemActionProvider = null; } + if (a.hasValueOrEmpty(com.android.internal.R.styleable.MenuItem_iconTint)) { + itemIconTintList = a.getColorStateList( + com.android.internal.R.styleable.MenuItem_iconTint); + itemIconTintListSet = true; + } else { + itemIconTintList = null; + itemIconTintListSet = false; + } + if (a.hasValueOrEmpty(com.android.internal.R.styleable.MenuItem_iconTintMode)) { + itemIconTintMode = Drawable.parseTintMode( + a.getInt(com.android.internal.R.styleable.MenuItem_iconTintMode, -1), null); + itemIconTintModeSet = true; + } else { + itemIconTintMode = null; + itemIconTintModeSet = false; + } + a.recycle(); itemAdded = false; @@ -486,6 +511,13 @@ public class MenuInflater { if (itemActionProvider != null) { item.setActionProvider(itemActionProvider); } + + if (itemIconTintListSet) { + item.setIconTintList(itemIconTintList); + } + if (itemIconTintModeSet) { + item.setIconTintMode(itemIconTintMode); + } } public MenuItem addItem() { -- cgit v1.1