Niedzielski has uploaded a new change for review. https://gerrit.wikimedia.org/r/223467
Change subject: Add app language selection event logging ...................................................................... Add app language selection event logging For measuring the success of the new language-switching feature in the search bar as compared to the settings screen. Bug: T104804 Change-Id: Ic09066ab2c0e06abf274a0d6ddce90bb902445a7 --- A wikipedia/src/main/java/org/wikipedia/analytics/AppLanguageSelectFunnel.java M wikipedia/src/main/java/org/wikipedia/analytics/TimedFunnel.java M wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java M wikipedia/src/main/java/org/wikipedia/settings/LanguagePreferenceDialog.java M wikipedia/src/main/java/org/wikipedia/settings/SettingsUI.java 5 files changed, 79 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/67/223467/1 diff --git a/wikipedia/src/main/java/org/wikipedia/analytics/AppLanguageSelectFunnel.java b/wikipedia/src/main/java/org/wikipedia/analytics/AppLanguageSelectFunnel.java new file mode 100644 index 0000000..640ec17 --- /dev/null +++ b/wikipedia/src/main/java/org/wikipedia/analytics/AppLanguageSelectFunnel.java @@ -0,0 +1,58 @@ +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); + 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); + } +} \ No newline at end of file diff --git a/wikipedia/src/main/java/org/wikipedia/analytics/TimedFunnel.java b/wikipedia/src/main/java/org/wikipedia/analytics/TimedFunnel.java index c9d13eb..061fe6e 100644 --- a/wikipedia/src/main/java/org/wikipedia/analytics/TimedFunnel.java +++ b/wikipedia/src/main/java/org/wikipedia/analytics/TimedFunnel.java @@ -7,14 +7,14 @@ import org.json.JSONObject; import java.util.concurrent.TimeUnit; -public abstract class TimedFunnel extends Funnel { +/*package*/ abstract class TimedFunnel extends Funnel { private final long startTime; - public TimedFunnel(WikipediaApp app, String schemaName, int revision) { + /*package*/ TimedFunnel(WikipediaApp app, String schemaName, int revision) { this(app, schemaName, revision, null); } - public TimedFunnel(WikipediaApp app, String schemaName, int revision, Site site) { + /*package*/ TimedFunnel(WikipediaApp app, String schemaName, int revision, Site site) { super(app, schemaName, revision, site); startTime = System.currentTimeMillis(); } diff --git a/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java b/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java index 384a39d..de8837b 100644 --- a/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java +++ b/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java @@ -294,7 +294,7 @@ langButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - LanguagePreferenceDialog langPrefDialog = new LanguagePreferenceDialog(getActivity()); + LanguagePreferenceDialog langPrefDialog = new LanguagePreferenceDialog(getActivity(), true); langPrefDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { diff --git a/wikipedia/src/main/java/org/wikipedia/settings/LanguagePreferenceDialog.java b/wikipedia/src/main/java/org/wikipedia/settings/LanguagePreferenceDialog.java index a7722c8..5dbb244 100644 --- a/wikipedia/src/main/java/org/wikipedia/settings/LanguagePreferenceDialog.java +++ b/wikipedia/src/main/java/org/wikipedia/settings/LanguagePreferenceDialog.java @@ -18,6 +18,7 @@ import android.widget.TextView; import org.wikipedia.R; import org.wikipedia.WikipediaApp; +import org.wikipedia.analytics.AppLanguageSelectFunnel; import org.wikipedia.views.ViewUtil; import java.util.ArrayList; @@ -38,12 +39,16 @@ @NonNull private final WikipediaApp app; - public LanguagePreferenceDialog(Context context) { + @NonNull + private final AppLanguageSelectFunnel funnel; + + public LanguagePreferenceDialog(Context context, boolean initiatedFromSearchBar) { super(context); setContentView(R.layout.dialog_preference_languages); app = WikipediaApp.getInstance(); languageCodes = app.getAppMruLanguageCodes(); + funnel = new AppLanguageSelectFunnel(initiatedFromSearchBar); } @Override @@ -67,6 +72,7 @@ setSystemLanguageEnabled(isChecked); app.resetSite(); if (isChecked) { + funnel.logSelect(); dismiss(); } } @@ -79,6 +85,7 @@ if (!lang.equals(app.getAppOrSystemLanguageCode())) { app.setAppLanguageCode(lang); app.setMruLanguageCode(lang); + funnel.logSelect(); } dismiss(); } @@ -105,6 +112,14 @@ ((LanguagesAdapter) languagesList.getAdapter()).setFilterText(s.toString()); } }); + + funnel.logStart(); + } + + @Override + public void cancel() { + funnel.logCancel(); + super.cancel(); } private void setSystemLanguageEnabled(boolean enabled) { diff --git a/wikipedia/src/main/java/org/wikipedia/settings/SettingsUI.java b/wikipedia/src/main/java/org/wikipedia/settings/SettingsUI.java index c8e4019..e6ddb59 100644 --- a/wikipedia/src/main/java/org/wikipedia/settings/SettingsUI.java +++ b/wikipedia/src/main/java/org/wikipedia/settings/SettingsUI.java @@ -37,7 +37,7 @@ new ContextThemeWrapper(activity, (WikipediaApp.getInstance().isCurrentThemeLight() ? R.style.NoTitle - : R.style.NoTitleWikiDark))); + : R.style.NoTitleWikiDark)), false); langPrefDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { -- To view, visit https://gerrit.wikimedia.org/r/223467 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic09066ab2c0e06abf274a0d6ddce90bb902445a7 Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits