Bug 1325303 - A-S Telemetry: track position of highlights for menu interactions r=sebastian
MozReview-Commit-ID: GXl5asf2rEq
--- 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);