package org.wikipedia.analytics; import android.support.annotation.NonNull; import org.json.JSONObject; import org.wikipedia.WikipediaApp; import org.wikipedia.dataclient.WikiSite; import org.wikipedia.page.PageTitle; public class GalleryFunnel extends TimedFunnel { public static final int SOURCE_LEAD_IMAGE = 0; public static final int SOURCE_NON_LEAD_IMAGE = 1; public static final int SOURCE_LINK_PREVIEW = 2; public static final int SOURCE_FEED_FEATURED_IMAGE = 3; private static final String SCHEMA_NAME = "MobileWikiAppMediaGallery"; private static final int REV_ID = 12588701; private final int source; public GalleryFunnel(WikipediaApp app, WikiSite wiki, int source) { super(app, SCHEMA_NAME, REV_ID, Funnel.SAMPLE_LOG_100, wiki); this.source = source; } @Override protected JSONObject preprocessData(@NonNull JSONObject eventData) { preprocessData(eventData, "source", source); return super.preprocessData(eventData); } @NonNull @Override protected String getSessionTokenField() { return "gallerySessionToken"; } private void logGalleryAction(String action, PageTitle currentPageTitle, String currentMediaTitle) { log( "action", action, "pageTitle", currentPageTitle != null ? currentPageTitle.getDisplayText() : "FeedFeaturedImage", "imageTitle", currentMediaTitle ); } public void logGalleryOpen(PageTitle currentPageTitle, String currentMediaTitle) { logGalleryAction("open", currentPageTitle, currentMediaTitle); } public void logGalleryClose(PageTitle currentPageTitle, String currentMediaTitle) { logGalleryAction("close", currentPageTitle, currentMediaTitle); } public void logGallerySwipeLeft(PageTitle currentPageTitle, String currentMediaTitle) { logGalleryAction("swipeLeft", currentPageTitle, currentMediaTitle); } public void logGallerySwipeRight(PageTitle currentPageTitle, String currentMediaTitle) { logGalleryAction("swipeRight", currentPageTitle, currentMediaTitle); } public void logGalleryShare(PageTitle currentPageTitle, String currentMediaTitle) { logGalleryAction("share", currentPageTitle, currentMediaTitle); } public void logGallerySave(PageTitle currentPageTitle, String currentMediaTitle) { logGalleryAction("save", currentPageTitle, currentMediaTitle); } }