"When you move to a new town," writes Maynard via the Submit-to-WTF Visual Studio Add-In, "you need to take jobs at less-than reputable firms to get yourself settled in. "

"I cleaned up a lot of filthy code during my time at $company_name, but I couldn't bring myself to alter a single line of this monstrosity of a method. I think my favorite part is when the 'password' and "confirm' are each checked against a regex, and only then does it check if they are the same string."

public void onClick(View v) {
    String userString = userfld.getEditableText().toString();
    String emailString = emailfld.getEditableText().toString();
    String passString = passfld.getEditableText().toString();
    String confirmString = confirmfld.getEditableText().toString();
    String secretqString = questions[selected];
    String secretaString = secretafld.getEditableText().toString();

    int error = 0;

    if (userString == null || userString.equalsIgnoreCase("")) {
        error = 1;
    } else if (emailString == null || emailString.equalsIgnoreCase("")) {
        error = 2;
    } else if (passString == null || passString.equalsIgnoreCase("")) {
        error = 3;
    } else if (confirmString == null || confirmString.equalsIgnoreCase("")) {
        error = 4;
    } else if (secretaString == null || secretaString.equalsIgnoreCase("")) {
        error = 5;
    } else if (!userString.matches("[a-zA-z0-9_]*")){
        error = 6;
    } else if (!passString.matches("[a-zA-Z0-9]*") || passString.length() < 6) {
        error = 7;
    } else if (!confirmString.matches("[a-zA-Z0-9]*")) {
        error = 8;
    } else if (!passString.equals(confirmString)) {
        error = 9;
    } else if (emailString.indexOf("@") == -1) {
        error = 10;
    } else {
        String lhsString = emailString.substring(0, emailString.indexOf("@"));
        String rhsString = emailString.substring(emailString.indexOf("@") + 1, emailString.length());
        if (lhsString.equalsIgnoreCase("")) {
            error = 10;
        } else if (rhsString.equalsIgnoreCase("")) {
            error = 10;
        }
    }
    
    if (error == 0) {
        String processRequest = String.format(ServerCommands.ADD_USER, URLEncoder.encode(userString), 
                                            URLEncoder.encode(emailString), URLEncoder.encode(secretqString),
                                            URLEncoder.encode(secretaString), StaticUtils.md5(passString));
        
        try {
            InputStream is = Networking.getStreamFromURL(processRequest);
            StringBuffer buffer = new StringBuffer();

            Reader in = new BufferedReader(new InputStreamReader(is));
            int ch;
            while ((ch = in.read()) > -1) {
                buffer.append((char)ch);
            }
            in.close();
            String result = buffer.toString();

            if (result.equalsIgnoreCase("0")) {
                StaticUtils.toaster(app, "This username has now been registered, you can login using this username now");
                this.finish();
            } else if (result.equalsIgnoreCase("1")) {
                app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "This email is already registered, please choose another email");
            } else if (result.equalsIgnoreCase("2")) {
                app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "This username is already registered, please choose another username");
            } else {
                app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "An unknown error occured.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else if (error == 1) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Username field must be filled in.");
    } else if (error == 2) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Email field must be filled in.");
    } else if (error == 3) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Password field must be filled in.");
    } else if (error == 4) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Confirm Password field must be filled in.");
    } else if (error == 5) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Secret Answer field must be filled in.");
    } else if (error == 6) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Username must only contain alphanumeric characters and _");
    } else if (error == 7) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Password must only contain alphanumeric characters, and be at least 6 characters.");
    } else if (error == 8) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Confirm Password must only contain alphanumeric characters");
    } else if (error == 9) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "Password does not match Confirm Password");
    } else if (error == 10) {
        app.displayError(SignUpScreen.this, app.getString(R.string.dialog_title_oops), "This email does not seem to be valid");
    }
}
[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!