Files
canti/nuova_funziona_importazione_comunity.md
2026-06-17 01:04:27 +02:00

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:

  1. 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.
  2. 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:

  1. Verifica dello Stato: Si assicura che una comunità sia attiva e che i dati siano caricati.
  2. 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 su MyCantiService.
  3. 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)).
  4. 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.
  5. Salvataggio e Feedback:
    • Salverà tutte le nuove playlist tramite playlistService.savePlaylist().
    • Mostrerà un alert di conferma iniziale e un toast di successo finale.

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.