Bug 1323105 - Upgrade topsites, AS topsites, and AS contextmenu to VectorDrawable pin r=sebastian
authorAndrzej Hunt <ahunt@mozilla.com>
Wed, 01 Feb 2017 14:43:03 -0800
changeset 469911 78f40cf59c5dcd7822d63e17fa519513499e5755
parent 469910 2cffde8625913eee9fe271de5034d25ee3dc7337
child 469912 1a813d8f06dcb6a1e0b617ceed54bba3cc9b4a88
push id43881
push userbmo:gps@mozilla.com
push dateThu, 02 Feb 2017 23:49:03 +0000
reviewerssebastian
bugs1323105
milestone54.0a1
Bug 1323105 - Upgrade topsites, AS topsites, and AS contextmenu to VectorDrawable pin r=sebastian MozReview-Commit-ID: Dpot8wrYFZI
mobile/android/base/java/org/mozilla/gecko/home/TopSitesGridItemView.java
mobile/android/base/java/org/mozilla/gecko/home/activitystream/topsites/TopSitesCard.java
mobile/android/base/resources/menu/activitystream_contextmenu.xml
--- a/mobile/android/base/java/org/mozilla/gecko/home/TopSitesGridItemView.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/TopSitesGridItemView.java
@@ -2,29 +2,31 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.home;
 
 import android.content.Context;
 import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
 import android.support.v4.widget.TextViewCompat;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.widget.ImageView.ScaleType;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.db.BrowserContract.TopSites;
 import org.mozilla.gecko.icons.IconCallback;
 import org.mozilla.gecko.icons.IconResponse;
 import org.mozilla.gecko.icons.Icons;
+import org.mozilla.gecko.util.DrawableUtil;
 
 import java.util.concurrent.Future;
 
 /**
  * A view that displays the thumbnail and the title/url for a top/pinned site.
  * If the title/url is longer than the width of the view, they are faded out.
  * If there is no valid url, a default string is shown at 50% opacity.
  * This is denoted by the empty state.
@@ -272,18 +274,23 @@ public class TopSitesGridItemView extend
     private boolean updateType(int type) {
         if (mType == type) {
             return false;
         }
 
         mType = type;
         refreshDrawableState();
 
-        int pinResourceId = (type == TopSites.TYPE_PINNED ? R.drawable.pin : 0);
-        TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(mTitleView, pinResourceId, 0, 0, 0);
+        final Drawable pinDrawable;
+        if (type == TopSites.TYPE_PINNED) {
+            pinDrawable = DrawableUtil.tintDrawable(getContext(), R.drawable.as_pin, getResources().getColor(R.color.placeholder_grey));
+        } else {
+            pinDrawable = null;
+        }
+        TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(mTitleView, pinDrawable, null, null, null);
 
         return true;
     }
 
     /**
      * Update the title shown by this view. If both title and url
      * are empty, mark the state as STATE_EMPTY and show a default text.
      */
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/topsites/TopSitesCard.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/topsites/TopSitesCard.java
@@ -1,15 +1,16 @@
 /* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 package org.mozilla.gecko.home.activitystream.topsites;
 
 import android.graphics.Color;
+import android.graphics.drawable.Drawable;
 import android.support.v4.widget.TextViewCompat;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.TextView;
 
 import org.mozilla.gecko.R;
@@ -98,18 +99,24 @@ import java.util.concurrent.Future;
         }
 
         ongoingIconLoad = Icons.with(itemView.getContext())
                 .pageUrl(topSite.getUrl())
                 .skipNetwork()
                 .build()
                 .execute(this);
 
-        final int pinResourceId = (topSite.isPinned() ? R.drawable.pin : 0);
-        TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(title, pinResourceId, 0, 0, 0);
+        final Drawable pinDrawable;
+        if (topSite.isPinned()) {
+            pinDrawable = DrawableUtil.tintDrawable(itemView.getContext(), R.drawable.as_pin, itemView.getResources().getColor(R.color.placeholder_grey));
+        } else {
+            pinDrawable = null;
+        }
+        TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(title, pinDrawable, null, null, null);
+
     }
 
     @Override
     public void onIconResponse(IconResponse response) {
         faviconView.updateImage(response);
 
         final int tintColor = !response.hasColor() || response.getColor() == Color.WHITE ? Color.LTGRAY : Color.WHITE;
 
--- a/mobile/android/base/resources/menu/activitystream_contextmenu.xml
+++ b/mobile/android/base/resources/menu/activitystream_contextmenu.xml
@@ -35,16 +35,16 @@
             android:icon="@drawable/as_share"
             android:title="@string/share"/>
         <item
             android:id="@+id/copy_url"
             android:icon="@drawable/as_copy"
             android:title="@string/contextmenu_copyurl"/>
         <item
             android:id="@+id/pin"
-            android:icon="@drawable/pin"
+            android:icon="@drawable/as_pin"
             android:title="@string/contextmenu_top_sites_pin"/>
         <item
             android:id="@+id/add_homescreen"
             android:icon="@drawable/as_home"
             android:title="@string/contextmenu_add_to_launcher"/>
     </group>
 </menu>
\ No newline at end of file