From 20f5c8f295f51cc63a8ccecf90627322148c8fda Mon Sep 17 00:00:00 2001 From: observer Date: Mon, 26 May 2025 14:06:25 +0100 Subject: [PATCH 1/4] fetch 1000 songs in discovery by default --- .../com/cappielloantonio/tempo/viewmodel/HomeViewModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/HomeViewModel.java b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/HomeViewModel.java index a780d1cf..b646bcf1 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/HomeViewModel.java +++ b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/HomeViewModel.java @@ -94,7 +94,7 @@ public class HomeViewModel extends AndroidViewModel { } public LiveData> getRandomShuffleSample() { - return songRepository.getRandomSample(100, null, null); + return songRepository.getRandomSample(1000, null, null); } public LiveData> getChronologySample(LifecycleOwner owner) { From 8b731292a8478a3fcee448a29cf4dcd8e4d3798b Mon Sep 17 00:00:00 2001 From: observer Date: Mon, 26 May 2025 14:08:23 +0100 Subject: [PATCH 2/4] fetch thumbnails before loading full res image --- .../tempo/ui/adapter/PlayerSongQueueAdapter.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/PlayerSongQueueAdapter.java b/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/PlayerSongQueueAdapter.java index c7543f39..5747eab1 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/PlayerSongQueueAdapter.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/PlayerSongQueueAdapter.java @@ -1,5 +1,6 @@ package com.cappielloantonio.tempo.ui.adapter; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -10,6 +11,7 @@ import androidx.appcompat.content.res.AppCompatResources; import androidx.media3.session.MediaBrowser; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestBuilder; import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.ItemPlayerQueueSongBinding; import com.cappielloantonio.tempo.glide.CustomGlideRequest; @@ -46,7 +48,7 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter thumbnail = CustomGlideRequest.Builder + .from(holder.itemView.getContext(), song.getCoverArtId(), CustomGlideRequest.ResourceType.Song) + .build() + .sizeMultiplier(0.1f); + CustomGlideRequest.Builder .from(holder.itemView.getContext(), song.getCoverArtId(), CustomGlideRequest.ResourceType.Song) .build() + .thumbnail(thumbnail) .into(holder.item.queueSongCoverImageView); MediaManager.getCurrentIndex(mediaBrowserListenableFuture, new MediaIndexCallback() { @Override public void onRecovery(int index) { - if (position < index) { + if (holder.getLayoutPosition() < index) { holder.item.queueSongTitleTextView.setAlpha(0.2f); holder.item.queueSongSubtitleTextView.setAlpha(0.2f); holder.item.ratingIndicatorImageView.setAlpha(0.2f); From b18b641c311ed90d50caaf99eb1fda86e45ab112 Mon Sep 17 00:00:00 2001 From: observer Date: Mon, 26 May 2025 14:09:26 +0100 Subject: [PATCH 3/4] fix nestedscrollview breaking recyclerview out-of-view culling --- .../layout/inner_fragment_player_queue.xml | 42 +++++++------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/app/src/main/res/layout/inner_fragment_player_queue.xml b/app/src/main/res/layout/inner_fragment_player_queue.xml index c8390eba..72a70a22 100644 --- a/app/src/main/res/layout/inner_fragment_player_queue.xml +++ b/app/src/main/res/layout/inner_fragment_player_queue.xml @@ -4,39 +4,27 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + - + android:layout_height="match_parent" + android:layout_marginTop="40dp" + android:paddingTop="8dp" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> - - - - - - - - Date: Sun, 23 Mar 2025 12:31:57 -0300 Subject: [PATCH 4/4] Removed hardcoded limit to playlist shuffle --- .../tempo/ui/fragment/PlaylistPageFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistPageFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistPageFragment.java index 39c72468..55b46ff2 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistPageFragment.java @@ -193,13 +193,13 @@ public class PlaylistPageFragment extends Fragment implements ClickCallback { playlistPageViewModel.getPlaylistSongLiveList().observe(getViewLifecycleOwner(), songs -> { if (bind != null) { bind.playlistPagePlayButton.setOnClickListener(v -> { - MediaManager.startQueue(mediaBrowserListenableFuture, songs.subList(0, Math.min(100, songs.size())), 0); + MediaManager.startQueue(mediaBrowserListenableFuture, songs, 0); activity.setBottomSheetInPeek(true); }); bind.playlistPageShuffleButton.setOnClickListener(v -> { Collections.shuffle(songs); - MediaManager.startQueue(mediaBrowserListenableFuture, songs.subList(0, Math.min(100, songs.size())), 0); + MediaManager.startQueue(mediaBrowserListenableFuture, songs, 0); activity.setBottomSheetInPeek(true); }); } @@ -270,4 +270,4 @@ public class PlaylistPageFragment extends Fragment implements ClickCallback { public void onMediaLongClick(Bundle bundle) { Navigation.findNavController(requireView()).navigate(R.id.songBottomSheetDialog, bundle); } -} \ No newline at end of file +}