From 969361664585a3ef4fc97696c96fe70f75ac6e10 Mon Sep 17 00:00:00 2001 From: zarzet Date: Wed, 25 Mar 2026 20:50:33 +0700 Subject: [PATCH] fix: route tidal/qobuz items from Recent Access to built-in screens instead of extension screens --- lib/screens/home_tab.dart | 12 +++++++++--- lib/utils/clickable_metadata.dart | 12 ++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/screens/home_tab.dart b/lib/screens/home_tab.dart index 7758b273..b135b86c 100644 --- a/lib/screens/home_tab.dart +++ b/lib/screens/home_tab.dart @@ -2122,7 +2122,9 @@ class _HomeTabState extends ConsumerState if (item.providerId != null && item.providerId!.isNotEmpty && item.providerId != 'deezer' && - item.providerId != 'spotify') { + item.providerId != 'spotify' && + item.providerId != 'tidal' && + item.providerId != 'qobuz') { Navigator.push( context, MaterialPageRoute( @@ -2162,7 +2164,9 @@ class _HomeTabState extends ConsumerState } else if (item.providerId != null && item.providerId!.isNotEmpty && item.providerId != 'deezer' && - item.providerId != 'spotify') { + item.providerId != 'spotify' && + item.providerId != 'tidal' && + item.providerId != 'qobuz') { Navigator.push( context, MaterialPageRoute( @@ -2210,7 +2214,9 @@ class _HomeTabState extends ConsumerState if (item.providerId != null && item.providerId!.isNotEmpty && item.providerId != 'deezer' && - item.providerId != 'spotify') { + item.providerId != 'spotify' && + item.providerId != 'tidal' && + item.providerId != 'qobuz') { Navigator.push( context, MaterialPageRoute( diff --git a/lib/utils/clickable_metadata.dart b/lib/utils/clickable_metadata.dart index e7f6d8d7..a4ec68ca 100644 --- a/lib/utils/clickable_metadata.dart +++ b/lib/utils/clickable_metadata.dart @@ -225,11 +225,19 @@ void _pushAlbumScreen( String? coverUrl, String? extensionId, }) { + // Built-in providers (tidal, qobuz, deezer) use AlbumScreen which + // detects the provider from the album ID prefix. Only true JS extensions + // should use ExtensionAlbumScreen. + const builtInProviders = {'tidal', 'qobuz', 'deezer'}; + final isExtension = + extensionId != null && !builtInProviders.contains(extensionId); + final resolvedExtensionId = extensionId; + _pushViaPreferredNavigator( context, - (context) => extensionId != null + (context) => isExtension && resolvedExtensionId != null ? ExtensionAlbumScreen( - extensionId: extensionId, + extensionId: resolvedExtensionId, albumId: albumId, albumName: albumName, coverUrl: coverUrl,