Bug 1312467 - Add context menu support to topsites r?sebastian draft
authorAndrzej Hunt <ahunt@mozilla.com>
Tue, 25 Oct 2016 11:38:52 -0700
changeset 431766 6c9ee236a1364e93ee30015d14c5c52b498a1b73
parent 431765 024682b6fe54e40bdd8e3f480b816b31f71cc115
child 431767 ed5fb0c9a456abf5dee2e703869d50f096a65936
push id34103
push userahunt@mozilla.com
push dateMon, 31 Oct 2016 14:45:09 +0000
reviewerssebastian
bugs1312467
milestone52.0a1
Bug 1312467 - Add context menu support to topsites r?sebastian MozReview-Commit-ID: TQ4gTgRqGq
mobile/android/base/java/org/mozilla/gecko/home/activitystream/topsites/TopSitesCard.java
--- 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
@@ -14,16 +14,17 @@ import android.widget.TextView;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.activitystream.ActivityStream;
 import org.mozilla.gecko.home.HomePager;
 import org.mozilla.gecko.home.activitystream.menu.ActivityStreamContextMenu;
 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 org.mozilla.gecko.util.TouchTargetUtil;
 import org.mozilla.gecko.widget.FaviconView;
 
 import java.util.EnumSet;
 import java.util.concurrent.Future;
 
 class TopSitesCard extends RecyclerView.ViewHolder
         implements IconCallback, View.OnClickListener {
     private final FaviconView faviconView;
@@ -44,16 +45,19 @@ class TopSitesCard extends RecyclerView.
 
         title = (TextView) card.findViewById(R.id.title);
         menuButton = (ImageView) card.findViewById(R.id.menu);
 
         this.onUrlOpenListener = onUrlOpenListener;
         this.onUrlOpenInBackgroundListener = onUrlOpenInBackgroundListener;
 
         card.setOnClickListener(this);
+
+        TouchTargetUtil.ensureTargetHitArea(menuButton, card);
+        menuButton.setOnClickListener(this);
     }
 
     void bind(final TopSitesPageAdapter.TopSite topSite) {
         final String label = ActivityStream.extractLabel(topSite.url, true);
         title.setText(label);
 
         this.url = topSite.url;
 
@@ -77,11 +81,15 @@ class TopSitesCard extends RecyclerView.
         menuButton.setImageDrawable(
                 DrawableUtil.tintDrawable(menuButton.getContext(), R.drawable.menu, tintColor));
     }
 
     @Override
     public void onClick(View clickedView) {
         if (clickedView == itemView) {
             onUrlOpenListener.onUrlOpen(url, EnumSet.noneOf(HomePager.OnUrlOpenListener.Flags.class));
+        } else if (clickedView == menuButton) {
+            ActivityStreamContextMenu.show(clickedView.getContext(), title.getText().toString(), url,
+                    onUrlOpenListener, onUrlOpenInBackgroundListener,
+                    faviconView.getWidth(), faviconView.getHeight());
         }
     }
 }