[MediaWiki-commits] [Gerrit] Login the user right after they create an account - change (apps...wikipedia)

2014-02-27 Thread Yuvipanda (Code Review)
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)

2014-02-27 Thread Brion VIBBER (Code Review)
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
---