/**
   * Crea una nueva identidad para un Fan de tokenly
   *
   * @return key con el resultado de la operacion:<br>
   *     <br>
   *     <code>CREATE_IDENTITY_SUCCESS</code>: Se creo exitosamente una identidad <br>
   *     <code>CREATE_IDENTITY_FAIL_MODULE_EXCEPTION</code>: Se genero una excepcion cuando se
   *     ejecuto el metodo para crear la identidad en el Module Manager <br>
   *     <code>CREATE_IDENTITY_FAIL_MODULE_IS_NULL</code>: No se tiene una referencia al Module
   *     Manager <br>
   *     <code>CREATE_IDENTITY_FAIL_NO_VALID_DATA</code>: Los datos ingresados para crear la
   *     identidad no son validos (faltan datos, no tiene el formato correcto, etc) <br>
   */
  private int createNewIdentity() {

    String fanExternalName = mFanExternalUserName.getText().toString();
    String fanPassword = "";
    if (!mFanExternalPassword.getText().toString().isEmpty()) {
      fanPassword = mFanExternalPassword.getText().toString();
    }
    ExternalPlatform externalPlatform = ExternalPlatform.DEFAULT_EXTERNAL_PLATFORM;
    if (mFanExternalPlatform.isSelected()) {
      externalPlatform =
          ExternalPlatform.getExternalPlatformByLabel(
              mFanExternalPlatform.getSelectedItem().toString());
    }

    boolean dataIsValid =
        validateIdentityData(fanExternalName, fanPassword, fanImageByteArray, externalPlatform);

    if (dataIsValid) {
      if (moduleManager != null) {
        try {
          if (!isUpdate)
            // moduleManager.createFanIdentity(fanExternalName,(fanImageByteArray == null) ?
            // convertImage(R.drawable.ic_profile_male) :
            // fanImageByteArray,fanPassword,externalPlatform) ;
            new ManageIdentity(
                    fanExternalName, fanPassword, externalPlatform, ManageIdentity.CREATE_IDENTITY)
                .execute();
          else if (updateProfileImage)
            // moduleManager.updateFanIdentity(fanExternalName, fanPassword,
            // identitySelected.getId(), identitySelected.getPublicKey(), fanImageByteArray,
            // externalPlatform);
            new ManageIdentity(
                    fanExternalName,
                    fanPassword,
                    externalPlatform,
                    ManageIdentity.UPDATE_IMAGE_IDENTITY)
                .execute();
          else
            // moduleManager.updateFanIdentity(fanExternalName,fanPassword,identitySelected.getId(),
            // identitySelected.getPublicKey(),
            // identitySelected.getProfileImage(),externalPlatform);
            new ManageIdentity(
                    fanExternalName, fanPassword, externalPlatform, ManageIdentity.UPDATE_IDENTITY)
                .execute();
        } /*catch (CantCreateFanIdentityException | FanIdentityAlreadyExistsException |CantUpdateFanIdentityException e) {
              errorManager.reportUnexpectedUIException(UISource.VIEW, UnexpectedUIExceptionSeverity.UNSTABLE, e);
          } */ catch (Exception e) {
          errorManager.reportUnexpectedUIException(
              UISource.VIEW, UnexpectedUIExceptionSeverity.UNSTABLE, e);
          e.printStackTrace();
        }
        return CREATE_IDENTITY_SUCCESS;
      }
      return CREATE_IDENTITY_FAIL_MODULE_IS_NULL;
    }
    return CREATE_IDENTITY_FAIL_NO_VALID_DATA;
  }