Bug 1400408 - Add telemetry for clicking on "MORE" link. r?mcomella,francois
MozReview-Commit-ID: Kp8X8dbyzN9
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/ActivityStreamTelemetry.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/ActivityStreamTelemetry.java
@@ -45,16 +45,17 @@ public class ActivityStreamTelemetry {
public final static String ITEM_REMOVE_BOOKMARK = "remove_bookmark";
public final static String ITEM_PIN = "pin";
public final static String ITEM_UNPIN = "unpin";
public final static String ITEM_COPY = "copy";
public final static String ITEM_ADD_TO_HOMESCREEN = "homescreen";
public final static String ITEM_NEW_TAB = "newtab";
public final static String ITEM_DISMISS = "dismiss";
public final static String ITEM_DELETE_HISTORY = "delete";
+ public final static String ITEM_LINK_MORE = "link_more";
public final static String INTERACTION_MENU_BUTTON = "menu_button";
public final static String INTERACTION_LONG_CLICK = "long_click";
}
/**
* A helper class used for composing an 'extras' field. It encapsulates a holder of "global"
* key/value pairs which will be present in every 'extras' constructed by this class, and a
* static builder which is aware of Activity Stream telemetry needs.
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/stream/StreamTitleRow.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/stream/StreamTitleRow.java
@@ -8,16 +8,19 @@ package org.mozilla.gecko.activitystream
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import org.mozilla.gecko.R;
+import org.mozilla.gecko.Telemetry;
+import org.mozilla.gecko.TelemetryContract;
+import org.mozilla.gecko.activitystream.ActivityStreamTelemetry;
import org.mozilla.gecko.home.HomePager;
import org.mozilla.gecko.util.DrawableUtil;
import java.util.EnumSet;
public class StreamTitleRow extends StreamViewHolder {
public static final int LAYOUT_ID = R.layout.activity_stream_main_highlightstitle;
@@ -41,16 +44,22 @@ public class StreamTitleRow extends Stre
final ImageView titleArrow = (ImageView) itemView.findViewById(R.id.arrow_link);
titleArrow.setImageDrawable(DrawableUtil.tintDrawableWithColorRes(itemView.getContext(), R.drawable.menu_item_more, R.color.ob_click));
titleArrow.setVisibility(View.VISIBLE);
final View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
onUrlOpenListener.onUrlOpen(url, EnumSet.of(HomePager.OnUrlOpenListener.Flags.ALLOW_SWITCH_TO_TAB));
+
+ ActivityStreamTelemetry.Extras.Builder extras = ActivityStreamTelemetry.Extras.builder()
+ .set(ActivityStreamTelemetry.Contract.SOURCE_TYPE, ActivityStreamTelemetry.Contract.TYPE_POCKET)
+ .set(ActivityStreamTelemetry.Contract.ITEM, ActivityStreamTelemetry.Contract.ITEM_LINK_MORE);
+
+ Telemetry.sendUIEvent(TelemetryContract.Event.ACTION, TelemetryContract.Method.BUTTON, extras.build());
}
};
titleLink.setOnClickListener(clickListener);
titleArrow.setOnClickListener(clickListener);
}
private static void hideView(final View itemView) {
--- a/mobile/android/docs/activitystreamtelemetry.rst
+++ b/mobile/android/docs/activitystreamtelemetry.rst
@@ -78,16 +78,29 @@ For "loadurl.1" event, the following ext
.. code-block:: js
extras: {
...
"count": number, /* total number of stories displayed */
}
+One event type is recorded for interaction with the Top Stories section title UI:
+1) User clicks on the "MORE" link in the Top Stories section title: event="action.1", method="button"
+
+In addition to global extras, the following information is included:
+
+.. code-block:: js
+
+ extras: {
+ ...
+ "source_type": "pocket",
+ "item": "link_more"
+ }
+
Highlight interactions
----------------------
Two event types are recorded:
1) User clicked on a Highlight: event="loadurl.1", method="listitem"
2) User clicked on the menu button: event="show.1", method="contextmenu"
For both event types, in addition to global extras, the following information is recorded: