package org.wikipedia.analytics; import android.support.annotation.NonNull; import android.text.TextUtils; import org.json.JSONObject; import org.wikipedia.WikipediaApp; import org.wikipedia.page.PageTitle; import org.wikipedia.search.SearchResult; import java.util.List; public class SuggestedPagesFunnel extends Funnel { private static final String SCHEMA_NAME = "MobileWikiAppArticleSuggestions"; private static final int REV_ID = 15302212; private static final int READ_MORE_SOURCE_FULL_TEXT = 0; private static final int READ_MORE_SOURCE_MORELIKE = 1; private int readMoreSource; private long latency; public SuggestedPagesFunnel(WikipediaApp app) { super(app, SCHEMA_NAME, REV_ID, Funnel.SAMPLE_LOG_100); this.readMoreSource = READ_MORE_SOURCE_MORELIKE; } @Override protected JSONObject preprocessData(@NonNull JSONObject eventData) { preprocessData(eventData, "readMoreSource", readMoreSource); return super.preprocessData(eventData); } @Override protected void preprocessSessionToken(@NonNull JSONObject eventData) { } public void setLatency(long latency) { this.latency = latency; } public void logSuggestionsShown(PageTitle currentPageTitle, List<SearchResult> suggestedTitles) { log( currentPageTitle.getWikiSite(), "action", "shown", "pageTitle", currentPageTitle.getDisplayText(), "readMoreList", TextUtils.join("|", suggestedTitles), "latency", latency ); } public void logSuggestionClicked(PageTitle currentPageTitle, List<SearchResult> suggestedTitles, int clickedIndex) { log( currentPageTitle.getWikiSite(), "action", "clicked", "pageTitle", currentPageTitle.getDisplayText(), "readMoreList", TextUtils.join("|", suggestedTitles), "readMoreIndex", clickedIndex ); } }