Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/114750

Change subject: Handle user account creation errors
......................................................................

Handle user account creation errors

Change-Id: Ibdd13bafcafd38c258bd6641c71f32ed64f45f0a
---
M wikipedia/res/values/strings.xml
M wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
2 files changed, 21 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/50/114750/1

diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml
index 6899dce..5b3925a 100644
--- a/wikipedia/res/values/strings.xml
+++ b/wikipedia/res/values/strings.xml
@@ -91,4 +91,8 @@
     <string name="create_account_password_repeat_hint">Repeat password</string>
     <string name="create_account_passwords_mismatch_error">Passwords don\'t 
match</string>
     <string name="create_account_email_error">Invalid email address</string>
+    <string name="create_account_username_exists_error">Username already in 
use</string>
+    <string name="create_account_ip_throttle_error">Too many accounts created 
from this IP. Try again later.</string>
+    <string name="create_account_open_proxy_error">This IP has been blocked 
from creating accounts.</string>
+    <string name="create_account_generic_error">Could not create 
account</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 f88038d..4ec1c6d 100644
--- 
a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
+++ 
b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java
@@ -7,6 +7,7 @@
 import android.widget.*;
 import com.mobsandgeeks.saripaar.*;
 import com.mobsandgeeks.saripaar.annotation.*;
+import de.keyboardsurfer.android.widget.crouton.*;
 import org.mediawiki.api.json.*;
 import org.wikipedia.*;
 import org.wikipedia.editing.*;
@@ -90,6 +91,19 @@
         return true;
     }
 
+    public void handleError(CreateAccountResult result) {
+        String errorCode = result.getResult();
+        if (errorCode.equals("userexists")) {
+            
usernameEdit.setError(getString(R.string.create_account_username_exists_error));
+        } else if (errorCode.equals("acct_creation_throttle_hit")) {
+            Crouton.makeText(this, R.string.create_account_ip_throttle_error, 
Style.ALERT).show();
+        } else if (errorCode.equals("sorbs_create_account_reason")) {
+            Crouton.makeText(this, R.string.create_account_open_proxy_error, 
Style.ALERT).show();
+        } else {
+            Crouton.makeText(this, R.string.create_account_generic_error, 
Style.ALERT).show();
+        }
+    }
+
     public void doCreateAccount() {
         String token = null, email = null;
         if (createAccountResult != null && createAccountResult instanceof 
CreateAccountTokenResult) {
@@ -118,6 +132,8 @@
                 if (result instanceof CreateAccountTokenResult) {
                     
captchaHandler.handleCaptcha(((CreateAccountTokenResult)result).getCaptchaResult());
                 } else {
+                    progressDialog.dismiss();
+                    captchaHandler.cancelCaptcha();
                     // 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")) {
@@ -128,7 +144,7 @@
                         createAccountResult = null;
                         doCreateAccount();
                     } else {
-                        throw new RuntimeException("Errored with " + 
result.getResult());
+                        handleError(result);
                     }
                 }
             }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibdd13bafcafd38c258bd6641c71f32ed64f45f0a
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: 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