github Arturo254/OpenTune 3.0.7

7 hours ago

🚀 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:

  • GlobalLog como singleton con StateFlow de hasta 500 entradas
  • GlobalLogTree (Timber Tree) plantado en onCreate() de la aplicación
  • Captura automática de todos los eventos de logging
  • Visor interactivo en DebugSettings con:
    • 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/catch para 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 cola
  • removeSongFromQueueByIndex - Eliminar por índice
  • clearQueue - Vaciar toda la cola
  • Persistencia en disco al eliminar o restaurar mediante "Undo"
  • Refactor de writePersistentObject para manejo robusto de archivos
  • Eliminación de llamadas Sync redundantes

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 init para 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:

  • AccountSettings migrado de Column a ModalBottomSheet
  • PlaylistSelectionDialog migrado a ModalBottomSheet
  • Componentes actualizados: AccountCard, SettingsClickableItem, SettingsToggleItem, UpdateAvailableItem
  • Uso de MaterialShapes (Cookie, Pill, Circle)
  • MotionScheme para animaciones fluidas
  • Tipografía "Emphasized" (bodyLargeEmphasized, titleMediumEmphasized)
  • CircularWavyProgressIndicator en lugar de indicadores estándar
  • FAB en FloatingNavigationToolbar con CircleShape

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, Error en AlbumScreen
  • Continuación robusta: Mejora en albumSongs para evitar loops infinitos
  • Manejo de respuestas vacías: Mayor gracia ante respuestas vacías del servidor
  • Caché local como fallback: Transición a Content si hay datos locales aunque falle la red
  • Timber logging extensivo: Facilita debugging de transiciones de UI

Base de Datos:

  • DatabaseDao.insert(AlbumPage) ahora hace update si el álbum ya existe
  • Nuevo campo lastUpdateTime en 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 YoutubeJavaScriptPlayerManager para manejo de throttling
  • Logging mejorado en NewPipeUtils y objeto YouTube
  • 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, clear

Refactorización Interna

  • Cola de reproducción: Eliminación de llamadas Sync redundantes en MusicService
  • CustomCanvasProvider: Método init para 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? 🚀

Don't miss a new OpenTune release

NewReleases is sending notifications on new releases.