feat(ui): add premium PluriWave redesign
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Apply Progress: premium-award-ui-icons-code-review
|
||||
|
||||
## Status
|
||||
|
||||
Partial apply completed in automatic multi-agent mode.
|
||||
|
||||
## Completed
|
||||
|
||||
- Planned and persisted hybrid SDD artifacts: proposal, spec, design, tasks, state.
|
||||
- Added premium foundations:
|
||||
- `lib/tema/pluriwave_tokens.dart`
|
||||
- `lib/tema/pluriwave_motion.dart`
|
||||
- `lib/tema/pluriwave_theme.dart`
|
||||
- `lib/widgets/pluri_icon.dart`
|
||||
- `lib/widgets/pluri_glass_surface.dart`
|
||||
- `lib/widgets/pluri_wave_scaffold.dart`
|
||||
- Connected app theme and primary navigation to PluriWave premium foundations in `lib/app.dart`.
|
||||
- Hardened app error stream subscription in `lib/app.dart` with a single cancelable `StreamSubscription`.
|
||||
- Hardened audio visualizer stream subscriptions in `lib/widgets/visualizador_audio.dart`.
|
||||
- Fixed persistent favorites reorder by reindexing the full list in a DB transaction.
|
||||
- Reduced stale favorite state by deriving favorite UI from `EstadoRadio` in station card and player.
|
||||
- Made player prefer effective `estado.emisoraActual ?? widget.emisora`.
|
||||
- Made timer cancellation await audio stop when requested.
|
||||
- Added/updated tests for premium foundations, visualizer lifecycle, favorite reorder, and favorite sync.
|
||||
|
||||
## Verification
|
||||
|
||||
- ✅ Sub-agent reported `flutter test test/widgets/pluriwave_foundations_test.dart` passed.
|
||||
- ✅ Sub-agent reported `flutter test test/estado/estado_radio_test.dart -r compact` passed.
|
||||
- ✅ Sub-agent reported `flutter test test/widget_test.dart -r compact` passed.
|
||||
- ⚠️ Full `flutter test` timed out in this environment.
|
||||
- ⚠️ Local `dart format` and focused Flutter test commands later timed out/hung; stale Dart/Flutter processes were stopped.
|
||||
- 🚫 No `flutter build` was executed.
|
||||
|
||||
## Remaining
|
||||
|
||||
- Run full `flutter test` in CI/local with a longer timeout.
|
||||
- Run `dart format` once Dart tooling is responsive.
|
||||
- Continue premium screen refresh across Inicio/Buscar/Favoritos/Reproductor/Ajustes.
|
||||
- Generate or integrate validated icon/mockup assets through the asset pipeline.
|
||||
- Verify accessibility semantics/tap targets after screen integration.
|
||||
|
||||
## Continuation 2026-05-20
|
||||
|
||||
### Completed in this continuation
|
||||
|
||||
- Premium component refresh:
|
||||
- `lib/widgets/tarjeta_emisora.dart`
|
||||
- `lib/widgets/mini_reproductor.dart`
|
||||
- Premium screen refresh:
|
||||
- `lib/pantallas/pantalla_inicio.dart`
|
||||
- `lib/pantallas/pantalla_buscar.dart`
|
||||
- `lib/pantallas/pantalla_favoritos.dart`
|
||||
- `lib/pantallas/pantalla_ajustes.dart`
|
||||
- Premium player/EQ refresh:
|
||||
- `lib/pantallas/pantalla_reproductor.dart`
|
||||
- `lib/widgets/ecualizador_widget.dart`
|
||||
- Persisted dedicated mockup/icon prompts:
|
||||
- `openspec/changes/premium-award-ui-icons-code-review/mockup-prompts.md`
|
||||
- Static verification found a critical unsafe `Dismissible` + async Provider removal in Favorites; fixed by replacing swipe-dismiss with explicit delete action.
|
||||
|
||||
### Verification in continuation
|
||||
|
||||
- ✅ Sub-agent reported `flutter test test/estado/estado_radio_test.dart` passed with 8 tests.
|
||||
- ✅ Static `git diff --check` completed without whitespace errors.
|
||||
- ⚠️ `dart format`, `dart analyze`, and focused Flutter tests continued to timeout in this environment.
|
||||
- 🚫 No `flutter build` executed.
|
||||
|
||||
### Remaining
|
||||
|
||||
- Run `dart format` and full `flutter test` in responsive local/CI tooling.
|
||||
- Optional: implement optimistic favorite reorder for smoother premium UX.
|
||||
- Optional: remove double glass nesting around Ajustes/EQ if visual QA shows heaviness.
|
||||
- Generate actual raster mockup/icon assets using `mockup-prompts.md` and validate before integration.
|
||||
Reference in New Issue
Block a user