fix: refactor start queue to put the db writing in the background

This commit is contained in:
eddyizm 2025-11-24 20:46:46 -08:00
parent 79dc1cc93b
commit 1bfadb0669
No known key found for this signature in database
GPG key ID: CF5F671829E8158A

View file

@ -1,14 +1,13 @@
package com.cappielloantonio.tempo.service;
import android.content.ComponentName;
import android.util.Log;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.OptIn;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import androidx.media3.common.MediaItem;
@ -188,14 +187,12 @@ public class MediaManager {
try {
if (mediaBrowserListenableFuture.isDone()) {
final MediaBrowser browser = mediaBrowserListenableFuture.get();
backgroundExecutor.execute(() -> {
final List<MediaItem> items = MappingUtil.mapMediaItems(media);
enqueueDatabase(media, true, 0);
new Handler(Looper.getMainLooper()).post(() -> {
justStarted.set(true);
browser.setMediaItems(items, startIndex, 0);
browser.prepare();
Player.Listener timelineListener = new Player.Listener() {
@Override
public void onTimelineChanged(Timeline timeline, int reason) {
@ -209,6 +206,9 @@ public class MediaManager {
};
browser.addListener(timelineListener);
});
backgroundExecutor.execute(() -> {
enqueueDatabase(media, true, 0);
});
}
} catch (ExecutionException | InterruptedException e) {