feat: add long press to shuffle with a wave animation (#888)

* feat: add long press to shuffle with a wave animation to singnify how long to press

* refactor: long-press shuffle cleanup

Follow-up on the long-press shuffle PR: shared hook/overlay, playback parity,
pointer events, broader surface coverage, locales, and tests.

* docs: credit ImAsra for long-press album shuffle (PR #888)

Add CHANGELOG entry and Settings credits for the hold-to-shuffle play
interaction shipped in Psychotoxical/psysonic#888.

* fix: restore playAlbumShuffled and long-press hook wiring

The follow-up merge dropped playAlbumShuffled and reverted the shared
long-press hook in album play buttons, breaking tsc and vitest on PR #888.

---------

Co-authored-by: cucadmuh <49571317+cucadmuh@users.noreply.github.com>
This commit is contained in:
ImAsra
2026-05-28 22:59:49 +02:00
committed by GitHub
parent 8443b3d4be
commit ae2e123a14
21 changed files with 585 additions and 44 deletions
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Album des Augenblicks',
playAlbum: 'Album abspielen',
playAlbumTooltip: 'Album abspielen (halten zum Mischen)',
enqueue: 'Einreihen',
enqueueTooltip: 'Ganzes Album zur Warteschlange hinzufügen',
previousAlbum: 'Vorheriges Album',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Featured Album',
playAlbum: 'Play Album',
playAlbumTooltip: 'Play Album (hold to shuffle)',
enqueue: 'Enqueue',
enqueueTooltip: 'Add entire album to queue',
previousAlbum: 'Previous album',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Álbum Destacado',
playAlbum: 'Reproducir Álbum',
playAlbumTooltip: 'Reproducir álbum (mantener para aleatorio)',
enqueue: 'Agregar a la Cola',
enqueueTooltip: 'Agregar álbum completo a la cola',
previousAlbum: 'Álbum anterior',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Album en vedette',
playAlbum: 'Lire l\'album',
playAlbumTooltip: 'Lire l\'album (maintenir pour mélanger)',
enqueue: 'Mettre en file',
enqueueTooltip: 'Ajouter l\'album entier à la file d\'attente',
previousAlbum: 'Album précédent',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Utvalgt album',
playAlbum: 'Spill av album',
playAlbumTooltip: 'Spill av album (hold for tilfeldig rekkefølge)',
enqueue: 'Legg til i kø',
enqueueTooltip: 'Legg til hele albumet i køen',
previousAlbum: 'Forrige album',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Uitgelicht album',
playAlbum: 'Album afspelen',
playAlbumTooltip: 'Album afspelen (ingedrukt houden om te shufflen)',
enqueue: 'In wachtrij',
enqueueTooltip: 'Volledig album aan wachtrij toevoegen',
previousAlbum: 'Vorig album',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Album Promovat',
playAlbum: 'Redă Album',
playAlbumTooltip: 'Redă album (ține apăsat pentru amestecare)',
enqueue: 'Pune în coadă',
enqueueTooltip: 'Adaugă întregul album în coadă',
previousAlbum: 'Albumul anterior',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: 'Альбом дня',
playAlbum: 'Воспроизвести альбом',
playAlbumTooltip: 'Воспроизвести альбом (удерживать для перемешивания)',
enqueue: 'В очередь',
enqueueTooltip: 'Добавить весь альбом в очередь',
previousAlbum: 'Предыдущий альбом',
+1
View File
@@ -1,6 +1,7 @@
export const hero = {
eyebrow: '精选专辑',
playAlbum: '播放专辑',
playAlbumTooltip: '播放专辑(长按随机播放)',
enqueue: '加入队列',
enqueueTooltip: '将整张专辑添加到播放队列',
previousAlbum: '上一张专辑',