mirror of
https://github.com/antebudimir/tempus.git
synced 2026-04-15 16:27:26 +00:00
wip: added logging to media manager to track down bug in bottom sheet dialogs
This commit is contained in:
parent
8c5390bfef
commit
f39891dd2c
3 changed files with 91 additions and 37 deletions
|
|
@ -184,41 +184,57 @@ public class MediaManager {
|
|||
@OptIn(markerClass = UnstableApi.class)
|
||||
public static void startQueue(ListenableFuture<MediaBrowser> mediaBrowserListenableFuture, List<Child> media, int startIndex) {
|
||||
if (mediaBrowserListenableFuture != null) {
|
||||
Log.d(TAG, "startQueue called with " + (media != null ? media.size() : 0) + " songs");
|
||||
|
||||
mediaBrowserListenableFuture.addListener(() -> {
|
||||
try {
|
||||
if (mediaBrowserListenableFuture.isDone()) {
|
||||
Log.d(TAG, "MediaBrowser future is done");
|
||||
final MediaBrowser browser = mediaBrowserListenableFuture.get();
|
||||
Log.d(TAG, "Got MediaBrowser, connected: " + browser.isConnected());
|
||||
|
||||
final List<MediaItem> items = MappingUtil.mapMediaItems(media);
|
||||
Log.d(TAG, "Mapped " + items.size() + " media items");
|
||||
|
||||
new Handler(Looper.getMainLooper()).post(() -> {
|
||||
Log.d(TAG, "Setting " + items.size() + " media items at index " + startIndex);
|
||||
justStarted.set(true);
|
||||
browser.setMediaItems(items, startIndex, 0);
|
||||
browser.prepare();
|
||||
Log.d(TAG, "setMediaItems and prepare called");
|
||||
|
||||
Player.Listener timelineListener = new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, int reason) {
|
||||
Log.d(TAG, "onTimelineChanged: itemCount=" + browser.getMediaItemCount() + ", reason=" + reason);
|
||||
|
||||
int itemCount = browser.getMediaItemCount();
|
||||
if (itemCount > 0 && startIndex >= 0 && startIndex < itemCount) {
|
||||
Log.d(TAG, "Seeking to " + startIndex + " and playing");
|
||||
browser.seekTo(startIndex, 0);
|
||||
browser.play();
|
||||
browser.removeListener(this);
|
||||
Log.d(TAG, "Playback started");
|
||||
} else {
|
||||
Log.d(TAG, "Cannot start playback: itemCount=" + itemCount + ", startIndex=" + startIndex);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Log.d(TAG, "Adding timeline listener");
|
||||
browser.addListener(timelineListener);
|
||||
});
|
||||
|
||||
backgroundExecutor.execute(() -> {
|
||||
Log.d(TAG, "Background: enqueuing to database");
|
||||
enqueueDatabase(media, true, 0);
|
||||
});
|
||||
}
|
||||
} catch (ExecutionException | InterruptedException e) {
|
||||
Log.e(TAG, "Error executing startQueue logic: " + e.getMessage(), e);
|
||||
Log.e(TAG, "Error in startQueue: " + e.getMessage(), e);
|
||||
}
|
||||
}, MoreExecutors.directExecutor());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void startQueue(ListenableFuture<MediaBrowser> mediaBrowserListenableFuture, Child media) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue