diff --git a/lib/injection_container.dart b/lib/injection_container.dart index bb057e6..2762cb6 100644 --- a/lib/injection_container.dart +++ b/lib/injection_container.dart @@ -30,6 +30,7 @@ Future setupGetIt() async { final musicDataStore = MusicDataStore( musicDataRepository: getIt(), ); + musicDataStore.init(); return musicDataStore; }, ); diff --git a/lib/presentation/state/music_data_store.dart b/lib/presentation/state/music_data_store.dart index 9288e12..71daa95 100644 --- a/lib/presentation/state/music_data_store.dart +++ b/lib/presentation/state/music_data_store.dart @@ -14,14 +14,12 @@ class MusicDataStore extends _MusicDataStore with _$MusicDataStore { } abstract class _MusicDataStore with Store { - _MusicDataStore(this._musicDataRepository) { - fetchArtists(); - fetchAlbums(); - fetchSongs(); - } + _MusicDataStore(this._musicDataRepository); final MusicDataRepository _musicDataRepository; + bool _initialized = false; + @observable ObservableList artists = [].asObservable(); @observable @@ -43,6 +41,15 @@ abstract class _MusicDataStore with Store { @observable ObservableList albumSongs = [].asObservable(); + void init() { + if (!_initialized) { + fetchArtists(); + fetchAlbums(); + fetchSongs(); + } + _initialized = true; + } + @action Future updateDatabase() async { isUpdatingDatabase = true; diff --git a/test/system/models/song_model_test.dart b/test/system/models/song_model_test.dart index d5d5a13..2eb6fd9 100644 --- a/test/system/models/song_model_test.dart +++ b/test/system/models/song_model_test.dart @@ -79,17 +79,17 @@ void main() { 'should return valid MediaItem', () async { // arrange - const expected = MediaItem( + final expected = MediaItem( id: PATH_3, title: SONG_TITLE_3, album: ALBUM_TITLE_3, artist: ARTIST_3, - duration: Duration(milliseconds: DURATION_3), + duration: const Duration(milliseconds: DURATION_3), artUri: 'file://$ALBUM_ART_PATH_3', extras: { 'albumId': ALBUM_ID_3, + 'blocked': BLOCKED_3.toString(), 'trackNumber': TRACKNUMBER_3, - 'blocked': BLOCKED_3 }); const songModel = SongModel(