1package uo269509.favoritepath.ui;
3import android.os.Bundle;
4import android.view.LayoutInflater;
5import android.view.View;
6import android.view.ViewGroup;
7import android.widget.EditText;
8import android.widget.ImageView;
9import android.widget.TextView;
10import android.widget.Toast;
12import androidx.fragment.app.Fragment;
14import com.google.android.material.floatingactionbutton.FloatingActionButton;
15import com.google.android.material.navigation.NavigationView;
16import com.google.firebase.auth.FirebaseAuth;
17import com.google.firebase.firestore.DocumentReference;
18import com.google.firebase.firestore.FirebaseFirestore;
19import com.squareup.picasso.Picasso;
21import java.util.HashMap;
24import uo269509.favoritepath.R;
25import uo269509.favoritepath.modelos.User;
31 FloatingActionButton guardarBtn;
32 private FirebaseAuth mAuth;
34 DocumentReference reference;
38 TextView descripcionView;
47 public void onCreate(Bundle savedInstanceState) {
48 super.onCreate(savedInstanceState);
59 public View
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
60 View vista = inflater.inflate(R.layout.fragment_perfil, container,
false);
69 private void actualizarPerfil() {
70 guardarBtn.setOnClickListener(v -> {
71 String nuevoNombre = nombre.getText().toString().trim();
72 String nuevaDesc = descripcion.getText().toString().trim();
73 if (nuevoNombre !=
null || !nuevoNombre.isEmpty()) {
74 if (nuevaDesc == null || nuevaDesc.isEmpty())
76 Map<String, Object> updates = new HashMap<>();
77 updates.put(
"nombre", nuevoNombre);
78 updates.put(
"descripcion", nuevaDesc);
79 reference.update(updates);
80 updateNavHeader(nuevoNombre, nuevaDesc);
81 Toast.makeText(this.getContext(),
"Perfil actualizado correctamente", Toast.LENGTH_SHORT).show();
83 Toast.makeText(this.getContext(),
"Escriba un nombre válido", Toast.LENGTH_SHORT).show();
93 private void updateNavHeader(String nuevoNombre, String nuevaDesc) {
94 nombreView.setText(nuevoNombre);
95 descripcionView.setText(nuevaDesc);
101 private void updateUI() {
102 reference.get().addOnSuccessListener(documentSnapshot -> {
103 User user = documentSnapshot.toObject(User.class);
104 nombre.setText(user.getNombre());
105 descripcion.setText(user.getDescripcion());
113 mAuth = FirebaseAuth.getInstance();
114 db = FirebaseFirestore.getInstance();
115 reference = db.collection(
"usuarios").document(mAuth.getCurrentUser().getEmail());
116 perfilView = vista.findViewById(R.id.perfilImage);
117 nombre = vista.findViewById(R.id.editTextNombre);
118 descripcion = vista.findViewById(R.id.editTextDescripcion);
119 guardarBtn = vista.findViewById(R.id.perfilBtn);
120 NavigationView navigationView = getActivity().findViewById(R.id.nav_view);
121 View headerView = navigationView.getHeaderView(0);
122 navView = headerView.findViewById(R.id.imagenPerfil);
123 nombreView = headerView.findViewById(R.id.nombreUsuario);
124 descripcionView = headerView.findViewById(R.id.descripcionUsuario);
125 if(mAuth.getCurrentUser().getPhotoUrl() !=
null)
126 Picasso.get().load(mAuth.getCurrentUser().getPhotoUrl()).into(perfilView);
void onCreate(Bundle savedInstanceState)
View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)