Bug 1321008 - Add telemetry for AS context menu bookmark/unbookmark r?sebastian draft
authorAndrzej Hunt <ahunt@mozilla.com>
Wed, 30 Nov 2016 11:11:55 -0800
changeset 446027 27756392bedafdec36bfe6274c0f1d5b1fc5f694
parent 445882 741a720c98cdb92c229376be0badbf036f653bff
child 538680 41b0cfef6a538f545b27c0f11aff0bf13bddc076
push id37673
push userahunt@mozilla.com
push dateWed, 30 Nov 2016 19:12:37 +0000
reviewerssebastian
bugs1321008
milestone53.0a1
Bug 1321008 - Add telemetry for AS context menu bookmark/unbookmark r?sebastian MozReview-Commit-ID: qf3NmSr8hl
mobile/android/base/java/org/mozilla/gecko/home/activitystream/menu/ActivityStreamContextMenu.java
--- 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;