package org.wikipedia.analytics; import android.support.annotation.NonNull; import org.json.JSONObject; import org.wikipedia.WikipediaApp; public class AppLanguageSelectFunnel extends TimedFunnel { private static final String SCHEMA_NAME = "MobileWikiAppLangSelect"; private static final int REV_ID = 12588733; private final boolean initiatedFromSearchBar; private final String previousLanguage; public AppLanguageSelectFunnel(boolean initiatedFromSearchBar) { this(initiatedFromSearchBar, WikipediaApp.getInstance().getAppOrSystemLanguageCode()); } public AppLanguageSelectFunnel(boolean initiatedFromSearchBar, String previousLanguage) { super(WikipediaApp.getInstance(), SCHEMA_NAME, REV_ID, Funnel.SAMPLE_LOG_100); this.initiatedFromSearchBar = initiatedFromSearchBar; this.previousLanguage = previousLanguage; } public void logStart() { log("start"); } public void logSelect() { logSelect(null); } public void logSelect(String newLanguage) { log("select", newLanguage); } public void logCancel() { log("cancel"); } public void log(String action) { log(action, null); } private void log(String action, String newLanguage) { log( "action", action, "newLang", newLanguage == null ? getApp().getAppOrSystemLanguageCode() : newLanguage ); } @Override protected JSONObject preprocessData(@NonNull JSONObject eventData) { preprocessData(eventData, "source", initiatedFromSearchBar ? 1 : 0); preprocessData(eventData, "oldLang", previousLanguage); return super.preprocessData(eventData); } }