diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java index 9b056315..a00aeba5 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java @@ -992,6 +992,7 @@ public class PlayerFragment extends Fragment implements GestureDetector.OnGestur currentSong.setStarred(true); } + // Code is duplicated with MediaPlayerController:457 FIXME: There should be a better way new Thread(new Runnable() { @Override public void run() { diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerController.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerController.kt index cd0f16c6..9ef5d9d2 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerController.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerController.kt @@ -454,6 +454,19 @@ class MediaPlayerController( if (localMediaPlayer.currentPlaying == null) return val song = localMediaPlayer.currentPlaying!!.song + Thread { + val musicService = getMusicService() + try { + if (song.starred) { + musicService.unstar(song.id, null, null) + } else { + musicService.star(song.id, null, null) + } + } catch (e: java.lang.Exception) { + Timber.e(e) + } + }.start() + // Trigger an update localMediaPlayer.setCurrentPlaying(localMediaPlayer.currentPlaying) song.starred = !song.starred