Tesis 1.0.0
Loading...
Searching...
No Matches
ProfileManager.java
Go to the documentation of this file.
1package com.example.food_front.utils;
2
3import android.content.Context;
4import android.content.SharedPreferences;
5import android.util.Log;
6
7public class ProfileManager {
8 private static final String PREF_NAME = "user_info";
9 private static final String KEY_NAME = "nombre";
10 private static final String KEY_SURNAME = "apellido";
11 private static final String KEY_EMAIL = "email";
12 private static final String KEY_PHONE = "telefono";
13 private static final String KEY_PROFILE_IMAGE = "imagen_perfil_url";
14 private static final String KEY_LAST_IMAGE_UPDATE = "last_image_update";
15 private static final String KEY_ADDRESS = "direccion"; // Nueva clave para dirección
16
17 private SharedPreferences sharedPreferences;
18 private SharedPreferences.Editor editor;
19
20 public ProfileManager(Context context) {
21 sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
22 editor = sharedPreferences.edit();
23 }
24
25 // Guardar los datos del usuario
26 public void saveInfo(String name, String surname, String email, String phone) {
27 editor.putString(KEY_NAME, name);
28 editor.putString(KEY_SURNAME, surname);
29 editor.putString(KEY_EMAIL, email);
30 editor.putString(KEY_PHONE, phone);
31 editor.apply();
32 Log.d("auth", "Nombre guardado despues del login:" + name );
33 Log.d("auth", "Apellido guardado despues del login:" + surname );
34 Log.d("auth", "Email guardado despues del login:" + email );
35 Log.d("auth", "Telefono guardado despues del login:" + phone );
36 }
37
38 // Guardar los datos del usuario incluyendo la imagen de perfil
39 public void saveInfo(String name, String surname, String email, String phone, String profileImageUrl) {
40 editor.putString(KEY_NAME, name);
41 editor.putString(KEY_SURNAME, surname);
42 editor.putString(KEY_EMAIL, email);
43 editor.putString(KEY_PHONE, phone);
44 editor.putString(KEY_PROFILE_IMAGE, profileImageUrl);
45 editor.apply();
46 Log.d("auth", "Nombre guardado despues del login:" + name );
47 Log.d("auth", "Apellido guardado despues del login:" + surname );
48 Log.d("auth", "Email guardado despues del login:" + email );
49 Log.d("auth", "Telefono guardado despues del login:" + phone );
50 Log.d("auth", "URL de imagen de perfil guardada:" + profileImageUrl);
51 } // Guardar los datos del usuario incluyendo la dirección
52 public void saveInfo(String name, String surname, String email, String phone, String profileImageUrl, String address) {
53 editor.putString(KEY_NAME, name);
54 editor.putString(KEY_SURNAME, surname);
55 editor.putString(KEY_EMAIL, email);
56 editor.putString(KEY_PHONE, phone);
57 editor.putString(KEY_PROFILE_IMAGE, profileImageUrl);
58 editor.putString(KEY_ADDRESS, address);
59 editor.apply();
60 Log.d("auth", "Nombre guardado despues del login:" + name );
61 Log.d("auth", "Apellido guardado despues del login:" + surname );
62 Log.d("auth", "Email guardado despues del login:" + email );
63 Log.d("auth", "Telefono guardado despues del login:" + phone );
64 Log.d("auth", "URL de imagen de perfil guardada:" + profileImageUrl);
65 Log.d("auth", "Dirección guardada:" + address);
66 }
67
68 // Guardar solo la URL de la imagen de perfil
69 public void saveProfileImageUrl(String profileImageUrl) {
70 // Asegurarse de guardar la URL base sin parámetros de timestamp
71 String cleanUrl = profileImageUrl;
72 if (profileImageUrl != null && profileImageUrl.contains("?")) {
73 cleanUrl = profileImageUrl.substring(0, profileImageUrl.indexOf("?"));
74 }
75
76 // Verificar si realmente cambió la URL
77 String currentUrl = getProfileImageUrl();
78 if (currentUrl == null || !currentUrl.equals(cleanUrl)) {
79 Log.d("ImagenPerfil", "URL realmente cambió de: " + currentUrl + " a: " + cleanUrl);
80
81 // Guardar la nueva URL
82 editor.putString(KEY_PROFILE_IMAGE, cleanUrl);
83 updateLastImageTime(); // Actualizar el timestamp de la última modificación
84 editor.apply();
85
86 // Forzar un cambio adicional para que el sistema detecte la modificación
87 editor.putLong("last_url_change", System.currentTimeMillis());
88 editor.apply();
89
90 Log.d("auth", "URL de imagen de perfil actualizada:" + cleanUrl); // No intentamos usar el broadcast receiver desde aquí para evitar errores
91 // Se manejará la actualización directamente desde los métodos específicos en los fragmentos
92 } else {
93 Log.d("auth", "La URL de la imagen no ha cambiado, no se actualiza");
94 }
95 }
96
97 // Leer los datos del usuario
98 public String getInfo() {
99 return sharedPreferences.getString(PREF_NAME, null);
100 }
101
102 public String getName() {
103 return sharedPreferences.getString(KEY_NAME, null);
104 }
105
106 public String getSurname() {
107 return sharedPreferences.getString(KEY_SURNAME, null);
108 }
109
110 public String getEmail() {
111 return sharedPreferences.getString(KEY_EMAIL, null);
112 }
113
114 public String getPhone() {
115 return sharedPreferences.getString(KEY_PHONE, null);
116 } public String getAddress() {
117 return sharedPreferences.getString(KEY_ADDRESS, null);
118 }
119
120 public String getProfileImageUrl() {
121 String baseUrl = sharedPreferences.getString(KEY_PROFILE_IMAGE, null);
122 return baseUrl;
123 }
124 // Obtener URL con timestamp para forzar recarga
126 String baseUrl = getProfileImageUrl();
127 if (baseUrl != null && !baseUrl.isEmpty()) {
128 // Usar un timestamp aleatorio para asegurarnos de nunca usar caché
129 return baseUrl + "?nocache=" + Math.random() + "&t=" + System.currentTimeMillis();
130 }
131 return baseUrl;
132 }
133
134 // Actualizar el tiempo de la última actualización de imagen
135 public void updateLastImageTime() {
136 editor.putLong(KEY_LAST_IMAGE_UPDATE, System.currentTimeMillis());
137 editor.apply();
138 }
139
140 // Obtener el tiempo de la última actualización de imagen
141 public long getLastImageUpdate() {
142 return sharedPreferences.getLong(KEY_LAST_IMAGE_UPDATE, 0);
143 }
144
145 // Borrar la session
146 public void clearInfo() {
147 editor.clear();
148 editor.apply();
149 }
150}
void saveProfileImageUrl(String profileImageUrl)
void saveInfo(String name, String surname, String email, String phone, String profileImageUrl, String address)
void saveInfo(String name, String surname, String email, String phone)
void saveInfo(String name, String surname, String email, String phone, String profileImageUrl)