public void doSignup(
      String username, String password, String email, final LocativeNetworkingCallback callback) {
    String token = null;
    try {
      token = AeSimpleSHA1.SHA1(username + ":" + password + "%" + email);
      Log.d(Constants.LOG, "Token: " + token);
    } catch (Exception e) {
      Log.e(Constants.LOG, "Caught Exception: " + e);
    }

    mService.signup(
        username,
        password,
        email,
        token,
        new Callback<String>() {
          @Override
          public void success(String s, Response response) {
            Log.d(Constants.LOG, "Signup Success: " + s);
            callback.onSignupFinished(true, false);
          }

          @Override
          public void failure(RetrofitError error) {
            Log.d(Constants.LOG, "Signup Error: " + error);
            callback.onSignupFinished(false, error.getResponse().getStatus() == 409);
          }
        });
  }