From 13573882a1ad7f264b33db4a55d02dfa5f51f40d Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Sat, 30 Oct 2021 09:59:52 +0530 Subject: [PATCH] Code Cleanup crossfade --- .../monkey/retromusic/activities/MainActivity.kt | 2 +- .../monkey/retromusic/service/CrossFadePlayer.kt | 14 +++++++++----- .../monkey/retromusic/service/MultiPlayer.java | 3 +++ .../monkey/retromusic/service/MusicService.java | 2 ++ .../monkey/retromusic/service/playback/Playback.kt | 2 ++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt index 8b9b8c07..74773580 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt @@ -147,7 +147,7 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener { } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { - if (key == GENERAL_THEME || key == BLACK_THEME || key == ADAPTIVE_COLOR_APP || key == USER_NAME || key == TOGGLE_FULL_SCREEN || key == TOGGLE_VOLUME || key == ROUND_CORNERS || key == CAROUSEL_EFFECT || key == NOW_PLAYING_SCREEN_ID || key == TOGGLE_GENRE || key == BANNER_IMAGE_PATH || key == PROFILE_IMAGE_PATH || key == CIRCULAR_ALBUM_ART || key == KEEP_SCREEN_ON || key == TOGGLE_SEPARATE_LINE || key == TOGGLE_HOME_BANNER || key == TOGGLE_ADD_CONTROLS || key == ALBUM_COVER_STYLE || key == HOME_ARTIST_GRID_STYLE || key == ALBUM_COVER_TRANSFORM || key == DESATURATED_COLOR || key == EXTRA_SONG_INFO || key == TAB_TEXT_MODE || key == LANGUAGE_NAME || key == LIBRARY_CATEGORIES) { + if (key == GENERAL_THEME || key == MATERIAL_YOU || key == BLACK_THEME || key == ADAPTIVE_COLOR_APP || key == USER_NAME || key == TOGGLE_FULL_SCREEN || key == TOGGLE_VOLUME || key == ROUND_CORNERS || key == CAROUSEL_EFFECT || key == NOW_PLAYING_SCREEN_ID || key == TOGGLE_GENRE || key == BANNER_IMAGE_PATH || key == PROFILE_IMAGE_PATH || key == CIRCULAR_ALBUM_ART || key == KEEP_SCREEN_ON || key == TOGGLE_SEPARATE_LINE || key == TOGGLE_HOME_BANNER || key == TOGGLE_ADD_CONTROLS || key == ALBUM_COVER_STYLE || key == HOME_ARTIST_GRID_STYLE || key == ALBUM_COVER_TRANSFORM || key == DESATURATED_COLOR || key == EXTRA_SONG_INFO || key == TAB_TEXT_MODE || key == LANGUAGE_NAME || key == LIBRARY_CATEGORIES) { postRecreate() } } diff --git a/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt b/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt index 1a77c293..27eb8676 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt @@ -40,6 +40,7 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion private var fadeInAnimator: Animator? = null private var fadeOutAnimator: Animator? = null private var callbacks: PlaybackCallbacks? = null + private var crossFadeDuration = PreferenceUtil.crossFadeDuration init { player1.setWakeMode(context, PowerManager.PARTIAL_WAKE_LOCK) @@ -120,7 +121,7 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion // This has to run when queue is changed or song is changed manually by user fun sourceChangedByUser() { - this.hasDataSource = false + hasDataSource = false cancelFade() getCurrentPlayer()?.apply { if (isPlaying) stop() @@ -304,7 +305,7 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion NOT_SET } - inner class DurationListener : CoroutineScope by CrossFadeScope() { + inner class DurationListener : CoroutineScope by crossFadeScope() { private var job: Job? = null @@ -325,9 +326,8 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion fun onDurationUpdated(progress: Int, total: Int) { - if (total > 0 && (total - progress).div(1000) == PreferenceUtil.crossFadeDuration) { + if (total > 0 && (total - progress).div(1000) == crossFadeDuration) { getNextPlayer()?.let { player -> - durationListener.stop() val nextSong = MusicPlayerRemote.nextSong if (nextSong != null) { setDataSourceImpl(player, MusicUtil.getSongFileUri(nextSong.id).toString()) @@ -350,6 +350,10 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion } callbacks?.onTrackEndedWithCrossfade() } + + override fun setCrossFadeDuration(duration: Int) { + crossFadeDuration = duration + } } -internal fun CrossFadeScope(): CoroutineScope = CoroutineScope(Job() + Dispatchers.Main) \ No newline at end of file +internal fun crossFadeScope(): CoroutineScope = CoroutineScope(Job() + Dispatchers.Main) \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.java b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.java index 4f59ab20..f8e89f11 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.java +++ b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.java @@ -322,4 +322,7 @@ public class MultiPlayer if (callbacks != null) callbacks.onTrackEnded(); } } + + @Override + public void setCrossFadeDuration(int duration) { } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java index 04dc6d8b..e0e5c95d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java @@ -882,6 +882,8 @@ public class MusicService extends MediaBrowserServiceCompat boolean wasPlaying = isPlaying(); /* Switch to MultiPlayer if Crossfade duration is 0 and Playback is not an instance of MultiPlayer */ + if (playback != null) + playback.setCrossFadeDuration(PreferenceUtil.INSTANCE.getCrossFadeDuration()); if (!(playback instanceof MultiPlayer) && PreferenceUtil.INSTANCE.getCrossFadeDuration() == 0) { if (playback != null) { playback.release(); diff --git a/app/src/main/java/code/name/monkey/retromusic/service/playback/Playback.kt b/app/src/main/java/code/name/monkey/retromusic/service/playback/Playback.kt index 7dbf931f..08c81bb0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/playback/Playback.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/playback/Playback.kt @@ -47,6 +47,8 @@ interface Playback { fun setAudioSessionId(sessionId: Int): Boolean + fun setCrossFadeDuration(duration: Int) + interface PlaybackCallbacks { fun onTrackWentToNext()