OpenTune 2.0.5
📌 Notas de la Versión 2.0.5
🚀 Mejoras Principales:
📌 Cambios Principales
🎨 Fondo del reproductor (gradientes + contraste de texto)
- Se creó
GradientState
yrememberGradientState
para manejar colores, contraste de texto e íconos según la portada del álbum. - Extracción de colores mejorada con
extractGradientColors()
: usa cuantización, descarta colores extremos y selecciona los más dominantes. - Cálculo automático de colores óptimos (
calculateOptimalColors()
) para asegurar accesibilidad. - Nuevo composable
PlayerBackground
: maneja animaciones de fondo (BLUR
,GRADIENT
,DEFAULT
) con transiciones suaves. - Los colores de controles, títulos, sliders y botones ahora se derivan del
gradientState
para garantizar contraste consistente.
Player.kt
🔄 Animaciones y overlays dinámicos
- Fondos blur y gradiente ahora cambian suavemente con
animate*AsState
. - Se agregó overlay oscuro dinámico para mejorar la legibilidad del texto.
- Se reestructuró con
Box
+AnimatedVisibility
para mostrar/ocultar capas según expansión del player o letras activas.
Player.kt
🎶 Letras: caché + compartir como imagen
- Nuevo
lyricsCache
conConcurrentHashMap
para guardar letras ya cargadas y reducir llamadas a API/DB. - Sincronización mejorada del scroll con
animateScrollBy
, evitando saltos bruscos. - Modos fullscreen y flotante para letras con top bar personalizada.
- Diálogo de compartir: permite exportar letras como texto o imagen, con color de texto y fondo configurables, más vista previa en tiempo real.
Lyrics.kt
,ShareLyricsDialog.kt
,ColorPickerDialog.kt
🎨 Theming dinámico con Material Kolor
-
Implementación de esquemas dinámicos usando
material-kolor
: genera paletas desde bitmaps de portadas conPaletteStyle.TonalSpot
. -
Integración en
Theme.kt
conrememberDynamicColorScheme
para Compose. -
Actualización de dependencias clave:
- Compose 1.9.1
- Kotlin 2.2.10
- Hilt 2.55
- Room 2.7.2
- Material3 1.3.2
-
Versión de app actualizada a 2.0.5 (117).
Theme.kt
,build.gradle.kts
,libs.versions.toml
,strings.xml
📱 Pantalla de Backup & Restore
- UI migrada a
Scaffold
conTopAppBar
y padding correcto. - Botones de Backup y Restore ahora se deshabilitan durante subida.
- URL de archivo subido se muestra en fuente monoespaciada.
- Manejo de errores más robusto (
SecurityException
,IOException
), con logs más claros y limpieza garantizada del archivo temporal. - Back button: navegación segura con fallback si no hay pantalla previa.
- Tamaño de archivo más preciso usando
OpenableColumns.SIZE
.
BackupRestoreScreen.kt
❤️ Botón de "Like" optimista
toggleLike
actualiza primero el estado local (optimista) y luego sincroniza con el servicio.- Si ocurre un error, revierte el estado.
- El botón cambia a color #E91E63 al estar activo, asegurando feedback inmediato.
PlayerConnection.kt
,Player.kt
🧹 Limpieza y refactors
- Eliminado
ProblemSolver.kt
y su ruta enNavigationBuilder.kt
(pantalla de ayuda/FAQ). CachePlaylistScreen.kt
: corrección de posibleNullPointerException
.AppearanceSettings.kt
: uso deHorizontalDivider
en lugar deDivider
para alinear con Material3.MainActivity.kt
: logging de errores de imágenes más claro.ArtistSongsScreen.kt
: se quitó elVerticalFastScroller
, ya no disponible en esa vista.
ProblemSolver.kt
,NavigationBuilder.kt
,CachePlaylistScreen.kt
,AppearanceSettings.kt
,MainActivity.kt
,ArtistSongsScreen.kt
📝 Formato y consistencia de código
- Revisión de varios archivos con mejor indentación, saltos de línea y limpieza general.
- Sin cambios de lógica, solo mejoras de legibilidad y mantenibilidad.
Varios archivos
👉 En conjunto, estos cambios mejoran accesibilidad, diseño dinámico, rendimiento y experiencia de usuario, además de preparar la base para futuras funciones (compartir letras, theming avanzado, manejo de errores más robusto).
📊 Estadísticas de la Versión:
🤝 Colaboración de Código Abierto
OpenTune es un proyecto de código abierto y siempre estamos buscando colaboradores para mejorar el proyecto. ¡Tu contribución es bienvenida!
🛠️ Cómo Contribuir:
- Haz un fork del repositorio: Clona el repositorio para trabajar en mejoras.
- Envía pull requests: Una vez que hayas realizado tus cambios, envía un pull request para que podamos revisar y fusionar tus contribuciones.
- Explora y mejora el código fuente: Si encuentras algún error o tienes una idea para mejorar el proyecto, ¡no dudes en compartirla!
📄 Licencia
Este proyecto está bajo la licencia MIT y GPL 3
📝 Registro de Cambios
Full Changelog: 2.0.4...2.0.5