package org.wikipedia.analytics;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.json.JSONObject;
import org.wikipedia.WikipediaApp;
/**
* Schema: https://meta.wikimedia.org/wiki/Schema:MobileWikiAppLogin
*/
public class LoginFunnel extends Funnel {
private static final String SCHEMA_NAME = "MobileWikiAppLogin";
private static final int REVISION = 9135390;
public static final String SOURCE_NAV = "navigation";
public static final String SOURCE_EDIT = "edit";
public static final String SOURCE_BLOCKED = "blocked";
public static final String SOURCE_SYSTEM = "system";
public LoginFunnel(WikipediaApp app) {
super(app, SCHEMA_NAME, REVISION);
}
@Nullable
@Override
public String getSessionToken() {
return super.getSessionToken();
}
public void logStart(String source) {
logStart(source, null);
}
public void logStart(String source, String editSessionToken) {
log(
"action", "start",
"source", source,
"editSessionToken", editSessionToken
);
}
public void logCreateAccountAttempt() {
log(
"action", "createAccountAttempt"
);
}
public void logCreateAccountFailure() {
log(
"action", "createAccountFailure"
);
}
public void logCreateAccountSuccess() {
log(
"action", "createAccountSuccess"
);
}
public void logError(String code) {
log(
"action", "error",
"errorText", code
);
}
public void logSuccess() {
log(
"action", "success"
);
}
@Override protected void preprocessAppInstallID(@NonNull JSONObject eventData) { }
@NonNull
@Override
protected String getSessionTokenField() {
return "loginSessionToken";
}
}