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
