3.9 KiB
Piano di Implementazione: Importazione Playlist e Canti della Comunità
Questo piano descrive i dettagli tecnici per l'aggiunta di una funzione che consente di importare localmente tutte le playlist e i canti personalizzati di una comunità attiva.
User Review Required
Important
L'importazione comporterà il salvataggio dei canti personalizzati della comunità direttamente nei "Miei Canti" dell'utente (evitando duplicati) e la creazione di playlist locali. Le playlist locali create includeranno:
- Una playlist principale con il nome della comunità stessa contenente tutti i canti della comunità con le rispettive tonalità, velocità di scorrimento e testi personalizzati/aggiuntivi.
- Tutte le singole scalette/playlist della comunità importate come playlist locali indipendenti e modificabili.
Proposed Changes
Servizi e Logica di Business
[MODIFY] playlist.service.ts
Aggiungeremo un metodo helper o esporremo le funzioni di salvataggio di massa per le playlist importate, garantendo che le impostazioni dei brani (songSettings contenenti tonalità e velocità di scorrimento) siano preservate correttamente.
Pagina Impostazioni (Settings Page)
[MODIFY] settings.page.html
Nel gruppo "Comunità", quando una comunità è attiva, aggiungeremo un nuovo pulsante sotto i dettagli della comunità:
- Pulsante: "Importa Playlist e Canti" con icona
cloud-download-outline.
[MODIFY] settings.page.ts
Implementeremo il metodo importComunitaPlaylists() che svolgerà i seguenti passaggi:
- Verifica dello Stato: Si assicura che una comunità sia attiva e che i dati siano caricati.
- Importazione dei Canti Personalizzati:
- Scorrerà i canti di
comunitaService.comunitaCantiPersonali(). - Per ciascun canto, verificherà se è già presente nei "Miei Canti" (tramite
myCantiService.myCanti()). - Se assente, lo aggiungerà con prefisso ID
my_ed effettuerà il salvataggio in locale suMyCantiService.
- Scorrerà i canti di
- Creazione della Playlist della Comunità:
- Creerà una playlist avente come nome il nome della comunità stessa.
- Popolerà i canti associando sia i canti standard sia i canti personali importati.
- Assocerà le impostazioni di tonalità e velocità di scorrimento da
comunitaCantiSettings(). Per la velocità, si utilizzerà la formula di conversione standard (es.Math.round(speed / 100)).
- Importazione delle Scalette (Playlist) Aggiuntive:
- Per ciascuna scaletta in
comunitaService.comunitaScalette(), creerà una playlist locale corrispondente. - Per ciascun canto della scaletta, cercherà se esiste un'impostazione in
comunitaCantiSettings()per impostare tonalità e velocità specifiche all'interno della playlist.
- Per ciascuna scaletta in
- Salvataggio e Feedback:
- Salverà tutte le nuove playlist tramite
playlistService.savePlaylist(). - Mostrerà un alert di conferma iniziale e un toast di successo finale.
- Salverà tutte le nuove playlist tramite
Verification Plan
Manual Verification
- Attivare una comunità di prova (es. con codice noto o inserendone uno valido).
- Andare nelle impostazioni e cliccare sul nuovo pulsante "Importa Playlist e Canti".
- Verificare la comparsa dell'alert di conferma.
- Confermare l'importazione.
- Verificare tramite Toast e navigando nella home che:
- Sia presente una playlist locale con il nome della comunità contenente tutti i canti ordinati e configurati.
- Siano presenti le playlist secondarie della comunità convertite in playlist locali.
- Le tonalità modificate e le velocità di scorrimento siano state importate correttamente per ciascun canto all'interno delle playlist.
- I canti personali/aggiuntivi siano stati importati nella sezione "Miei Canti" e siano visualizzabili.