jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/394344 )

Change subject: Event logging for Randomizer.
......................................................................


Event logging for Randomizer.

This implements the new schema developed at:
https://meta.wikimedia.org/wiki/Schema:MobileWikiAppRandomizer

Change-Id: I61e1588ad0183389787e30955f62848db85e05b5
---
A app/src/main/java/org/wikipedia/analytics/RandomizerFunnel.java
M app/src/main/java/org/wikipedia/random/RandomFragment.java
2 files changed, 84 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  Cooltey: Looks good to me, approved



diff --git a/app/src/main/java/org/wikipedia/analytics/RandomizerFunnel.java 
b/app/src/main/java/org/wikipedia/analytics/RandomizerFunnel.java
new file mode 100644
index 0000000..e74441c
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/analytics/RandomizerFunnel.java
@@ -0,0 +1,51 @@
+package org.wikipedia.analytics;
+
+import android.support.annotation.NonNull;
+
+import org.json.JSONObject;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.dataclient.WikiSite;
+
+public class RandomizerFunnel extends TimedFunnel {
+    private static final String SCHEMA_NAME = "MobileWikiAppRandomizer";
+    private static final int REV_ID = 17490463;
+
+    private final int source;
+    private int numSwipesForward;
+    private int numSwipesBack;
+    private int numClicksForward;
+    private int numClicksBack;
+
+    public RandomizerFunnel(WikipediaApp app, WikiSite wiki, int source) {
+        super(app, SCHEMA_NAME, REV_ID, Funnel.SAMPLE_LOG_ALL, wiki);
+        this.source = source;
+    }
+
+    @Override protected void preprocessSessionToken(@NonNull JSONObject 
eventData) { }
+
+    public void swipedForward() {
+        numSwipesForward++;
+    }
+
+    public void swipedBack() {
+        numSwipesBack++;
+    }
+
+    public void clickedForward() {
+        numClicksForward++;
+    }
+
+    public void clickedBack() {
+        numClicksBack++;
+    }
+
+    public void done() {
+        log(
+                "source", source,
+                "fingerSwipesForward", numSwipesForward,
+                "fingerSwipesBack", numSwipesBack,
+                "diceClicks", numClicksForward,
+                "backClicks", numClicksBack
+        );
+    }
+}
diff --git a/app/src/main/java/org/wikipedia/random/RandomFragment.java 
b/app/src/main/java/org/wikipedia/random/RandomFragment.java
index cca8bc6..adaba1c 100644
--- a/app/src/main/java/org/wikipedia/random/RandomFragment.java
+++ b/app/src/main/java/org/wikipedia/random/RandomFragment.java
@@ -15,6 +15,8 @@
 import android.widget.ImageView;
 
 import org.wikipedia.R;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.analytics.RandomizerFunnel;
 import org.wikipedia.concurrency.CallbackTask;
 import org.wikipedia.history.HistoryEntry;
 import org.wikipedia.page.ExclusiveBottomSheetPresenter;
@@ -42,6 +44,7 @@
     private ExclusiveBottomSheetPresenter bottomSheetPresenter = new 
ExclusiveBottomSheetPresenter();
     private boolean saveButtonState;
     private ViewPagerListener viewPagerListener = new ViewPagerListener();
+    @Nullable private RandomizerFunnel funnel;
 
     @NonNull
     public static RandomFragment newInstance() {
@@ -62,6 +65,9 @@
         randomPager.addOnPageChangeListener(viewPagerListener);
 
         updateBackButton(0);
+
+        funnel = new RandomizerFunnel(WikipediaApp.getInstance(), 
WikipediaApp.getInstance().getWikiSite(),
+                
getActivity().getIntent().getIntExtra(RandomActivity.INVOKE_SOURCE_EXTRA, 0));
         return view;
     }
 
@@ -70,16 +76,27 @@
         randomPager.removeOnPageChangeListener(viewPagerListener);
         unbinder.unbind();
         unbinder = null;
+        if (funnel != null) {
+            funnel.done();
+        }
         super.onDestroyView();
     }
 
     @OnClick(R.id.random_next_button) void onNextClick() {
+        viewPagerListener.setNextPageSelectedAutomatic();
         randomPager.setCurrentItem(randomPager.getCurrentItem() + 1, true);
+        if (funnel != null) {
+            funnel.clickedForward();
+        }
     }
 
     @OnClick(R.id.random_back_button) void onBacklick() {
+        viewPagerListener.setNextPageSelectedAutomatic();
         if (randomPager.getCurrentItem() > 0) {
             randomPager.setCurrentItem(randomPager.getCurrentItem() - 1, true);
+            if (funnel != null) {
+                funnel.clickedBack();
+            }
         }
     }
 
@@ -196,6 +213,13 @@
     }
 
     private class ViewPagerListener implements ViewPager.OnPageChangeListener {
+        private int prevPosition;
+        private boolean nextPageSelectedAutomatic;
+
+        void setNextPageSelectedAutomatic() {
+            nextPageSelectedAutomatic = true;
+        }
+
         @Override
         public void onPageScrolled(int position, float positionOffset, int 
positionOffsetPixels) {
         }
@@ -207,6 +231,15 @@
             if (title != null) {
                 updateSaveShareButton(title);
             }
+            if (!nextPageSelectedAutomatic && funnel != null) {
+                if (position > prevPosition) {
+                    funnel.swipedForward();
+                } else if (position < prevPosition) {
+                    funnel.swipedBack();
+                }
+            }
+            nextPageSelectedAutomatic = false;
+            prevPosition = position;
         }
 
         @Override

-- 
To view, visit https://gerrit.wikimedia.org/r/394344
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I61e1588ad0183389787e30955f62848db85e05b5
Gerrit-PatchSet: 3
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Cooltey <[email protected]>
Gerrit-Reviewer: Sharvaniharan <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to