@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_criar_perfil);

    perfil = MeuPerfil.getInstance();

    tvRecuperarPerfil = (TextView) findViewById(R.id.tvPossuiPerfil);
    tvRecuperarPerfil.setOnClickListener(this);

    etNome = (EditText) findViewById(R.id.etNome);
    etApelido = (EditText) findViewById(R.id.etApelido);

    progressDialog = new ProgressDialog(this);
  }
  private void cadastrarNovoPerfil() {
    String nome = etNome.getText().toString().trim();
    String apelido = etApelido.getText().toString().trim();

    if (nome.length() < 5) {
      Toast.makeText(this, "Por favor, insira o seu nome completo.", Toast.LENGTH_SHORT).show();
      return;
    }

    if (apelido.length() < 3) {
      Toast.makeText(this, "Por favor, insira um apelido.", Toast.LENGTH_SHORT).show();
      return;
    }

    perfil.setNome(nome);
    perfil.setApelido(apelido);

    progressDialog.setTitle("Criando perfil");
    progressDialog.setMessage("por favor, aguarde...");
    progressDialog.setCancelable(false);
    progressDialog.show();

    try {
      RequestQueue queue = Volley.newRequestQueue(CriarPerfilActivity.this);
      JsonObjectRequest request =
          new JsonObjectRequest(
              JsonObjectRequest.Method.POST,
              getString(R.string.app_ws_urlContato),
              perfil.getJsonObject(),
              new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject jsonObject) {
                  perfil.populate(jsonObject);
                  if (perfil.getId() > 0) {
                    perfil.salvarPerfil(CriarPerfilActivity.this);
                    intent = new Intent(CriarPerfilActivity.this, ConversasActivity.class);
                    startActivity(intent);
                    finish();
                  } else {
                    // Erro: o ws não retornou um id válido
                    Toast.makeText(
                            CriarPerfilActivity.this,
                            "Erro ao cadastrar perfil.",
                            Toast.LENGTH_SHORT)
                        .show();
                    Log.e(getString(R.string.app_name), "ID retornado: " + perfil.getId());
                  }
                  progressDialog.dismiss();
                }
              },
              new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                  Toast.makeText(
                          CriarPerfilActivity.this, "Erro ao cadastrar perfil.", Toast.LENGTH_SHORT)
                      .show();
                  Log.e(getString(R.string.app_name), volleyError.getMessage());
                  progressDialog.dismiss();
                }
              });
      queue.add(request);

    } catch (Exception ex) {
      Toast.makeText(this, "Falha ao cadastrar novo perfil. Tente novamente!", Toast.LENGTH_SHORT)
          .show();
      Log.e(getString(R.string.app_name), ex.getMessage());
      progressDialog.dismiss();
    }
  }