@@ -11,12 +11,24 @@ import 'package:namida/core/utils.dart';
1111class LibraryGroup <T extends Track > {
1212 bool didFill = false ;
1313
14+ void updateFrom (LibraryGroup other) {
15+ mainMapAlbums.update (other.mainMapAlbums);
16+ mainMapArtists.update (other.mainMapArtists);
17+ mainMapAlbumArtists.update (other.mainMapAlbumArtists);
18+ mainMapComposer.update (other.mainMapComposer);
19+ mainMapGenres.update (other.mainMapGenres);
20+ mainMapFoldersTracksAndVideos.value = other.mainMapFoldersTracksAndVideos.value as Map <Folder , List <T >>;
21+ mainMapFoldersTracks.value = other.mainMapFoldersTracks.value as Map <Folder , List <T >>;
22+ mainMapFoldersVideos.value = other.mainMapFoldersVideos.value;
23+ }
24+
1425 final mainMapAlbums = LibraryItemMap ();
1526 final mainMapArtists = LibraryItemMap ();
1627 final mainMapAlbumArtists = LibraryItemMap ();
1728 final mainMapComposer = LibraryItemMap ();
1829 final mainMapGenres = LibraryItemMap ();
19- final mainMapFolders = < Folder , List <T >> {}.obs;
30+ final mainMapFoldersTracksAndVideos = < Folder , List <T >> {}.obs;
31+ final mainMapFoldersTracks = < Folder , List <T >> {}.obs;
2032 final mainMapFoldersVideos = < VideoFolder , List <Video >> {}.obs;
2133
2234 void fillAll (List <T > allTracks, TrackExtended Function (T tr) trackToExtended, List <AlbumIdentifier > albumIdentifier) {
@@ -25,15 +37,17 @@ class LibraryGroup<T extends Track> {
2537 final mainMapAlbumArtists = this .mainMapAlbumArtists.value;
2638 final mainMapComposer = this .mainMapComposer.value;
2739 final mainMapGenres = this .mainMapGenres.value;
28- final mainMapFolders = this .mainMapFolders.value;
40+ final mainMapFoldersTracksAndVideos = this .mainMapFoldersTracksAndVideos.value;
41+ final mainMapFoldersTracks = this .mainMapFoldersTracks.value;
2942 final mainMapFoldersVideos = this .mainMapFoldersVideos.value;
3043
3144 mainMapAlbums.clear ();
3245 mainMapArtists.clear ();
3346 mainMapAlbumArtists.clear ();
3447 mainMapComposer.clear ();
3548 mainMapGenres.clear ();
36- mainMapFolders.clear ();
49+ mainMapFoldersTracksAndVideos.clear ();
50+ mainMapFoldersTracks.clear ();
3751 mainMapFoldersVideos.clear ();
3852
3953 allTracks.loop (
@@ -60,7 +74,8 @@ class LibraryGroup<T extends Track> {
6074 });
6175
6276 // -- Assigning Folders
63- tr is Video ? mainMapFoldersVideos.addForce (tr.folder, tr) : mainMapFolders.addForce (tr.folder, tr);
77+ tr is Video ? mainMapFoldersVideos.addForce (tr.folder, tr) : mainMapFoldersTracks.addForce (tr.folder, tr);
78+ mainMapFoldersTracksAndVideos.addForce (tr.folder, tr);
6479 },
6580 );
6681
@@ -73,7 +88,8 @@ class LibraryGroup<T extends Track> {
7388 this .mainMapAlbumArtists.refresh ();
7489 this .mainMapComposer.refresh ();
7590 this .mainMapGenres.refresh ();
76- this .mainMapFolders.refresh ();
91+ this .mainMapFoldersTracksAndVideos.refresh ();
92+ this .mainMapFoldersTracks.refresh ();
7793 this .mainMapFoldersVideos.refresh ();
7894 }
7995
@@ -142,9 +158,10 @@ class LibraryGroup<T extends Track> {
142158 MediaType .albumArtist => mainMapAlbumArtists.value.values as Iterable <List <T >>,
143159 MediaType .composer => mainMapComposer.value.values as Iterable <List <T >>,
144160 MediaType .genre => mainMapGenres.value.values as Iterable <List <T >>,
145- MediaType .folder => mainMapFolders.values,
161+ MediaType .folder => mainMapFoldersTracksAndVideos.values,
162+ MediaType .folderMusic => mainMapFoldersTracks.values,
146163 MediaType .folderVideo => mainMapFoldersVideos.values as Iterable <List <T >>,
147- _ => null ,
164+ MediaType .playlist => null ,
148165 };
149166 }
150167}
0 commit comments