Init media3 queue on startup

This commit is contained in:
CappielloAntonio 2021-12-30 19:31:13 +01:00
parent 60b741bc11
commit 9328ec87ab
2 changed files with 86 additions and 51 deletions

View file

@ -18,6 +18,41 @@ import java.util.concurrent.ExecutionException;
public class MediaManager {
private static final String TAG = "MediaManager";
public static void check(ListenableFuture<MediaBrowser> mediaBrowserListenableFuture, Context context) {
if (mediaBrowserListenableFuture != null) {
mediaBrowserListenableFuture.addListener(() -> {
try {
if (mediaBrowserListenableFuture.isDone()) {
if (mediaBrowserListenableFuture.get().getMediaItemCount() < 1) {
List<Song> songs = getQueueRepository().getSongs();
if (songs.size() >= 1) {
init(mediaBrowserListenableFuture, context, songs);
}
}
}
} catch (ExecutionException | InterruptedException e) {
Log.e(TAG, e.getMessage());
}
}, MoreExecutors.directExecutor());
}
}
public static void init(ListenableFuture<MediaBrowser> mediaBrowserListenableFuture, Context context, List<Song> songs) {
if (mediaBrowserListenableFuture != null) {
mediaBrowserListenableFuture.addListener(() -> {
try {
if (mediaBrowserListenableFuture.isDone()) {
mediaBrowserListenableFuture.get().clearMediaItems();
mediaBrowserListenableFuture.get().setMediaItems(MappingUtil.mapMediaItems(context, songs));
mediaBrowserListenableFuture.get().prepare();
}
} catch (ExecutionException | InterruptedException e) {
Log.e(TAG, e.getMessage());
}
}, MoreExecutors.directExecutor());
}
}
public static void prepare(ListenableFuture<MediaBrowser> mediaBrowserListenableFuture) {
if (mediaBrowserListenableFuture != null) {
mediaBrowserListenableFuture.addListener(() -> {