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

Reply via email to