29 private EditText etNombre, etApellido, etCorreo, etTelefono, etPassword, etPassword2;
30 private Button btnRegister;
37 public View
onCreateView(LayoutInflater inflater, ViewGroup container,
38 Bundle savedInstanceState) {
40 View view = inflater.inflate(R.layout.fragment_register, container,
false);
43 etNombre = view.findViewById(R.id.etNombre);
44 etApellido = view.findViewById(R.id.etApellido);
45 etCorreo = view.findViewById(R.id.etCorreo);
46 etTelefono = view.findViewById(R.id.etTelefono);
47 etPassword = view.findViewById(R.id.etPassword);
48 etPassword2 = view.findViewById(R.id.etPassword2);
49 btnRegister = view.findViewById(R.id.btnRegister);
52 btnRegister.setOnClickListener(
new View.OnClickListener() {
54 public void onClick(View v) {
55 if (validateInputs()) {
64 private boolean validateInputs() {
66 if (etNombre.getText().toString().isEmpty() ||
67 etApellido.getText().toString().isEmpty() ||
68 etCorreo.getText().toString().isEmpty() ||
69 etTelefono.getText().toString().isEmpty() ||
70 etPassword.getText().toString().isEmpty() ||
71 etPassword2.getText().toString().isEmpty()) {
72 Toast.makeText(getActivity(),
"Por favor complete todos los campos", Toast.LENGTH_SHORT).show();
77 if (etNombre.getText().toString().length() < 3 || etApellido.getText().toString().length() < 3) {
78 Toast.makeText(getActivity(),
"El nombre y el apellido deben tener al menos 3 letras", Toast.LENGTH_SHORT).show();
83 if (!isValidEmail(etCorreo.getText().toString())) {
84 Toast.makeText(getActivity(),
"Por favor, ingrese un correo electrónico válido", Toast.LENGTH_SHORT).show();
89 String telefono = etTelefono.getText().toString();
90 if (telefono.length() < 7 || !isNumeric(telefono)) {
91 Toast.makeText(getActivity(),
"El número de teléfono debe tener al menos 7 dígitos y no debe contener letras", Toast.LENGTH_SHORT).show();
96 if (!etPassword.getText().toString().equals(etPassword2.getText().toString())) {
97 Toast.makeText(getActivity(),
"Las contraseñas no coinciden", Toast.LENGTH_SHORT).show();
102 if (!isValidPassword(etPassword.getText().toString())) {
103 Toast.makeText(getActivity(),
"La contraseña debe tener al menos 4 caracteres, una mayúscula y un número", Toast.LENGTH_SHORT).show();
110 private boolean isNumeric(String str) {
111 return str.matches(
"\\d+");
114 private boolean isValidEmail(String email) {
115 return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
118 private boolean isValidPassword(String password) {
119 return password.length() >= 4 && password.matches(
".*[A-Z].*") && password.matches(
".*[0-9].*");
122 private void registerUser() {
123 String url =
"https://backmobile1.onrender.com/appUSERS/register/";
126 JSONObject requestBody =
new JSONObject();
128 requestBody.put(
"email", etCorreo.getText().toString());
129 requestBody.put(
"password", etPassword.getText().toString());
130 requestBody.put(
"nombre", etNombre.getText().toString());
131 requestBody.put(
"apellido", etApellido.getText().toString());
132 requestBody.put(
"telefono", etTelefono.getText().toString());
133 }
catch (JSONException e) {
135 Toast.makeText(getActivity(),
"Error al crear el cuerpo de la solicitud", Toast.LENGTH_SHORT).show();
140 JsonObjectRequest jsonObjectRequest =
new JsonObjectRequest(
144 new Response.Listener<JSONObject>() {
146 public void onResponse(JSONObject response) {
148 boolean reRegistro = response.optBoolean(
"re_registro", false);
149 String nombre = response.optString(
"nombre",
"");
150 if (reRegistro && !nombre.isEmpty()) {
151 Toast.makeText(getActivity(),
"Gracias por volver a elegirnos, " + nombre +
"!", Toast.LENGTH_LONG).show();
153 Toast.makeText(getActivity(),
"Registro exitoso", Toast.LENGTH_SHORT).show();
156 SessionManager sessionManager = new SessionManager(requireContext());
157 sessionManager.saveEmail(etCorreo.getText().toString());
159 requireActivity().getSupportFragmentManager()
161 .replace(R.id.fragment_container_view, new LoginFragment())
165 new Response.ErrorListener() {
167 public void onErrorResponse(VolleyError error) {
168 String errorMessage = error.networkResponse !=
null && error.networkResponse.data !=
null
169 ?
new String(error.networkResponse.data)
170 :
"Error en el inicio de sesión";
172 if (errorMessage.contains(
"Usuario with this email already exists.") ) {
173 Toast.makeText(getContext(),
"Ya existe una cuenta con ese mail.", Toast.LENGTH_LONG).show();
175 Toast.makeText(getContext(), errorMessage, Toast.LENGTH_SHORT).show();
182 RequestQueue requestQueue = Volley.newRequestQueue(requireContext());
183 requestQueue.add(jsonObjectRequest);
186 private void replaceFragment(Fragment newFragment) {
187 FragmentManager fragmentManager = requireActivity().getSupportFragmentManager();
188 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
189 fragmentTransaction.replace(R.id.fragment_container_view, newFragment);
190 fragmentTransaction.addToBackStack(
null);
191 fragmentTransaction.commit();