feat(auto): surface favorite groups as Android Auto sub-folders
Favoritos now renders non-empty custom groups as grupo:<id> sub-folders (hidden when empty) with ungrouped stations left as direct leaves, reusing the existing hijos() path so the zero-groups case stays byte-identical to today's flat list.
This commit is contained in:
@@ -5,6 +5,7 @@ import 'dart:io';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:pluriwave/estado/estado_radio.dart';
|
||||
import 'package:pluriwave/modelos/emisora.dart';
|
||||
import 'package:pluriwave/modelos/grupo_favoritos.dart';
|
||||
import 'package:pluriwave/modelos/preset_ecualizador.dart';
|
||||
import 'package:pluriwave/servicios/navegacion_auto.dart';
|
||||
import 'package:pluriwave/servicios/servicio_audio.dart';
|
||||
@@ -584,6 +585,10 @@ void main() {
|
||||
fuenteAuto.ultimoTodas?.map((e) => e.uuid),
|
||||
contains('pop-auto-1'),
|
||||
);
|
||||
expect(
|
||||
fuenteAuto.ultimoGrupos?.map((g) => g.id),
|
||||
contains(GrupoFavoritos.sinAsignarId),
|
||||
);
|
||||
|
||||
await estado.toggleFavorito(emisoraFav);
|
||||
|
||||
@@ -631,15 +636,18 @@ class _FuenteEmisorasAutoEspia implements FuenteEmisorasAuto {
|
||||
List<Emisora>? ultimoFavoritos;
|
||||
List<Emisora>? ultimoMisEmisoras;
|
||||
List<Emisora>? ultimoTodas;
|
||||
List<GrupoFavoritos>? ultimoGrupos;
|
||||
|
||||
void actualizarSnapshot({
|
||||
List<Emisora>? favoritos,
|
||||
List<Emisora>? misEmisoras,
|
||||
List<Emisora>? todas,
|
||||
List<GrupoFavoritos>? grupos,
|
||||
}) {
|
||||
if (favoritos != null) ultimoFavoritos = favoritos;
|
||||
if (misEmisoras != null) ultimoMisEmisoras = misEmisoras;
|
||||
if (todas != null) ultimoTodas = todas;
|
||||
if (grupos != null) ultimoGrupos = grupos;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -651,6 +659,9 @@ class _FuenteEmisorasAutoEspia implements FuenteEmisorasAuto {
|
||||
@override
|
||||
Future<List<Emisora>> todas() async => ultimoTodas ?? const [];
|
||||
|
||||
@override
|
||||
Future<List<GrupoFavoritos>> grupos() async => ultimoGrupos ?? const [];
|
||||
|
||||
@override
|
||||
Future<Emisora?> porUuid(String uuid) async => null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user