🚀 Release 3.0.7
Versión centrada en estabilización de la carga de álbumes, sistema global de logging con visor en tiempo real, gestión avanzada de colas, caché de catálogo para Canvas y modernización de ajustes con Material 3 Expressive.
✨ Nuevas Funciones
🪵 Sistema Global de Logging con Visor en Tiempo Real
Nuevo sistema centralizado de logs accesible desde la propia aplicación, sin necesidad de Logcat.
Características:
GlobalLogcomo singleton conStateFlowde hasta 500 entradasGlobalLogTree(Timber Tree) plantado enonCreate()de la aplicación- Captura automática de todos los eventos de logging
- Visor interactivo en
DebugSettingscon:- Filtros por nivel (Verbose/Debug/Info/Warning/Error)
- Filtros por tag (Discord / All)
- Expansión/colapso de entradas al hacer clic
- Copiado al portapapeles en long press
- Badges de nivel con código de colores
- Botones "Clear" y "Share" (compartir logs formateados)
- Auto-scroll al último elemento
- Timestamp con formato
HH:mm:ss.SSS - Manejo seguro con
try/catchpara evitar que un fallo en logging rompa la app
Módulos instrumentados:
CustomCanvasProvider(búsquedas, caché, descargas, errores HTTP, validación JSON)BetterLyricsProvider(logger interno redirigido a GlobalLog)LyricsHelper(cache hits, fetch de letras, estado de red)DiscordRPC(errores de refreshActivity con stack trace completo)
Beneficios:
- Depuración en tiempo real desde el dispositivo
- Sin necesidad de conectar a PC o usar Logcat
- Ideal para testing y reporte de bugs
📋 Gestión Avanzada de Cola de Reproducción
Nuevas capacidades para manipular la cola de reproducción desde la interfaz.
Características:
removeSongFromQueue- Eliminar una canción específica de la colaremoveSongFromQueueByIndex- Eliminar por índiceclearQueue- Vaciar toda la cola- Persistencia en disco al eliminar o restaurar mediante "Undo"
- Refactor de
writePersistentObjectpara manejo robusto de archivos - Eliminación de llamadas
Syncredundantes
Beneficios:
- Mayor control sobre tu lista de reproducción
- Limpieza rápida de la cola
- Persistencia confiable entre sesiones
🖼️ Caché de Catálogo para Custom Canvas Provider
Nuevo sistema de caché para el catálogo de canales personalizados.
Características:
- Almacenamiento local en archivo JSON (
canvas_catalog.json) - Reducción de peticiones de red al cargar el catálogo
- Método
initpara manejo de contexto y carga inicial - Integración con el sistema de caché de videos existente
Beneficios:
- Menor consumo de datos
- Carga más rápida del catálogo
- Funciona offline una vez descargado
🎨 Modernización de Ajustes de Cuenta con Material 3 Expressive
Migración completa de AccountSettings y diálogos relacionados a Material 3 Expressive.
Cambios Principales:
AccountSettingsmigrado deColumnaModalBottomSheetPlaylistSelectionDialogmigrado aModalBottomSheet- Componentes actualizados:
AccountCard,SettingsClickableItem,SettingsToggleItem,UpdateAvailableItem - Uso de
MaterialShapes(Cookie, Pill, Circle) MotionSchemepara animaciones fluidas- Tipografía "Emphasized" (
bodyLargeEmphasized,titleMediumEmphasized) CircularWavyProgressIndicatoren lugar de indicadores estándar- FAB en
FloatingNavigationToolbarconCircleShape
Beneficios:
- Experiencia más moderna y consistente
- Navegación mejorada con bottom sheets
- Animaciones más suaves y expresivas
🎬 Mejoras de Estabilidad y Rendimiento
🗂️ Estabilización de Carga de Álbumes
Refactorización completa del flujo de carga de álbumes para evitar estados bloqueados.
Cambios Principales:
- Manejo explícito de estados:
Loading,Content,Empty,ErrorenAlbumScreen - Continuación robusta: Mejora en
albumSongspara evitar loops infinitos - Manejo de respuestas vacías: Mayor gracia ante respuestas vacías del servidor
- Caché local como fallback: Transición a
Contentsi hay datos locales aunque falle la red - Timber logging extensivo: Facilita debugging de transiciones de UI
Base de Datos:
DatabaseDao.insert(AlbumPage)ahora haceupdatesi el álbum ya existe- Nuevo campo
lastUpdateTimeen registros de álbumes
Beneficio: La pantalla de álbum ya no se queda atascada mostrando shimmer o estados incorrectos.
🔧 Bypass de Desofuscación de Firma de NewPipe
Desactivación temporal del sistema de desofuscación de NewPipe debido a incompatibilidades.
Cambios:
- Desactivado
YoutubeJavaScriptPlayerManagerpara manejo de throttling - Logging mejorado en
NewPipeUtilsy objetoYouTube - Seguimiento detallado de resolución de URLs y parseo de álbumes
Beneficio: Mayor estabilidad en la reproducción mientras se busca una solución permanente.
🔧 Mejoras Internas
UI y Experiencia de Usuario
Correcciones y mejoras visuales:
- Search bar: Preservación del carácter '+' en consultas de búsqueda (Merge #745)
- Fullscreen player: Ocultación correcta de status y navigation bars cuando el reproductor está en pantalla completa
- System bars: Lógica de visibilidad mejorada en
MainActivity - Fuente Linotte: Cambio de formato TTF a OTF para mejor compatibilidad
- Limpieza: Eliminación de imports no utilizados y corrección de indentación
Nuevas Preferencias y Recursos
Recursos de string añadidos para Debug Settings:
show_canvas_debug, description_show_canvas_debug, canvas_debug_section,
canvas_cache_stats, canvas_logs, refresh_catalog, debug_logs, filter_levels,
log_level_{verbose,debug,info,warning,error}, reset_to_default_levels,
filter_discord_only, filter_all_logs, no_logs, logs_empty_message,
copied_to_clipboard, share_logs, clearRefactorización Interna
- Cola de reproducción: Eliminación de llamadas
Syncredundantes enMusicService - CustomCanvasProvider: Método
initpara gestión de contexto y catálogo - MainActivity: Simplificación del decodeo de queries de búsqueda
- Manejo de System Bars: Comportamiento consistente en modo fullscreen
📦 Versionado
versionCode: 133 → 134
versionName: 3.0.6 → 3.0.7
🎯 Resumen de Impacto
| Área | Cambio | Impacto |
|---|---|---|
| 🪵 Sistema de Logging | NUEVO | Alta - Depuración en tiempo real |
| 📋 Gestión de Cola | NUEVO | Media - Mayor control |
| 🗂️ Carga de Álbumes | Mejora | Alta - Estabilidad crítica |
| 🖼️ Caché de Catálogo Canvas | NUEVO | Media - Rendimiento |
| 🎨 UI Ajustes de Cuenta | Mejora | Media - Experiencia moderna |
| 🔧 Bypass de NewPipe | Fix | Alta - Estabilidad de reproducción |
| 📱 Fullscreen Player | Fix | Media - Inmersión visual |
¿Necesitas algún ajuste o cambio en la estructura? 🚀