diff --git a/lib/presentation/widgets/audio_service_widget.dart b/lib/presentation/widgets/audio_service_widget.dart index cbdf415..fe5e311 100644 --- a/lib/presentation/widgets/audio_service_widget.dart +++ b/lib/presentation/widgets/audio_service_widget.dart @@ -1,6 +1,8 @@ import 'package:audio_service/audio_service.dart'; import 'package:flutter/material.dart'; +import '../../system/datasources/audio_player_task.dart'; + class AudioServiceWidget extends StatefulWidget { const AudioServiceWidget({@required this.child}); @@ -31,9 +33,12 @@ class _AudioServiceWidgetState extends State void didChangeAppLifecycleState(AppLifecycleState state) { switch (state) { case AppLifecycleState.resumed: + print('AppLifecycleState.resumed'); AudioService.connect(); + AudioService.customAction(APP_LIFECYCLE_RESUMED); break; case AppLifecycleState.paused: + print('AppLifecycleState.paused'); AudioService.disconnect(); break; default: diff --git a/lib/system/datasources/audio_player_task.dart b/lib/system/datasources/audio_player_task.dart index 6b3447a..bfd657d 100644 --- a/lib/system/datasources/audio_player_task.dart +++ b/lib/system/datasources/audio_player_task.dart @@ -10,6 +10,7 @@ import 'moor_music_data_source.dart'; const String INIT = 'INIT'; const String PLAY_WITH_CONTEXT = 'PLAY_WITH_CONTEXT'; +const String APP_LIFECYCLE_RESUMED = 'APP_LIFECYCLE_RESUMED'; const String KEY_INDEX = 'INDEX'; @@ -112,6 +113,8 @@ class AudioPlayerTask extends BackgroundAudioTask { final _context = List.from(args[0] as List); final index = args[1] as int; return _playWithContext(_context, index); + case APP_LIFECYCLE_RESUMED: + return _onAppLifecycleResumed(); default: } } @@ -136,6 +139,11 @@ class AudioPlayerTask extends BackgroundAudioTask { _startPlayback(index); } + Future _onAppLifecycleResumed() async { + playbackIndex = playbackIndex; + // AudioServiceBackground.setQueue(_playbackContext); + } + // TODO: test // TODO: optimize -> too slow for whole library Future> _getMediaItemsFromPaths(List paths) async { diff --git a/lib/system/datasources/local_music_fetcher.dart b/lib/system/datasources/local_music_fetcher.dart index adaff86..094b836 100644 --- a/lib/system/datasources/local_music_fetcher.dart +++ b/lib/system/datasources/local_music_fetcher.dart @@ -16,6 +16,7 @@ class LocalMusicFetcherImpl implements LocalMusicFetcher { await flutterAudioQuery.getArtists(); return artistInfoList .map((ArtistInfo artistInfo) => ArtistModel.fromArtistInfo(artistInfo)) + .toSet() .toList(); } diff --git a/lib/system/models/album_model.dart b/lib/system/models/album_model.dart index 2c3e4c6..65b988b 100644 --- a/lib/system/models/album_model.dart +++ b/lib/system/models/album_model.dart @@ -41,6 +41,11 @@ class AlbumModel extends Album { final int id; + @override + String toString() { + return '$title'; + } + AlbumsCompanion toAlbumsCompanion() => AlbumsCompanion( title: Value(title), artist: Value(artist), diff --git a/lib/system/models/artist_model.dart b/lib/system/models/artist_model.dart index 33ca0f9..6ff0b9e 100644 --- a/lib/system/models/artist_model.dart +++ b/lib/system/models/artist_model.dart @@ -22,6 +22,11 @@ class ArtistModel extends Artist { ); } + @override + String toString() { + return name; + } + ArtistsCompanion toArtistsCompanion() => ArtistsCompanion( name: Value(name), );