Bug 1321008 - Add telemetry for AS context menu bookmark/unbookmark r?sebastian
MozReview-Commit-ID: qf3NmSr8hl
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/menu/ActivityStreamContextMenu.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/menu/ActivityStreamContextMenu.java
@@ -15,16 +15,17 @@ import android.view.View;
import org.mozilla.gecko.GeckoAppShell;
import org.mozilla.gecko.IntentHelper;
import org.mozilla.gecko.R;
import org.mozilla.gecko.Telemetry;
import org.mozilla.gecko.TelemetryContract;
import org.mozilla.gecko.annotation.RobocopTarget;
import org.mozilla.gecko.db.BrowserDB;
import org.mozilla.gecko.home.HomePager;
+import org.mozilla.gecko.reader.SavedReaderViewHelper;
import org.mozilla.gecko.util.Clipboard;
import org.mozilla.gecko.util.HardwareUtils;
import org.mozilla.gecko.util.ThreadUtils;
import org.mozilla.gecko.util.UIAsyncTask;
import java.util.EnumSet;
@RobocopTarget
@@ -148,22 +149,41 @@ public abstract class ActivityStreamCont
break;
case R.id.bookmark:
ThreadUtils.postToBackgroundThread(new Runnable() {
@Override
public void run() {
final BrowserDB db = BrowserDB.from(context);
+ final TelemetryContract.Event telemetryEvent;
+ final String telemetryExtra;
if (isAlreadyBookmarked) {
db.removeBookmarksWithURL(context.getContentResolver(), url);
+
+ SavedReaderViewHelper rch = SavedReaderViewHelper.getSavedReaderViewHelper(context);
+ final boolean isReaderViewPage = rch.isURLCached(url);
+
+ telemetryEvent = TelemetryContract.Event.UNSAVE;
+
+ if (isReaderViewPage) {
+ telemetryExtra = "as_bookmark_reader";
+ } else {
+ telemetryExtra = "as_bookmark";
+ }
} else {
+ // We only store raw URLs in history (and bookmarks), hence we won't ever show about:reader
+ // URLs in AS topsites or highlights. Therefore we don't need to do any special about:reader handling here.
db.addBookmark(context.getContentResolver(), title, url);
+
+ telemetryEvent = TelemetryContract.Event.SAVE;
+ telemetryExtra = "as_bookmark";
}
+ Telemetry.sendUIEvent(telemetryEvent, TelemetryContract.Method.CONTEXT_MENU, telemetryExtra);
}
});
break;
case R.id.copy_url:
Clipboard.setText(url);
break;