Saved the playback position when the player is paused

This commit is contained in:
CappielloAntonio 2022-01-02 17:43:30 +01:00
parent e4d09f3bc0
commit 40866a2855
7 changed files with 101 additions and 13 deletions

View file

@ -62,7 +62,7 @@ public class MediaManager {
if (mediaBrowserListenableFuture.isDone()) {
mediaBrowserListenableFuture.get().clearMediaItems();
mediaBrowserListenableFuture.get().setMediaItems(MappingUtil.mapMediaItems(context, songs, true));
mediaBrowserListenableFuture.get().seekTo(getQueueRepository().getLastPlayedSongIndex(), 0);
mediaBrowserListenableFuture.get().seekTo(getQueueRepository().getLastPlayedSongIndex(), getQueueRepository().getLastPlayedSongTimestamp());
mediaBrowserListenableFuture.get().prepare();
}
} catch (ExecutionException | InterruptedException e) {
@ -268,7 +268,11 @@ public class MediaManager {
}
public static void setLastPlayedTimestamp(MediaItem mediaItem) {
if (mediaItem != null) getQueueRepository().setTimestamp(mediaItem.mediaId);
if (mediaItem != null) getQueueRepository().setLastPlayedTimestamp(mediaItem.mediaId);
}
public static void setPlayingChangedTimestamp(MediaItem mediaItem, long ms) {
if (mediaItem != null) getQueueRepository().setPlayingChangedTimestamp(mediaItem.mediaId, ms);
}
private static QueueRepository getQueueRepository() {

View file

@ -3,6 +3,7 @@ package com.cappielloantonio.play.service;
import android.annotation.SuppressLint;
import android.app.PendingIntent;
import android.content.Intent;
import android.util.Log;
import androidx.annotation.Nullable;
import androidx.media3.common.AudioAttributes;
@ -18,7 +19,6 @@ import androidx.media3.session.MediaSession;
import com.cappielloantonio.play.ui.activity.MainActivity;
import com.cappielloantonio.play.util.DownloadUtil;
import com.google.android.gms.cast.framework.CastContext;
public class MediaService extends MediaLibraryService {
private static final String TAG = "MediaService";
@ -98,6 +98,13 @@ public class MediaService extends MediaLibraryService {
public void onMediaItemTransition(@Nullable MediaItem mediaItem, int reason) {
MediaManager.setLastPlayedTimestamp(mediaItem);
}
@Override
public void onIsPlayingChanged(boolean isPlaying) {
if(isPlaying) {
MediaManager.setPlayingChangedTimestamp(player.getCurrentMediaItem(), player.getCurrentPosition());
}
}
});
}
}