diff --git a/lib/localization/app_ar.arb b/lib/localization/app_ar.arb index 2ce98f03..cb8fc24c 100644 --- a/lib/localization/app_ar.arb +++ b/lib/localization/app_ar.arb @@ -44,6 +44,7 @@ "customPlaylistName": "اسم قائمة التشغيل الخاصة", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_de.arb b/lib/localization/app_de.arb index a1f08bea..59a2d059 100644 --- a/lib/localization/app_de.arb +++ b/lib/localization/app_de.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Name der benutzerdefinierten Playlist", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_el.arb b/lib/localization/app_el.arb index 9267c901..37ca87da 100644 --- a/lib/localization/app_el.arb +++ b/lib/localization/app_el.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Όνομα προσαρμοσμένης λίστας αναπαραγωγής", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_en.arb b/lib/localization/app_en.arb index 1141c83d..adc59282 100644 --- a/lib/localization/app_en.arb +++ b/lib/localization/app_en.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Custom playlist name", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_es.arb b/lib/localization/app_es.arb index d16a92f1..32c2396f 100644 --- a/lib/localization/app_es.arb +++ b/lib/localization/app_es.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Nombre personalizado de la lista de reproducción", "customPlaylists": "Listas de reproducción personalizadas", "dateAdded": "Date Added", + "default_": "Default", "delete": "Eliminar", "deleteFolder": "Eliminar carpeta", "deleteFolderQuestion": "¿Estás seguro de que deseas eliminar esta carpeta? Las listas de reproducción que contiene se moverán a la biblioteca principal.", diff --git a/lib/localization/app_et.arb b/lib/localization/app_et.arb index 37476d5b..b3f915ed 100644 --- a/lib/localization/app_et.arb +++ b/lib/localization/app_et.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Kohandatud nimekirja nimi", "customPlaylists": "Kohandatud nimekirjad", "dateAdded": "Date Added", + "default_": "Default", "delete": "Kustuta", "deleteFolder": "Kustuta kaust", "deleteFolderQuestion": "Kas olete kindel, et soovite selle kausta kustutada? Kaustas olevad nimekirjad liigutatakse peamise teeki.", diff --git a/lib/localization/app_fr.arb b/lib/localization/app_fr.arb index 5d9bc981..e11ce71b 100644 --- a/lib/localization/app_fr.arb +++ b/lib/localization/app_fr.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Nom de la playlist personnalisée", "customPlaylists": "Playlists personnalisées", "dateAdded": "Date Added", + "default_": "Default", "delete": "Supprimer", "deleteFolder": "Supprimer le dossier", "deleteFolderQuestion": "Êtes-vous sûr de vouloir supprimer ce dossier ? Les playlists qu'il contient seront déplacées vers la bibliothèque principale.", diff --git a/lib/localization/app_he.arb b/lib/localization/app_he.arb index 68569f78..a1b8b0b7 100644 --- a/lib/localization/app_he.arb +++ b/lib/localization/app_he.arb @@ -44,6 +44,7 @@ "customPlaylistName": "שם רשימת השמעה מותאם אישית", "customPlaylists": "רשימות השמעה מותאמות אישית", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_hi.arb b/lib/localization/app_hi.arb index 478bd75f..3d4d93c9 100644 --- a/lib/localization/app_hi.arb +++ b/lib/localization/app_hi.arb @@ -44,6 +44,7 @@ "customPlaylistName": "कस्टम प्लेलिस्ट नाम", "customPlaylists": "कस्टम प्लेलिस्ट", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_hu.arb b/lib/localization/app_hu.arb index d128f7a6..899d2a17 100644 --- a/lib/localization/app_hu.arb +++ b/lib/localization/app_hu.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Saját lejátszási lista neve", "customPlaylists": "Saját lejátszási listák", "dateAdded": "Date Added", + "default_": "Default", "delete": "Törlés", "deleteFolder": "Mappa törlése", "deleteFolderQuestion": "Biztos törölni akarod a mappát? A benne lévő lejátszási listák átkerülnek a fő könyvtárba.", diff --git a/lib/localization/app_id.arb b/lib/localization/app_id.arb index 7d492e26..dd934e1d 100644 --- a/lib/localization/app_id.arb +++ b/lib/localization/app_id.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Nama playlist khusus", "customPlaylists": "Playlist khusus", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_it.arb b/lib/localization/app_it.arb index 1b5744ff..c46dc0c5 100644 --- a/lib/localization/app_it.arb +++ b/lib/localization/app_it.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Nome playlist personalizzata", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_ja.arb b/lib/localization/app_ja.arb index 8145cf6f..9325f596 100644 --- a/lib/localization/app_ja.arb +++ b/lib/localization/app_ja.arb @@ -44,6 +44,7 @@ "customPlaylistName": "リスト名の指定", "customPlaylists": "あなたの再生リスト", "dateAdded": "Date Added", + "default_": "Default", "delete": "削除", "deleteFolder": "フォルダーを削除", "deleteFolderQuestion": "このフォルダーを削除しますか? 中身の再生リストは、メインのライブラリに移動されます。", diff --git a/lib/localization/app_ko.arb b/lib/localization/app_ko.arb index 63cb7abe..8e0c1884 100644 --- a/lib/localization/app_ko.arb +++ b/lib/localization/app_ko.arb @@ -44,6 +44,7 @@ "customPlaylistName": "커스텀 재생목록 이름", "customPlaylists": "커스텀 재생목록", "dateAdded": "Date Added", + "default_": "Default", "delete": "삭제", "deleteFolder": "폴더 삭제", "deleteFolderQuestion": "이 폴더를 삭제할까요? 폴더 안의 재생목록이 기본 라이브러리로 이동합니다.", diff --git a/lib/localization/app_pl.arb b/lib/localization/app_pl.arb index 8a2f50dc..6f9e4ecb 100644 --- a/lib/localization/app_pl.arb +++ b/lib/localization/app_pl.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Własna nazwa playlisty", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_pt.arb b/lib/localization/app_pt.arb index 3827d562..7d3120be 100644 --- a/lib/localization/app_pt.arb +++ b/lib/localization/app_pt.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Nome da playlist", "customPlaylists": "Playlists personalizadas", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_ru.arb b/lib/localization/app_ru.arb index efb5a5c0..23741a09 100644 --- a/lib/localization/app_ru.arb +++ b/lib/localization/app_ru.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Название плейлиста", "customPlaylists": "Плейлисты", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_sv.arb b/lib/localization/app_sv.arb index 3dbfb889..4efb3fb8 100644 --- a/lib/localization/app_sv.arb +++ b/lib/localization/app_sv.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Anpassat spellistsnamn", "customPlaylists": "Anpassade spellistor", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_tr.arb b/lib/localization/app_tr.arb index dce5dd46..6f8d2be6 100644 --- a/lib/localization/app_tr.arb +++ b/lib/localization/app_tr.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Çalma Listesi İsmi", "customPlaylists": "Kişisel Çalma Listeleri", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_uk.arb b/lib/localization/app_uk.arb index 16db5c2c..0d0ca8f6 100644 --- a/lib/localization/app_uk.arb +++ b/lib/localization/app_uk.arb @@ -44,6 +44,7 @@ "customPlaylistName": "Назва власного плейлиста", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_zh-Hant.arb b/lib/localization/app_zh-Hant.arb index 542f9287..b5920468 100644 --- a/lib/localization/app_zh-Hant.arb +++ b/lib/localization/app_zh-Hant.arb @@ -44,6 +44,7 @@ "customPlaylistName": "新建播放列表名稱", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/localization/app_zh.arb b/lib/localization/app_zh.arb index 44d30671..28571a30 100644 --- a/lib/localization/app_zh.arb +++ b/lib/localization/app_zh.arb @@ -44,6 +44,7 @@ "customPlaylistName": "新建播放列表名称", "customPlaylists": "Custom playlists", "dateAdded": "Date Added", + "default_": "Default", "delete": "Delete", "deleteFolder": "Delete folder", "deleteFolderQuestion": "Are you sure you want to delete this folder? Playlists inside will be moved to the main library.", diff --git a/lib/screens/playlist_page.dart b/lib/screens/playlist_page.dart index 4b6f2d14..2237f2d1 100644 --- a/lib/screens/playlist_page.dart +++ b/lib/screens/playlist_page.dart @@ -43,7 +43,7 @@ import 'package:musify/widgets/song_bar.dart'; import 'package:musify/widgets/sort_button.dart'; import 'package:musify/widgets/spinner.dart'; -enum PlaylistSortType { title, artist } +enum PlaylistSortType { default_, title, artist } class PlaylistPage extends StatefulWidget { const PlaylistPage({ @@ -77,7 +77,7 @@ class _PlaylistPageState extends State { // Sorting late PlaylistSortType _sortType = PlaylistSortType.values.firstWhere( (e) => e.name == playlistSortSetting, - orElse: () => PlaylistSortType.title, + orElse: () => PlaylistSortType.default_, ); @override @@ -558,6 +558,8 @@ class _PlaylistPageState extends State { String _getSortTypeDisplayText(PlaylistSortType type) { switch (type) { + case PlaylistSortType.default_: + return context.l10n!.default_; case PlaylistSortType.title: return context.l10n!.name; case PlaylistSortType.artist: @@ -587,10 +589,23 @@ class _PlaylistPageState extends State { void _sortPlaylist(PlaylistSortType type) { if (_playlist == null || _playlist['list'] == null) return; - final playlist = _playlist['list'] as List; - final sortKey = type == PlaylistSortType.title ? 'title' : 'artist'; + // Skip sorting if using default order + if (type == PlaylistSortType.default_) return; + + final playlist = _playlist['list'] as List; + + switch (type) { + case PlaylistSortType.default_: + // Should not reach here due to early return above + break; + case PlaylistSortType.title: + sortSongsByKey(playlist, 'title'); + break; + case PlaylistSortType.artist: + sortSongsByKey(playlist, 'artist'); + break; + } - sortSongsByKey(playlist, sortKey); _playlist['list'] = playlist; } diff --git a/lib/screens/user_songs_page.dart b/lib/screens/user_songs_page.dart index 8dcfbf6c..abfc5c7e 100644 --- a/lib/screens/user_songs_page.dart +++ b/lib/screens/user_songs_page.dart @@ -32,7 +32,7 @@ import 'package:musify/widgets/playlist_header.dart'; import 'package:musify/widgets/song_bar.dart'; import 'package:musify/widgets/sort_button.dart'; -enum OfflineSortType { title, artist, dateAdded } +enum OfflineSortType { default_, title, artist, dateAdded } class UserSongsPage extends StatefulWidget { const UserSongsPage({super.key, required this.page}); @@ -88,7 +88,7 @@ class _UserSongsPageState extends State { OfflineSortType _getCurrentOfflineSortType() { return OfflineSortType.values.firstWhere( (e) => e.name == offlineSortSetting, - orElse: () => OfflineSortType.title, + orElse: () => OfflineSortType.default_, ); } @@ -283,6 +283,7 @@ class _UserSongsPageState extends State { String _getSortTypeDisplayText(OfflineSortType type) { return switch (type) { + OfflineSortType.default_ => context.l10n!.default_, OfflineSortType.title => context.l10n!.name, OfflineSortType.artist => context.l10n!.artist, OfflineSortType.dateAdded => context.l10n!.dateAdded, @@ -290,7 +291,13 @@ class _UserSongsPageState extends State { } void _sortOfflineSongs(OfflineSortType type) { + // Skip sorting and saving if using default order + if (type == OfflineSortType.default_) return; + switch (type) { + case OfflineSortType.default_: + // Should not reach here due to early return above + break; case OfflineSortType.title: userOfflineSongs.sort((a, b) { final titleA = (a['title'] ?? '').toString().toLowerCase(); diff --git a/lib/services/settings_manager.dart b/lib/services/settings_manager.dart index 95924114..44a7f11e 100644 --- a/lib/services/settings_manager.dart +++ b/lib/services/settings_manager.dart @@ -81,11 +81,11 @@ final themeModeSetting = String playlistSortSetting = Hive.box( 'settings', -).get('playlistSortType', defaultValue: PlaylistSortType.title.name); +).get('playlistSortType', defaultValue: PlaylistSortType.default_.name); String offlineSortSetting = Hive.box( 'settings', -).get('offlineSortType', defaultValue: OfflineSortType.title.name); +).get('offlineSortType', defaultValue: OfflineSortType.default_.name); Color primaryColorSetting = Color( Hive.box('settings').get('accentColor', defaultValue: 0xff91cef4),