🚀 Release 3.0.6
Versión centrada en reproducción de música local en el dispositivo, sistema de caché persistente para canvases, actualizaciones in-app, mejoras en la biblioteca y diseño Material 3 Expressive.
⚠️ es posible que la aplicacion no se sobre instale debido al cambio de firma. si es asi descargala desde este enlace:
✨ Nuevas Funciones
📱 Reproducción de Música Local en el Dispositivo
¡Llega el soporte completo para audio local! Ahora OpenTune puede escanear, indexar y reproducir archivos de música almacenados en tu dispositivo.
Características:
- Escaneo automático de archivos de audio (MP3, FLAC, OGG, WAV, etc.) a través de MediaStore
- Indexación persistente en base de datos (Schema v28-v29)
- Soporte para extracción robusta de metadatos usando
MediaMetadataRetriever - Reproducción directa desde URI
content://sin pasar por YouTube - Compatibilidad con "Abrir con" desde gestores de archivos (intent
VIEW/SEND) - Filtrado por carpetas con selección persistente en
DataStore - Integración completa con el sistema de favoritos (likes locales)
- Acceso rápido desde "On device" en la pantalla de biblioteca
Beneficios:
- Escucha tu música sin conexión a Internet
- Integración perfecta con tu biblioteca existente
- Misma experiencia de reproducción que el contenido de YouTube Music
📥 Actualizaciones In-App
Nuevo sistema de actualizaciones directas desde la aplicación.
Componentes:
UpdatercondownloadApkeinstallApkusando Ktor yFileProviderUpdateDetailsBottomSheetcon indicador de progreso ondulante- Visor de notas de lanzamiento en formato Markdown
- Permiso
REQUEST_INSTALL_PACKAGESpara instalación automática
Beneficios:
- Actualizaciones más rápidas y cómodas
- Sin necesidad de descargar manualmente desde GitHub
- Experiencia más profesional y pulida
🎨 Filtrado por Carpetas para Música Local
Nuevo sistema para organizar tu biblioteca local por directorios.
Características:
FolderFilterBottomSheetpara seleccionar carpetas específicas- Persistencia de selección mediante
stringSetPreferencesKey(SelectedLocalFoldersKey) - Extracción inteligente de nombres de directorio desde rutas
localPath - Chips interactivos de selección en
LocalSongsScreen - Estado de escaneo con diálogo informativo
searching_for_media
Beneficios:
- Organiza tu música por carpetas (ej: "Descargas", "Música", "Podcasts")
- Mejor control sobre qué contenido aparece en tu biblioteca
🎬 Mejoras de Biblioteca y Reproductor
🗂️ Parser de Biblioteca InnerTube Mejorado
Refactorización completa del parseo de LibraryPage para manejar mejor respuestas complejas.
Cambios Principales:
- Manejo de IDs faltantes: Ahora soporta elementos sin
browseId(ej: canciones subidas/local) - Mejor mapeo: Extracción mejorada de álbumes y playlists
- Tokens de like: Implementada extracción correcta de tokens de añadir/eliminar de la biblioteca
- Logging robusto: Facilita debugging de respuestas de YouTube Music
- Extracción de autores: Fix para autores de playlists
Beneficio: Menos errores al sincronizar tu biblioteca de YouTube Music.
🖼️ Sistema de Caché Persistente para Canvases
Nuevo sistema de caché en disco para videos de Spotify y canales personalizados.
Características:
CanvasCacheManagercon almacenamiento persistente via JSON- Estrategia "cache-first" para reducir uso de datos
- Descarga asíncrona y almacenamiento de videos
- Integración con
CustomCanvasProvideryCanvasArtworkPlayer - Inicialización en
MainActivity.onStart - Visualización de uso real en bytes en ajustes de almacenamiento
Beneficios:
- Reproducción más rápida de canvases
- Menor consumo de datos móviles
- Experiencia sin interrupciones en reproducción
🎵 Mejoras en el Reproductor Local
Optimizaciones para una experiencia fluida con música local.
Mejoras:
Song.toMediaItem()usa URIcontent://directamente para canciones localesMusicServiceomite resolución de YouTube para URIcontent://toggleLike()delegado alocalToggleLike()para canciones locales- Ocultación inteligente de acciones solo-YouTube en
SongMenu,PlayerMenuy barra de acciones - Soporte para extractores adicionales de audio local
Acciones ocultas para contenido local:
- Iniciar radio
- Compartir / Copiar enlace
- Descargar / Eliminar caché
- Ver artista / álbum
- Refrescar metadatos
- Detalles de formato
Beneficio: Interfaz limpia y relevante según el tipo de contenido.
🔧 Mejoras Internas
Base de Datos y Escaneo
Actualizaciones Schema:
// SongEntity - Schema v28-v29
+ localPath: String? // Ruta completa del archivo
+ isLocal: Boolean (flags) // Para artistas, álbumes y playlistsMejoras en LocalMediaScanner:
- Extracción de
albumartvía URI de MediaStore - Fallback a
ALBUM_ARTISTy etiquetas ID3/Vorbis - Reesolución de mapeo de artistas en rescan (no solo en inserción inicial)
- Agrupación de medios por directorio con
getAvailableFolders
UI y Componentes Material 3 Expressive
Modernización de pantallas:
LocalSongsScreencon cabecera sticky y chips de selecciónStorageSettingsconMD3ExpressiveCacheCardy diseño más espaciosoBackupAndRestoreyAboutScreencon APIs Material 3 Expressive- Nuevo indicador de advertencia "⚠️ Casi lleno" en caché (+80%)
Iconos vectoriales actualizados:
folder.xmlshare.xml
Nuevas Preferencias
// Almacenamiento persistente en DataStore
val SelectedLocalFoldersKey = stringSetPreferencesKey("selectedLocalFolders")
// Nuevos recursos de string
- searching_for_media // Estado de escaneo
- folder_management // Gestión de carpetas
- filter_by_folder // Filtrado por carpeta
- no_media_in_folder // Sin medios en carpeta
- scanning_media // Escaneando mediosDependencias y Mantenimiento
Actualizaciones:
newpipe-extractor:v0.25.2→v0.26.3- Estandarización del módulo en
libs.versions.toml gradle-daemon-jvm.propertiespara Java 21 en todos los sistemas- Eliminación de configuraciones alternativas obsoletas
Efecto Visual Liquid Glass:
- Efecto de desenfoque "Liquid Glass" en Navigation Bar y MiniPlayer (Merge #705)
Correcciones:
- Fix para
UnrecognizedInputFormatExceptionen reproducción local - Mejor manejo de
content://URIs en pipeline de caché
📦 Versionado
versionCode: 132 → 133
versionName: 3.0.5 → 3.0.6
🎯 Resumen de Impacto
| Área | Cambio | Impacto |
|---|---|---|
| 🎵 Reproducción Local | NUEVO | Alta - Experiencia offline |
| 📥 Actualizaciones In-App | NUEVO | Alta - Mayor comodidad |
| 🖼️ Caché de Canvases | NUEVO | Media - Rendimiento y datos |
| 🗂️ Filtrado por Carpetas | NUEVO | Media - Mejor organización |
| 🎨 UI Material 3 | Mejora | Media - Diseño moderno |
| 🔧 Parser de Biblioteca | Mejora | Media - Estabilidad |
| 🚀 Dependencias | Actualización | Baja - Mantenimiento |