From 992e21e2978a3c9bf356728f68ed00d518ec9b43 Mon Sep 17 00:00:00 2001 From: zarzet <42882290+zarzet@users.noreply.github.com> Date: Sun, 18 Oct 2026 23:46:50 +0700 Subject: [PATCH] refactor(player): port tests to musicPlayerRuntime and delete the test-only wrappers The wrappers only forwarded to musicPlayerRuntime and were referenced by one test file. The forwarding helpers now live in that test. --- lib/services/music_player_autoplay.dart | 8 ----- lib/services/music_player_service.dart | 40 --------------------- test/music_player_automix_test.dart | 47 +++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 48 deletions(-) diff --git a/lib/services/music_player_autoplay.dart b/lib/services/music_player_autoplay.dart index 377bbe05..415c33d3 100644 --- a/lib/services/music_player_autoplay.dart +++ b/lib/services/music_player_autoplay.dart @@ -22,14 +22,6 @@ AutoplayLearningTrack _learningTrack(PlayableMedia media) => duration: media.duration, ); -void setAutoplayEnabled(bool enabled, {bool includeLocal = true}) => - musicPlayerRuntime.configure( - musicPlayerRuntime.settings.copyWith( - autoplay: enabled, - localLibraryEnabled: includeLocal, - ), - ); - /// Bounded database pages keep recommendation work independent of Library /// size. Both downloaded tracks and enabled scanned sources are local files. Future> _loadAutoplayLibrary( diff --git a/lib/services/music_player_service.dart b/lib/services/music_player_service.dart index e046f331..d8ed6301 100644 --- a/lib/services/music_player_service.dart +++ b/lib/services/music_player_service.dart @@ -30,7 +30,6 @@ import 'package:spotiflac_android/services/music_playback_deck.dart'; import 'package:spotiflac_android/services/automix_analysis.dart'; import 'package:spotiflac_android/services/autoplay_personalization.dart'; import 'package:spotiflac_android/services/automix_analyzer.dart'; -import 'package:spotiflac_android/models/automix_options.dart'; import 'package:spotiflac_android/models/settings.dart'; import 'package:spotiflac_android/services/automix_effect_renderer.dart'; import 'package:spotiflac_android/services/automix_status.dart'; @@ -50,50 +49,11 @@ part 'music_player_autoplay.dart'; final _log = AppLogger('MusicPlayer'); -void configurePlaybackNotification({ - required PlaybackNotification presentation, - required Future Function(MediaItem) toggleFavorite, -}) => musicPlayerRuntime.configureNotification( - presentation: presentation, - toggleFavorite: toggleFavorite, -); - /// Muted artwork shares the music session. Recover its Now Playing ownership /// after video initialization, including failed or abandoned initialization. Future restoreMusicAudioSessionAfterVideo() async => musicPlayerRuntime.handler?.restoreIosNowPlaying(); -void setPlaybackAutomationOptions({ - required bool enabled, - required bool pauseOnMute, - required bool playOnHeadphonesConnected, -}) => musicPlayerRuntime.configure( - musicPlayerRuntime.settings.copyWith( - playerMode: enabled ? 'internal' : 'external', - pauseOnMute: pauseOnMute, - playOnHeadphonesConnected: playOnHeadphonesConnected, - ), -); - -void setAutoMixEnabled(bool enabled) => musicPlayerRuntime.configure( - musicPlayerRuntime.settings.copyWith(autoMix: enabled), -); - -void setAutoMixOptions(AutoMixOptions options) => musicPlayerRuntime.configure( - musicPlayerRuntime.settings.copyWith( - autoMixDuration: options.durationSeconds, - autoMixEffect: options.effect, - autoMixSpeed: options.speed, - autoMixPitch: options.pitchSemitones, - autoMixEcho: options.echo, - autoMixLowPass: options.lowPass, - ), -); - -void setUsbBitPerfectEnabled(bool enabled) => musicPlayerRuntime.configure( - musicPlayerRuntime.settings.copyWith(usbBitPerfect: enabled), -); - /// Gain and rate the player applies to the current track. class PlaybackProcessing { const PlaybackProcessing({ diff --git a/test/music_player_automix_test.dart b/test/music_player_automix_test.dart index 94bc00df..aa88e3a9 100644 --- a/test/music_player_automix_test.dart +++ b/test/music_player_automix_test.dart @@ -227,6 +227,53 @@ Future _until(bool Function() ready) async { fail('Playback did not reach the expected state'); } +void configurePlaybackNotification({ + required PlaybackNotification presentation, + required Future Function(MediaItem) toggleFavorite, +}) => musicPlayerRuntime.configureNotification( + presentation: presentation, + toggleFavorite: toggleFavorite, +); + +void setPlaybackAutomationOptions({ + required bool enabled, + required bool pauseOnMute, + required bool playOnHeadphonesConnected, +}) => musicPlayerRuntime.configure( + musicPlayerRuntime.settings.copyWith( + playerMode: enabled ? 'internal' : 'external', + pauseOnMute: pauseOnMute, + playOnHeadphonesConnected: playOnHeadphonesConnected, + ), +); + +void setAutoMixEnabled(bool enabled) => musicPlayerRuntime.configure( + musicPlayerRuntime.settings.copyWith(autoMix: enabled), +); + +void setAutoMixOptions(AutoMixOptions options) => musicPlayerRuntime.configure( + musicPlayerRuntime.settings.copyWith( + autoMixDuration: options.durationSeconds, + autoMixEffect: options.effect, + autoMixSpeed: options.speed, + autoMixPitch: options.pitchSemitones, + autoMixEcho: options.echo, + autoMixLowPass: options.lowPass, + ), +); + +void setUsbBitPerfectEnabled(bool enabled) => musicPlayerRuntime.configure( + musicPlayerRuntime.settings.copyWith(usbBitPerfect: enabled), +); + +void setAutoplayEnabled(bool enabled, {bool includeLocal = true}) => + musicPlayerRuntime.configure( + musicPlayerRuntime.settings.copyWith( + autoplay: enabled, + localLibraryEnabled: includeLocal, + ), + ); + void main() { TestWidgetsFlutterBinding.ensureInitialized(); SharedPreferences.setMockInitialValues({});