Brion VIBBER has submitted this change and it was merged.

Change subject: Don't crash if captcha is wrong in CreateAccount
......................................................................


Don't crash if captcha is wrong in CreateAccount

Change-Id: I233372cc13676460603a73c67fc521cacef7dc88
---
M wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
M wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountTask.java
2 files changed, 8 insertions(+), 3 deletions(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved



diff --git 
a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
 
b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
index 639c6e7..257cf22 100644
--- 
a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
+++ 
b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
@@ -83,18 +83,23 @@
 
             @Override
             public void onFinish(final CreateAccountResult result) {
+                createAccountResult = result;
                 if (result instanceof CreateAccountTokenResult) {
                     
captchaHandler.handleCaptcha(((CreateAccountTokenResult)result).getCaptchaResult());
                 } else {
                     // 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().equals("success")) {
+                    if (result.getResult().toLowerCase().equals("success")) {
                         finish();
+                    } 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.
+                        createAccountResult = null;
+                        doCreateAccount();
                     } else {
                         throw new RuntimeException("Errored with " + 
result.getResult());
                     }
                 }
-                createAccountResult = result;
             }
         }.execute();
     }
diff --git 
a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountTask.java 
b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountTask.java
index e786f0f..0023d4c 100644
--- a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountTask.java
@@ -55,7 +55,7 @@
         }
         JSONObject ca = response.asObject().optJSONObject("createaccount");
         String result = ca.optString("result");
-        if (result.equals("needtoken")) {
+        if (result.toLowerCase().equals("needtoken")) {
             String token = ca.optString("token");
             CaptchaResult captchaResult = new 
CaptchaResult(ca.optJSONObject("captcha").optString("id"));
             return new CreateAccountTokenResult(captchaResult, token);

-- 
To view, visit https://gerrit.wikimedia.org/r/114636
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I233372cc13676460603a73c67fc521cacef7dc88
Gerrit-PatchSet: 2
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Yuvipanda <yuvipa...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to