feat(favorites): add group persistence foundation
This commit is contained in:
@@ -10,6 +10,7 @@ import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import '../modelos/emisora.dart';
|
||||
import '../modelos/grupo_favoritos.dart';
|
||||
import '../modelos/preset_ecualizador.dart';
|
||||
import '../servicios/servicio_audio.dart';
|
||||
import '../servicios/servicio_ecualizador.dart';
|
||||
@@ -68,6 +69,7 @@ class EstadoRadio extends ChangeNotifier {
|
||||
List<Emisora> _resultadosBusqueda = [];
|
||||
List<Emisora> _emisorasCercanas = [];
|
||||
List<Emisora> _listaFavoritos = [];
|
||||
List<GrupoFavoritos> _gruposFavoritos = [];
|
||||
List<Emisora> _emisorasCustom = [];
|
||||
|
||||
// Presets EQ guardados por uuid de emisora.
|
||||
@@ -114,6 +116,7 @@ class EstadoRadio extends ChangeNotifier {
|
||||
List<Emisora> get resultadosBusqueda => _ordenarEmisoras(_resultadosBusqueda);
|
||||
List<Emisora> get emisorasCercanas => _ordenarEmisoras(_emisorasCercanas);
|
||||
List<Emisora> get listaFavoritos => _ordenarEmisoras(_listaFavoritos);
|
||||
List<GrupoFavoritos> get gruposFavoritos => List.unmodifiable(_gruposFavoritos);
|
||||
List<Emisora> get emisorasCustom => _ordenarEmisoras(_emisorasCustom);
|
||||
bool get cargandoPopulares => _cargandoPopulares;
|
||||
bool get cargandoBusqueda => _cargandoBusqueda;
|
||||
@@ -202,6 +205,7 @@ class EstadoRadio extends ChangeNotifier {
|
||||
await Future.wait([
|
||||
cargarPopulares(),
|
||||
cargarFavoritos(),
|
||||
cargarGruposFavoritos(),
|
||||
_cargarEmisorasCustom(),
|
||||
]);
|
||||
await _normalizarEmisoraPreferida();
|
||||
@@ -277,6 +281,31 @@ class EstadoRadio extends ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> cargarGruposFavoritos() async {
|
||||
_gruposFavoritos = await favoritos.obtenerGrupos();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> crearGrupoFavoritos(String nombre) async {
|
||||
await favoritos.crearGrupo(nombre);
|
||||
await cargarGruposFavoritos();
|
||||
}
|
||||
|
||||
Future<void> renombrarGrupoFavoritos(String id, String nombre) async {
|
||||
await favoritos.renombrarGrupo(id, nombre);
|
||||
await cargarGruposFavoritos();
|
||||
}
|
||||
|
||||
Future<void> eliminarGrupoFavoritos(String id) async {
|
||||
await favoritos.eliminarGrupo(id);
|
||||
await Future.wait([cargarFavoritos(), cargarGruposFavoritos()]);
|
||||
}
|
||||
|
||||
Future<void> asignarGrupoFavorito(String uuid, String grupoId) async {
|
||||
await favoritos.asignarGrupo(uuid, grupoId);
|
||||
await cargarFavoritos();
|
||||
}
|
||||
|
||||
Future<void> cambiarEmisoraPreferida(Emisora? emisora) async {
|
||||
_emisoraPreferidaUuid = emisora?.uuid;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
Reference in New Issue
Block a user