Bug 1325303 - A-S Telemetry: track position of highlights for menu interactions r=sebastian draft
authorGrigory Kruglov <gkruglov@mozilla.com>
Thu, 26 Jan 2017 23:14:08 -0800
changeset 467477 9aa7ee95ed9fe563e31a276b6c0438faa72e9918
parent 467476 93d70efb5410f8af8f977fa2310f8d0c55d16bd0
child 467478 4f6718e01d50b4e13b28366d26e206f6c65b7d7a
push id43172
push usergkruglov@mozilla.com
push dateFri, 27 Jan 2017 20:17:25 +0000
reviewerssebastian
bugs1325303
milestone54.0a1
Bug 1325303 - A-S Telemetry: track position of highlights for menu interactions r=sebastian MozReview-Commit-ID: GXl5asf2rEq
mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamRecyclerAdapter.java
mobile/android/base/java/org/mozilla/gecko/home/activitystream/stream/HighlightItem.java
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamRecyclerAdapter.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamRecyclerAdapter.java
@@ -98,17 +98,17 @@ public class StreamRecyclerAdapter exten
     @Override
     public void onBindViewHolder(StreamItem holder, int position) {
         int type = getItemViewType(position);
 
         if (type == HighlightItem.LAYOUT_ID) {
             final int cursorPosition = translatePositionToCursor(position);
 
             highlightsCursor.moveToPosition(cursorPosition);
-            ((HighlightItem) holder).bind(highlightsCursor, tilesWidth,  tilesHeight);
+            ((HighlightItem) holder).bind(highlightsCursor, cursorPosition, tilesWidth,  tilesHeight);
         } else if (type == TopPanel.LAYOUT_ID) {
             ((TopPanel) holder).bind(topSitesCursor, tiles, tilesWidth, tilesHeight);
         }
     }
 
     @Override
     public void onItemClicked(RecyclerView recyclerView, int position, View v) {
         if (getItemViewType(position) != HighlightItem.LAYOUT_ID) {
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/stream/HighlightItem.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/stream/HighlightItem.java
@@ -35,16 +35,17 @@ import java.util.concurrent.Future;
 import static org.mozilla.gecko.activitystream.ActivityStream.extractLabel;
 
 public class HighlightItem extends StreamItem implements IconCallback {
     private static final String LOGTAG = "GeckoHighlightItem";
 
     public static final int LAYOUT_ID = R.layout.activity_stream_card_history_item;
 
     private Highlight highlight;
+    private int position;
 
     private final FaviconView vIconView;
     private final TextView vLabel;
     private final TextView vTimeSince;
     private final TextView vSourceView;
     private final TextView vPageView;
     private final ImageView vSourceIconView;
 
@@ -72,16 +73,17 @@ public class HighlightItem extends Strea
 
         TouchTargetUtil.ensureTargetHitArea(menuButton, itemView);
 
         menuButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 ActivityStreamTelemetry.Extras.Builder extras = ActivityStreamTelemetry.Extras.builder()
                         .set(ActivityStreamTelemetry.Contract.SOURCE_TYPE, ActivityStreamTelemetry.Contract.TYPE_HIGHLIGHTS)
+                        .set(ActivityStreamTelemetry.Contract.ACTION_POSITION, position)
                         .forHighlightSource(highlight.getSource());
 
                 ActivityStreamContextMenu.show(v.getContext(),
                         menuButton,
                         extras,
                         ActivityStreamContextMenu.MenuMode.HIGHLIGHT,
                         highlight,
                         onUrlOpenListener, onUrlOpenInBackgroundListener,
@@ -93,18 +95,19 @@ public class HighlightItem extends Strea
                         extras.build()
                 );
             }
         });
 
         ViewUtil.enableTouchRipple(menuButton);
     }
 
-    public void bind(Cursor cursor, int tilesWidth, int tilesHeight) {
-        highlight = Highlight.fromCursor(cursor);
+    public void bind(Cursor cursor, int position, int tilesWidth, int tilesHeight) {
+        this.highlight = Highlight.fromCursor(cursor);
+        this.position = position;
 
         vLabel.setText(highlight.getTitle());
         vTimeSince.setText(highlight.getRelativeTimeSpan());
 
         ViewGroup.LayoutParams layoutParams = vIconView.getLayoutParams();
         layoutParams.width = tilesWidth - tilesMargin;
         layoutParams.height = tilesHeight;
         vIconView.setLayoutParams(layoutParams);