Bug 1312114 - Add VectorDrawable support to GeckoMenu r=sebastian draft
authorAndrzej Hunt <ahunt@mozilla.com>
Fri, 21 Oct 2016 14:43:06 -0700
changeset 433296 1ef542376460e0f532145d7eed668db1c879e449
parent 433295 320700cc1c6d0a075f80026d4296f7248861aaf5
child 433297 4bb14434fce255fea585072e83e3d3723a72611b
push id34532
push userahunt@mozilla.com
push dateThu, 03 Nov 2016 10:57:55 +0000
reviewerssebastian
bugs1312114
milestone52.0a1
Bug 1312114 - Add VectorDrawable support to GeckoMenu r=sebastian MozReview-Commit-ID: FDCerhozC1S
mobile/android/base/java/org/mozilla/gecko/menu/GeckoMenuItem.java
mobile/android/base/java/org/mozilla/gecko/menu/MenuItemActionBar.java
mobile/android/base/java/org/mozilla/gecko/menu/MenuItemDefault.java
--- a/mobile/android/base/java/org/mozilla/gecko/menu/GeckoMenuItem.java
+++ b/mobile/android/base/java/org/mozilla/gecko/menu/GeckoMenuItem.java
@@ -4,16 +4,17 @@
 
 package org.mozilla.gecko.menu;
 
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.widget.GeckoActionProvider;
 
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
+import android.support.v7.widget.AppCompatDrawableManager;
 import android.text.TextUtils;
 import android.view.ActionProvider;
 import android.view.ContextMenu;
 import android.view.MenuItem;
 import android.view.SubMenu;
 import android.view.View;
 
 public class GeckoMenuItem implements MenuItem {
@@ -150,17 +151,17 @@ public class GeckoMenuItem implements Me
     public int getGroupId() {
         return 0;
     }
 
     @Override
     public Drawable getIcon() {
         if (mIcon == null) {
             if (mIconRes != 0)
-                return mMenu.getResources().getDrawable(mIconRes);
+                return AppCompatDrawableManager.get().getDrawable(mMenu.getContext(), mIconRes);
             else
                 return null;
         } else {
             return mIcon;
         }
     }
 
     @Override
--- a/mobile/android/base/java/org/mozilla/gecko/menu/MenuItemActionBar.java
+++ b/mobile/android/base/java/org/mozilla/gecko/menu/MenuItemActionBar.java
@@ -4,16 +4,17 @@
 
 package org.mozilla.gecko.menu;
 
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.widget.themed.ThemedImageButton;
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.support.v7.widget.AppCompatDrawableManager;
 import android.util.AttributeSet;
 
 public class MenuItemActionBar extends ThemedImageButton
                                implements GeckoMenuItem.Layout {
     private static final String LOGTAG = "GeckoMenuItemActionBar";
 
     public MenuItemActionBar(Context context) {
         this(context, null);
@@ -43,17 +44,17 @@ public class MenuItemActionBar extends T
             setVisibility(GONE);
         } else {
             setVisibility(VISIBLE);
             setImageDrawable(icon);
         }
     }
 
     void setIcon(int icon) {
-        setIcon((icon == 0) ? null : getResources().getDrawable(icon));
+        setIcon((icon == 0) ? null : AppCompatDrawableManager.get().getDrawable(getContext(), icon));
     }
 
     void setTitle(CharSequence title) {
         // set accessibility contentDescription here
         setContentDescription(title);
     }
 
     @Override
--- a/mobile/android/base/java/org/mozilla/gecko/menu/MenuItemDefault.java
+++ b/mobile/android/base/java/org/mozilla/gecko/menu/MenuItemDefault.java
@@ -5,16 +5,17 @@
 package org.mozilla.gecko.menu;
 
 import org.mozilla.gecko.R;
 
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
+import android.support.v7.widget.AppCompatDrawableManager;
 import android.util.AttributeSet;
 import android.widget.TextView;
 
 public class MenuItemDefault extends TextView
                              implements GeckoMenuItem.Layout {
     private static final int[] STATE_MORE = new int[] { R.attr.state_more };
     private static final int[] STATE_CHECKED = new int[] { android.R.attr.state_checkable, android.R.attr.state_checked };
     private static final int[] STATE_UNCHECKED = new int[] { android.R.attr.state_checkable };
@@ -97,17 +98,17 @@ public class MenuItemDefault extends Tex
             mIcon.setBounds(sIconBounds);
             mIcon.setAlpha(isEnabled() ? 255 : 99);
         }
 
         refreshIcon();
     }
 
     void setIcon(int icon) {
-        setIcon((icon == 0) ? null : getResources().getDrawable(icon));
+        setIcon((icon == 0) ? null : AppCompatDrawableManager.get().getDrawable(getContext(), icon));
     }
 
     void setTitle(CharSequence title) {
         setText(title);
     }
 
     @Override
     public void setEnabled(boolean enabled) {