fix(grabaciones): wire the recordings library into Settings navigation
WU15 shipped PantallaGrabaciones (the recordings library: storage bar, recording rows, the "..." Rename/Share/Delete menu) fully tested but reachable from nowhere in the app - a gap flagged in WU15's own apply-progress notes, not fixed there since it needed a design decision rather than a guess. Coordinator ruling applied: the approved mockup's "Ajustes > Grabaciones" screen depicts the library, not the folder/size settings form. So the GRABACIONES Y MUSICA group's "Grabaciones" row in pantalla_ajustes.dart now opens PantallaGrabaciones instead of PantallaAjustesGrabaciones. The settings form is not dropped - it stays reachable, now from within the library via a settings icon in its PluriPushScaffold actions, matching the existing pantalla_ajustes_timer_sueno.dart "Add" action precedent for a real capability living in the header. One new ARB key (en/es only, per precedent): recordingsLibrarySettingsTooltip. Tests: 604 -> 605 (one scenario re-targeted in pantalla_ajustes_test.dart, one new scenario in pantalla_grabaciones_test.dart, which needed the same ListTile-ink-assertion suppression helper WU3a/WU3b established since it now pushes a ListTile-bearing settings screen). flutter analyze unchanged at 1 pre-existing info. Recorded in tasks.md as WU15b - not part of the original 18-unit plan, added here to close the gap WU15 flagged.
This commit is contained in:
@@ -231,6 +231,7 @@
|
||||
"recordingRenameEmptyError": "Enter a name",
|
||||
"recordingDeleteConfirmTitle": "Delete recording?",
|
||||
"recordingDeleteConfirmMessage": "This can't be undone.",
|
||||
"recordingsLibrarySettingsTooltip": "Recording settings",
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
|
||||
@@ -231,6 +231,7 @@
|
||||
"recordingRenameEmptyError": "Ingresá un nombre",
|
||||
"recordingDeleteConfirmTitle": "¿Eliminar grabación?",
|
||||
"recordingDeleteConfirmMessage": "Esta acción no se puede deshacer.",
|
||||
"recordingsLibrarySettingsTooltip": "Ajustes de grabación",
|
||||
"stationOrderTitle": "Orden de emisoras",
|
||||
"stationOrderByName": "Por nombre",
|
||||
"stationOrderByQuality": "Por calidad",
|
||||
|
||||
@@ -868,6 +868,12 @@ abstract class AppLocalizations {
|
||||
/// **'Esta acción no se puede deshacer.'**
|
||||
String get recordingDeleteConfirmMessage;
|
||||
|
||||
/// No description provided for @recordingsLibrarySettingsTooltip.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Ajustes de grabación'**
|
||||
String get recordingsLibrarySettingsTooltip;
|
||||
|
||||
/// No description provided for @stationOrderTitle.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
|
||||
@@ -435,6 +435,9 @@ class AppLocalizationsAr extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'ترتيب المحطات';
|
||||
|
||||
|
||||
@@ -438,6 +438,9 @@ class AppLocalizationsBn extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'স্টেশনের ক্রম';
|
||||
|
||||
|
||||
@@ -441,6 +441,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Senderreihenfolge';
|
||||
|
||||
|
||||
@@ -435,6 +435,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get recordingDeleteConfirmMessage => 'This can\'t be undone.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Recording settings';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
|
||||
@@ -439,6 +439,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Orden de emisoras';
|
||||
|
||||
|
||||
@@ -443,6 +443,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Ordre des stations';
|
||||
|
||||
|
||||
@@ -436,6 +436,9 @@ class AppLocalizationsHi extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'स्टेशन क्रम';
|
||||
|
||||
|
||||
@@ -437,6 +437,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Urutan stasiun';
|
||||
|
||||
|
||||
@@ -439,6 +439,9 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Ordine emittenti';
|
||||
|
||||
|
||||
@@ -426,6 +426,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => '局の並び順';
|
||||
|
||||
|
||||
@@ -438,6 +438,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Ordem das estações';
|
||||
|
||||
|
||||
@@ -439,6 +439,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Порядок станций';
|
||||
|
||||
|
||||
@@ -424,6 +424,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
String get recordingDeleteConfirmMessage =>
|
||||
'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => '电台排序';
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import 'ajustes/pantalla_ajustes_backup.dart';
|
||||
import 'ajustes/pantalla_ajustes_ecualizador.dart';
|
||||
import 'ajustes/pantalla_ajustes_emisora_preferida.dart';
|
||||
import 'ajustes/pantalla_ajustes_emisoras_personalizadas.dart';
|
||||
import 'ajustes/pantalla_ajustes_grabaciones.dart';
|
||||
import 'ajustes/pantalla_ajustes_grupos_favoritos.dart';
|
||||
import 'ajustes/pantalla_ajustes_idioma.dart';
|
||||
import 'ajustes/pantalla_ajustes_info.dart';
|
||||
@@ -18,6 +17,7 @@ import 'ajustes/pantalla_ajustes_orden_listas.dart';
|
||||
import 'ajustes/pantalla_ajustes_salida_audio.dart';
|
||||
import 'ajustes/pantalla_ajustes_timer_sueno.dart';
|
||||
import 'ajustes/widgets/fila_ajuste.dart';
|
||||
import 'pantalla_grabaciones.dart';
|
||||
|
||||
class PantallaAjustes extends StatelessWidget {
|
||||
const PantallaAjustes({super.key});
|
||||
@@ -142,10 +142,15 @@ class _AjustesContent extends StatelessWidget {
|
||||
FilaAjuste(
|
||||
icon: Icons.radio_button_checked_rounded,
|
||||
titulo: l10n.recordingsSectionTitle,
|
||||
// WU15b: this row opens the recordings LIBRARY
|
||||
// (PantallaGrabaciones), matching the approved mockup's
|
||||
// "Ajustes > Grabaciones" screen. The folder/size settings
|
||||
// form (PantallaAjustesGrabaciones) is still reachable, but
|
||||
// now from within the library via its own settings action.
|
||||
onTap:
|
||||
() => PluriPushScaffold.push(
|
||||
context,
|
||||
(_) => const PantallaAjustesGrabaciones(),
|
||||
(_) => const PantallaGrabaciones(),
|
||||
),
|
||||
),
|
||||
FilaAjuste(
|
||||
|
||||
@@ -13,6 +13,7 @@ import '../widgets/pluri_icon.dart';
|
||||
import '../widgets/pluri_layout.dart';
|
||||
import '../widgets/pluri_premium_widgets.dart';
|
||||
import '../widgets/pluri_push_scaffold.dart';
|
||||
import 'ajustes/pantalla_ajustes_grabaciones.dart';
|
||||
|
||||
/// Inline-preview playback + duration lookup for a single recording file at
|
||||
/// a time (WU15, recordings-library spec — "Row playback starts and
|
||||
@@ -228,6 +229,17 @@ class _PantallaGrabacionesState extends State<PantallaGrabaciones> {
|
||||
|
||||
return PluriPushScaffold(
|
||||
title: l10n.recordingsLibraryTitle,
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: const Icon(Icons.settings_outlined),
|
||||
tooltip: l10n.recordingsLibrarySettingsTooltip,
|
||||
onPressed:
|
||||
() => PluriPushScaffold.push(
|
||||
context,
|
||||
(_) => const PantallaAjustesGrabaciones(),
|
||||
),
|
||||
),
|
||||
],
|
||||
body: FutureBuilder<List<ArchivoGrabacion>>(
|
||||
future: _grabaciones,
|
||||
builder: (context, snap) {
|
||||
|
||||
Reference in New Issue
Block a user