[MediaWiki-commits] [Gerrit] Login the user right after they create an account - change (apps...wikipedia)
Yuvipanda has uploaded a new change for review. https://gerrit.wikimedia.org/r/115872 Change subject: Login the user right after they create an account .. Login the user right after they create an account Might need better UX - right now there's no way for us to show errors in the login process itself Change-Id: I26449e125f2398574631b63e4c3c07d012389b68 --- M wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java M wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java M wikipedia/src/main/java/org/wikipedia/login/LoginTask.java 3 files changed, 42 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/72/115872/1 diff --git a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java index 5a24d18..f37b84e 100644 --- a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java +++ b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java @@ -11,6 +11,7 @@ import org.mediawiki.api.json.*; import org.wikipedia.*; import org.wikipedia.editing.*; +import org.wikipedia.login.*; public class CreateAccountActivity extends ActionBarActivity { @Required(order=1) @@ -158,7 +159,7 @@ // Returns lowercase 'success', unlike every other API. GRR man, GRR // Replace wen https://bugzilla.wikimedia.org/show_bug.cgi?id=61663 is fixed? if (result.getResult().toLowerCase().equals(success)) { -finish(); +doLogin(); } else if (result.getResult().equals(captcha-createaccount-fail)) { // So for now we just need to do the entire set of requests again. sigh // Eventually this should be fixed to have the new captcha info come back. @@ -172,6 +173,33 @@ }.execute(); } +private void doLogin() { +final ProgressDialog dialog = new ProgressDialog(this); +dialog.setMessage(getString(R.id.create_account_logging_in)); +dialog.setIndeterminate(true); + +new LoginTask(this, app.getPrimarySite(), usernameEdit.getText().toString(), passwordEdit.getText().toString()) { +@Override +public void onBeforeExecute() { +dialog.show(); +} + +@Override +public void onFinish(String result) { +super.onFinish(result); +if (result.equals(Success)) { +dialog.dismiss(); +finish(); +} else { +// FIXME: Have better error handling here, m'kay? +// I think the only way this can fail is: too many attempts, network error. +// I wonder how we should handle either. +throw new RuntimeException(Whelp, let's fix this); +} +} +}.execute(); +} + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { diff --git a/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java index 0c79919..a10e6da 100644 --- a/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java +++ b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java @@ -95,14 +95,11 @@ @Override public void onFinish(String result) { +super.onFinish(result); progressDialog.dismiss(); if (result.equals(Success)) { Toast.makeText(LoginActivity.this, R.string.login_success_toast, Toast.LENGTH_LONG).show(); -app.getUserInfoStorage().setUser(new User(username, password)); setResult(LOG_IN_SUCCESSFUL); - -// Clear the edit tokens - clears out any anon tokens we might have had -app.getEditTokenStorage().clearAllTokens(); Utils.hideSoftKeyboard(LoginActivity.this); diff --git a/wikipedia/src/main/java/org/wikipedia/login/LoginTask.java b/wikipedia/src/main/java/org/wikipedia/login/LoginTask.java index a0132bc..308e183 100644 --- a/wikipedia/src/main/java/org/wikipedia/login/LoginTask.java +++ b/wikipedia/src/main/java/org/wikipedia/login/LoginTask.java @@ -10,15 +10,26 @@ private final String username; private final String password; private final Api api; +private final WikipediaApp app; public LoginTask(Context context, Site site, String username, String password) { super(ExecutorService.getSingleton().getExecutor(LoginTask.class, 1)); -api =
[MediaWiki-commits] [Gerrit] Login the user right after they create an account - change (apps...wikipedia)
Brion VIBBER has submitted this change and it was merged. Change subject: Login the user right after they create an account .. Login the user right after they create an account Might need better UX - right now there's no way for us to show errors in the login process itself Change-Id: I26449e125f2398574631b63e4c3c07d012389b68 --- M wikipedia/res/values/strings.xml M wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java M wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java M wikipedia/src/main/java/org/wikipedia/login/LoginTask.java 4 files changed, 43 insertions(+), 6 deletions(-) Approvals: Brion VIBBER: Verified; Looks good to me, approved diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml index 5071107..cdec656 100644 --- a/wikipedia/res/values/strings.xml +++ b/wikipedia/res/values/strings.xml @@ -114,4 +114,5 @@ string name=zero_settings_devmode_summaryDuring development this enables code execution of W0 things./string string name=edit_preview_fetching_dialog_messageFetching preview.../string string name=edit_preview_activity_titlePreview edit/string +string name=create_account_logging_inLogging in.../string /resources diff --git a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java index 5a24d18..a437cb1 100644 --- a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java +++ b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java @@ -11,6 +11,7 @@ import org.mediawiki.api.json.*; import org.wikipedia.*; import org.wikipedia.editing.*; +import org.wikipedia.login.*; public class CreateAccountActivity extends ActionBarActivity { @Required(order=1) @@ -158,7 +159,7 @@ // Returns lowercase 'success', unlike every other API. GRR man, GRR // Replace wen https://bugzilla.wikimedia.org/show_bug.cgi?id=61663 is fixed? if (result.getResult().toLowerCase().equals(success)) { -finish(); +doLogin(); } else if (result.getResult().equals(captcha-createaccount-fail)) { // So for now we just need to do the entire set of requests again. sigh // Eventually this should be fixed to have the new captcha info come back. @@ -172,6 +173,33 @@ }.execute(); } +private void doLogin() { +final ProgressDialog dialog = new ProgressDialog(this); +dialog.setMessage(getString(R.string.create_account_logging_in)); +dialog.setIndeterminate(true); + +new LoginTask(this, app.getPrimarySite(), usernameEdit.getText().toString(), passwordEdit.getText().toString()) { +@Override +public void onBeforeExecute() { +dialog.show(); +} + +@Override +public void onFinish(String result) { +super.onFinish(result); +if (result.equals(Success)) { +dialog.dismiss(); +finish(); +} else { +// FIXME: Have better error handling here, m'kay? +// I think the only way this can fail is: too many attempts, network error. +// I wonder how we should handle either. +throw new RuntimeException(Whelp, let's fix this); +} +} +}.execute(); +} + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { diff --git a/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java index 0c79919..a10e6da 100644 --- a/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java +++ b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java @@ -95,14 +95,11 @@ @Override public void onFinish(String result) { +super.onFinish(result); progressDialog.dismiss(); if (result.equals(Success)) { Toast.makeText(LoginActivity.this, R.string.login_success_toast, Toast.LENGTH_LONG).show(); -app.getUserInfoStorage().setUser(new User(username, password)); setResult(LOG_IN_SUCCESSFUL); - -// Clear the edit tokens - clears out any anon tokens we might have had -app.getEditTokenStorage().clearAllTokens(); Utils.hideSoftKeyboard(LoginActivity.this); diff --git a/wikipedia/src/main/java/org/wikipedia/login/LoginTask.java b/wikipedia/src/main/java/org/wikipedia/login/LoginTask.java index a0132bc..308e183 100644 ---