feat: Store and retrieve replay and shuffle states in preferences

This commit is contained in:
le-firehawk 2025-06-29 19:13:31 +09:30
parent 9cf62c8c0c
commit 76dc8aef11
3 changed files with 48 additions and 0 deletions

View file

@ -112,6 +112,9 @@ public class PlayerBottomSheetFragment extends Fragment {
try {
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
mediaBrowser.setShuffleModeEnabled(Preferences.isShuffleModeEnabled());
mediaBrowser.setRepeatMode(Preferences.getRepeatMode());
setMediaControllerListener(mediaBrowser);
} catch (Exception e) {
e.printStackTrace();
@ -150,6 +153,16 @@ public class PlayerBottomSheetFragment extends Fragment {
public void onEvents(Player player, Player.Events events) {
setHeaderNextButtonState(mediaBrowser.hasNextMediaItem());
}
@Override
public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
Preferences.setShuffleModeEnabled(shuffleModeEnabled);
}
@Override
public void onRepeatModeChanged(int repeatMode) {
Preferences.setRepeatMode(repeatMode);
}
});
}

View file

@ -140,6 +140,8 @@ public class PlayerControllerFragment extends Fragment {
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
bind.nowPlayingMediaControllerView.setPlayer(mediaBrowser);
mediaBrowser.setShuffleModeEnabled(Preferences.isShuffleModeEnabled());
mediaBrowser.setRepeatMode(Preferences.getRepeatMode());
setMediaControllerListener(mediaBrowser);
} catch (Exception e) {
@ -160,6 +162,16 @@ public class PlayerControllerFragment extends Fragment {
setMetadata(mediaMetadata);
setMediaInfo(mediaMetadata);
}
@Override
public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
Preferences.setShuffleModeEnabled(shuffleModeEnabled);
}
@Override
public void onRepeatModeChanged(int repeatMode) {
Preferences.setRepeatMode(repeatMode);
}
});
}