mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-05 10:38:35 +02:00
fix(metadata): support extension custom search
This commit is contained in:
@@ -361,6 +361,20 @@ class SearchFilter {
|
||||
}
|
||||
}
|
||||
|
||||
String canonicalExtensionSearchFilterId(String value) {
|
||||
final normalized = value.trim().toLowerCase().replaceAll(
|
||||
RegExp(r'[^a-z0-9]+'),
|
||||
'',
|
||||
);
|
||||
return switch (normalized) {
|
||||
'track' || 'tracks' || 'song' || 'songs' || 'music' => 'track',
|
||||
'artist' || 'artists' => 'artist',
|
||||
'album' || 'albums' => 'album',
|
||||
'playlist' || 'playlists' => 'playlist',
|
||||
_ => normalized,
|
||||
};
|
||||
}
|
||||
|
||||
class SearchBehavior {
|
||||
final bool enabled;
|
||||
final String? placeholder;
|
||||
@@ -399,6 +413,23 @@ class SearchBehavior {
|
||||
);
|
||||
}
|
||||
|
||||
String? filterIdForKind(String kind) {
|
||||
final canonicalKind = canonicalExtensionSearchFilterId(kind);
|
||||
for (final filter in filters) {
|
||||
if (canonicalExtensionSearchFilterId(filter.id) == canonicalKind ||
|
||||
(filter.label != null &&
|
||||
canonicalExtensionSearchFilterId(filter.label!) ==
|
||||
canonicalKind) ||
|
||||
(filter.icon != null &&
|
||||
canonicalExtensionSearchFilterId(filter.icon!) ==
|
||||
canonicalKind)) {
|
||||
final id = filter.id.trim();
|
||||
if (id.isNotEmpty) return id;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
(double, double) getThumbnailSize({double defaultSize = 56}) {
|
||||
if (thumbnailWidth != null && thumbnailHeight != null) {
|
||||
return (thumbnailWidth!.toDouble(), thumbnailHeight!.toDouble());
|
||||
|
||||
Reference in New Issue
Block a user