wip: added logging to media manager to track down bug in bottom sheet dialogs

This commit is contained in:
eddyizm 2025-12-29 16:37:20 -08:00
parent 8c5390bfef
commit f39891dd2c
No known key found for this signature in database
GPG key ID: CF5F671829E8158A
3 changed files with 91 additions and 37 deletions

View file

@ -116,33 +116,47 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
favoriteToggle.setOnClickListener(v -> albumBottomSheetViewModel.setFavorite(requireContext()));
TextView playRadio = view.findViewById(R.id.play_radio_text_view);
playRadio.setOnClickListener(v -> {
AlbumRepository albumRepository = new AlbumRepository();
albumRepository.getInstantMix(album, 20, new MediaCallback() {
@Override
public void onError(Exception exception) {
exception.printStackTrace();
}
@Override
public void onLoadMedia(List<?> media) {
if (!isAdded() || getActivity() == null) {
return;
playRadio.setOnClickListener(v -> {
AlbumRepository albumRepository = new AlbumRepository();
albumRepository.getInstantMix(album, 20, new MediaCallback() {
@Override
public void onError(Exception exception) {
exception.printStackTrace();
}
MusicUtil.ratingFilter((ArrayList<Child>) media);
if (!media.isEmpty()) {
MediaManager.startQueue(mediaBrowserListenableFuture, (ArrayList<Child>) media, 0);
if (getActivity() instanceof MainActivity) {
((MainActivity) getActivity()).setBottomSheetInPeek(true);
@Override
public void onLoadMedia(List<?> media) {
if (!isAdded() || getActivity() == null) {
return;
}
}
dismissBottomSheet();
}
MusicUtil.ratingFilter((ArrayList<Child>) media);
if (!media.isEmpty()) {
MediaManager.startQueue(mediaBrowserListenableFuture, (ArrayList<Child>) media, 0);
if (getActivity() instanceof MainActivity) {
((MainActivity) getActivity()).setBottomSheetInPeek(true);
}
}
view.postDelayed(() -> {
try {
if (mediaBrowserListenableFuture.isDone()) {
MediaBrowser browser = mediaBrowserListenableFuture.get();
if (browser != null && browser.isPlaying()) {
dismissBottomSheet();
return;
}
}
} catch (Exception e) {
// Ignore
}
view.postDelayed(() -> dismissBottomSheet(), 200);
}, 300);
}
});
});
});
TextView playRandom = view.findViewById(R.id.play_random_text_view);
playRandom.setOnClickListener(v -> {
AlbumRepository albumRepository = new AlbumRepository();

View file

@ -2,11 +2,13 @@ package com.cappielloantonio.tempo.ui.fragment.bottomsheetdialog;
import android.content.ComponentName;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import androidx.annotation.Nullable;
@ -89,21 +91,43 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
TextView playRadio = view.findViewById(R.id.play_radio_text_view);
playRadio.setOnClickListener(v -> {
Log.d(TAG, "Artist instant mix clicked");
ArtistRepository artistRepository = new ArtistRepository();
Observer<List<Child>> observer = new Observer<List<Child>>() {
@Override
public void onChanged(List<Child> songs) {
if (songs != null && !songs.isEmpty() && isAdded()) {
MusicUtil.ratingFilter(songs);
MediaManager.startQueue(mediaBrowserListenableFuture, songs, 0);
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
artistRepository.getInstantMix(artist, 20).removeObserver(this);
artistRepository.getInstantMix(artist, 20)
.observe(getViewLifecycleOwner(), new androidx.lifecycle.Observer<List<Child>>() {
@Override
public void onChanged(List<Child> songs) {
if (songs != null && !songs.isEmpty()) {
Log.d(TAG, "Starting queue with " + songs.size() + " songs");
MusicUtil.ratingFilter(songs);
MediaManager.startQueue(mediaBrowserListenableFuture, songs, 0);
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
artistRepository.getInstantMix(artist, 20)
.removeObserver(this);
view.postDelayed(() -> {
try {
if (mediaBrowserListenableFuture.isDone()) {
MediaBrowser browser = mediaBrowserListenableFuture.get();
if (browser != null && browser.isPlaying()) {
dismissBottomSheet();
return;
}
}
} catch (Exception e) {
// Ignore
}
view.postDelayed(() -> dismissBottomSheet(), 200);
}, 300);
} else {
// No songs at all - all attempts failed
Toast.makeText(requireContext(),
"Could not load songs. Please check your connection.",
Toast.LENGTH_SHORT).show();
dismissBottomSheet();
}
}
};
artistRepository.getInstantMix(artist, 20).observe(getViewLifecycleOwner(), observer);
}
});
});
TextView playRandom = view.findViewById(R.id.play_random_text_view);