11package dev.wdona.burntout.shared.utils
22
3- import com.russhwolf.settings.Settings
43import dev.wdona.burntout.shared.domain.Usuario
54import kotlinx.coroutines.flow.MutableStateFlow
65import kotlinx.coroutines.flow.asStateFlow
@@ -46,8 +45,8 @@ object SettingsManager {
4645 private val KEY_ULTIMA_FECHA_CUESTIONARIO get() = " ultima_fecha_cuestionario_${_idUsuarioActualFlow .value} "
4746 private val KEY_PRIMER_CUESTIONARIO_HECHO get() = " cuestionario_inicial_hecho_${_idUsuarioActualFlow .value} "
4847
49- private val _primerCuestionarioHechoFlow = MutableStateFlow (settings.getBoolean(" cuestionario_inicial_hecho_${settings.getLong(KEY_ID_USUARIO_ACTUAL , Long .MIN_VALUE )} " , false ))
50- val primerCuestionarioHechoFlow = _primerCuestionarioHechoFlow .asStateFlow()
48+ private val _esUltimoCuestionarioHecho = MutableStateFlow (settings.getBoolean(" cuestionario_inicial_hecho_${settings.getLong(KEY_ID_USUARIO_ACTUAL , Long .MIN_VALUE )} " , false ))
49+ val esUltimoCuestionarioHecho = _esUltimoCuestionarioHecho .asStateFlow()
5150
5251 private val _cuestionarioHoyHechoFlow = MutableStateFlow (false )
5352 val cuestionarioHoyHechoFlow = _cuestionarioHoyHechoFlow .asStateFlow()
@@ -56,8 +55,9 @@ object SettingsManager {
5655 _cuestionarioHoyHechoFlow .value = checkCuestionarioHoyHecho()
5756 }
5857
59- private fun checkCuestionarioHoyHecho (): Boolean {
60- val ultimaFecha = settings.getString(KEY_ULTIMA_FECHA_CUESTIONARIO , " " )
58+ private fun checkCuestionarioHoyHecho (idUsuario : Long = _idUsuarioActualFlow .value): Boolean {
59+ val key = " ultima_fecha_cuestionario_$idUsuario "
60+ val ultimaFecha = settings.getString(key, " " )
6161 val fechaHoy = getCurrentDateString()
6262 return ultimaFecha == fechaHoy
6363 }
@@ -68,8 +68,23 @@ object SettingsManager {
6868 fun getIdOrganizacionActual (): Long = _idOrganizacionActualFlow .value
6969 fun getRolActual (): Long = _rolActualFlow .value
7070 fun getTokenUsuario (): String = _tokenUsuarioFlow .value
71- fun getPrimerCuestionarioHecho (): Boolean = _primerCuestionarioHechoFlow .value
72- fun esCuestionarioHoyHecho (): Boolean = _cuestionarioHoyHechoFlow .value
71+
72+ fun setPrimerCuestionarioHecho (primerCuestionario : Boolean ) {
73+ settings.putBoolean(KEY_PRIMER_CUESTIONARIO_HECHO , primerCuestionario)
74+ _esUltimoCuestionarioHecho .value = primerCuestionario
75+ }
76+
77+ fun getPrimerCuestionarioHecho (): Boolean {
78+ return settings.getBoolean(KEY_PRIMER_CUESTIONARIO_HECHO , false )
79+ }
80+
81+ fun esCuestionarioHoyHecho (): Boolean {
82+ val isHoyHecho = checkCuestionarioHoyHecho()
83+ if (_cuestionarioHoyHechoFlow .value != isHoyHecho) {
84+ _cuestionarioHoyHechoFlow .value = isHoyHecho
85+ }
86+ return isHoyHecho
87+ }
7388 fun getSincronizadoEnEstaApertura (): Boolean = _sincronizadoEnEstaAperturaFlow .value
7489 fun isAutenticado (): Boolean = _isAutenticadoFlow .value
7590 fun isUsuarioInvitado (): Boolean = getIdUsuarioActual() == Long .MIN_VALUE
@@ -80,11 +95,6 @@ object SettingsManager {
8095 _tokenUsuarioFlow .value = safeToken
8196 }
8297
83- fun setPrimerCuestionarioHecho (primerCuestionario : Boolean ) {
84- settings.putBoolean(KEY_PRIMER_CUESTIONARIO_HECHO , primerCuestionario)
85- _primerCuestionarioHechoFlow .value = primerCuestionario
86- }
87-
8898 fun setIdOrganizacionActual (id : Long ) {
8999 settings.putLong(KEY_ID_ORGANIZACION_ACTUAL , id)
90100 _idOrganizacionActualFlow .value = id
@@ -131,7 +141,7 @@ object SettingsManager {
131141 _idUsuarioActualFlow .value = usuario.idUsuario
132142
133143 _isAutenticadoFlow .value = true
134- _primerCuestionarioHechoFlow .value = settings.getBoolean(KEY_PRIMER_CUESTIONARIO_HECHO , false )
144+ _esUltimoCuestionarioHecho .value = settings.getBoolean(KEY_PRIMER_CUESTIONARIO_HECHO , false )
135145 _cuestionarioHoyHechoFlow .value = checkCuestionarioHoyHecho()
136146 }
137147
@@ -161,7 +171,7 @@ object SettingsManager {
161171 _tokenUsuarioFlow .value = " "
162172 _isAutenticadoFlow .value = false
163173 _sincronizadoEnEstaAperturaFlow .value = false
164- _primerCuestionarioHechoFlow .value = false
174+ _esUltimoCuestionarioHecho .value = false
165175 _cuestionarioHoyHechoFlow .value = false
166176 }
167177}
0 commit comments