💄 Better adjust lyrics experience
This commit is contained in:
@@ -160,9 +160,9 @@ class MusixmatchProvider extends LrcProvider {
|
||||
final statusCode = jsonDecode(r.body)["message"]["header"]["status_code"];
|
||||
if (statusCode != 200) return null;
|
||||
final body = jsonDecode(r.body)["message"]["body"];
|
||||
if (body == null || !(body is Map)) return null;
|
||||
if (body == null || body is! Map) return null;
|
||||
final tracks = body["track_list"];
|
||||
if (tracks == null || !(tracks is List) || tracks.isEmpty) return null;
|
||||
if (tracks == null || tracks is! List || tracks.isEmpty) return null;
|
||||
|
||||
// Simple "best match" - first track
|
||||
final track = tracks.firstWhere((t) => true, orElse: () => null);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:groovybox/logic/audio_handler.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
|
||||
@@ -304,6 +304,7 @@ class LibraryScreen extends HookConsumerWidget {
|
||||
}
|
||||
|
||||
// Import lyrics if any
|
||||
if (!context.mounted) return;
|
||||
if (lyricsPaths.isNotEmpty) {
|
||||
await _batchImportLyricsFromPaths(
|
||||
context,
|
||||
@@ -366,10 +367,12 @@ class LibraryScreen extends HookConsumerWidget {
|
||||
final query = searchQuery.value.toLowerCase();
|
||||
filteredTracks = tracks.where((track) {
|
||||
if (track.title.toLowerCase().contains(query)) return true;
|
||||
if (track.artist?.toLowerCase().contains(query) ?? false)
|
||||
if (track.artist?.toLowerCase().contains(query) ?? false) {
|
||||
return true;
|
||||
if (track.album?.toLowerCase().contains(query) ?? false)
|
||||
}
|
||||
if (track.album?.toLowerCase().contains(query) ?? false) {
|
||||
return true;
|
||||
}
|
||||
if (track.lyrics != null) {
|
||||
try {
|
||||
final lyricsData = LyricsData.fromJsonString(track.lyrics!);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user