Skip to content

3.0.6

Latest

Choose a tag to compare

@Arturo254 Arturo254 released this 02 Aug 22:23

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

OpenTune


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

  • Updater con downloadApk e installApk usando Ktor y FileProvider
  • UpdateDetailsBottomSheet con indicador de progreso ondulante
  • Visor de notas de lanzamiento en formato Markdown
  • Permiso REQUEST_INSTALL_PACKAGES para 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:

  • FolderFilterBottomSheet para 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:

  • CanvasCacheManager con almacenamiento persistente via JSON
  • Estrategia "cache-first" para reducir uso de datos
  • Descarga asíncrona y almacenamiento de videos
  • Integración con CustomCanvasProvider y CanvasArtworkPlayer
  • 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 URI content:// directamente para canciones locales
  • MusicService omite resolución de YouTube para URI content://
  • toggleLike() delegado a localToggleLike() para canciones locales
  • Ocultación inteligente de acciones solo-YouTube en SongMenu, PlayerMenu y 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 playlists

Mejoras en LocalMediaScanner:

  • Extracción de albumart vía URI de MediaStore
  • Fallback a ALBUM_ARTIST y 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:

  • LocalSongsScreen con cabecera sticky y chips de selección
  • StorageSettings con MD3ExpressiveCacheCard y diseño más espacioso
  • BackupAndRestore y AboutScreen con APIs Material 3 Expressive
  • Nuevo indicador de advertencia "⚠️ Casi lleno" en caché (+80%)

Iconos vectoriales actualizados:

  • folder.xml
  • share.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 medios

Dependencias y Mantenimiento

Actualizaciones:

  • newpipe-extractor: v0.25.2v0.26.3
  • Estandarización del módulo en libs.versions.toml
  • gradle-daemon-jvm.properties para 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 UnrecognizedInputFormatException en 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